Loading drivers/mmc/host/sdhci-pci.c +33 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,12 @@ #include "sdhci.h" /* * PCI device IDs */ #define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809 #define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a /* * PCI registers */ Loading Loading @@ -174,6 +180,12 @@ static int mrst_hc_probe(struct sdhci_pci_chip *chip) return 0; } static int pch_hc_probe_slot(struct sdhci_pci_slot *slot) { slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; return 0; } #ifdef CONFIG_PM_RUNTIME static irqreturn_t sdhci_pci_sd_cd(int irq, void *dev_id) Loading Loading @@ -285,6 +297,11 @@ static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc = { .probe_slot = mfd_emmc_probe_slot, }; static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = { .quirks = SDHCI_QUIRK_BROKEN_ADMA, .probe_slot = pch_hc_probe_slot, }; /* O2Micro extra registers */ #define O2_SD_LOCK_WP 0xD3 #define O2_SD_MULTI_VCC3V 0xEE Loading Loading @@ -820,6 +837,22 @@ static const struct pci_device_id pci_ids[] __devinitdata = { .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = PCI_DEVICE_ID_INTEL_PCH_SDIO0, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = PCI_DEVICE_ID_INTEL_PCH_SDIO1, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio, }, { .vendor = PCI_VENDOR_ID_O2, .device = PCI_DEVICE_ID_O2_8120, Loading Loading
drivers/mmc/host/sdhci-pci.c +33 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,12 @@ #include "sdhci.h" /* * PCI device IDs */ #define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809 #define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a /* * PCI registers */ Loading Loading @@ -174,6 +180,12 @@ static int mrst_hc_probe(struct sdhci_pci_chip *chip) return 0; } static int pch_hc_probe_slot(struct sdhci_pci_slot *slot) { slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; return 0; } #ifdef CONFIG_PM_RUNTIME static irqreturn_t sdhci_pci_sd_cd(int irq, void *dev_id) Loading Loading @@ -285,6 +297,11 @@ static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc = { .probe_slot = mfd_emmc_probe_slot, }; static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = { .quirks = SDHCI_QUIRK_BROKEN_ADMA, .probe_slot = pch_hc_probe_slot, }; /* O2Micro extra registers */ #define O2_SD_LOCK_WP 0xD3 #define O2_SD_MULTI_VCC3V 0xEE Loading Loading @@ -820,6 +837,22 @@ static const struct pci_device_id pci_ids[] __devinitdata = { .driver_data = (kernel_ulong_t)&sdhci_intel_mfd_emmc, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = PCI_DEVICE_ID_INTEL_PCH_SDIO0, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio, }, { .vendor = PCI_VENDOR_ID_INTEL, .device = PCI_DEVICE_ID_INTEL_PCH_SDIO1, .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio, }, { .vendor = PCI_VENDOR_ID_O2, .device = PCI_DEVICE_ID_O2_8120, Loading