|
|
@@ -290,11 +290,21 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot)
|
|
|
{
|
|
|
struct sdhci_pci_chip *chip;
|
|
|
struct sdhci_host *host;
|
|
|
- u32 reg;
|
|
|
+ u32 reg, caps;
|
|
|
int ret;
|
|
|
|
|
|
chip = slot->chip;
|
|
|
host = slot->host;
|
|
|
+
|
|
|
+ caps = sdhci_readl(host, SDHCI_CAPABILITIES);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * mmc_select_bus_width() will test the bus to determine the actual bus
|
|
|
+ * width.
|
|
|
+ */
|
|
|
+ if (caps & SDHCI_CAN_DO_8BIT)
|
|
|
+ host->mmc->caps |= MMC_CAP_8_BIT_DATA;
|
|
|
+
|
|
|
switch (chip->pdev->device) {
|
|
|
case PCI_DEVICE_ID_O2_SDS0:
|
|
|
case PCI_DEVICE_ID_O2_SEABIRD0:
|