diff options
Diffstat (limited to 'drivers/mmc/host/sdhci-pci.c')
-rw-r--r-- | drivers/mmc/host/sdhci-pci.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c index 65be27995d5c..2f15cc17d887 100644 --- a/drivers/mmc/host/sdhci-pci.c +++ b/drivers/mmc/host/sdhci-pci.c | |||
@@ -284,6 +284,18 @@ static const struct sdhci_pci_fixes sdhci_jmicron = { | |||
284 | .resume = jmicron_resume, | 284 | .resume = jmicron_resume, |
285 | }; | 285 | }; |
286 | 286 | ||
287 | static int via_probe(struct sdhci_pci_chip *chip) | ||
288 | { | ||
289 | if (chip->pdev->revision == 0x10) | ||
290 | chip->quirks |= SDHCI_QUIRK_DELAY_AFTER_POWER; | ||
291 | |||
292 | return 0; | ||
293 | } | ||
294 | |||
295 | static const struct sdhci_pci_fixes sdhci_via = { | ||
296 | .probe = via_probe, | ||
297 | }; | ||
298 | |||
287 | static const struct pci_device_id pci_ids[] __devinitdata = { | 299 | static const struct pci_device_id pci_ids[] __devinitdata = { |
288 | { | 300 | { |
289 | .vendor = PCI_VENDOR_ID_RICOH, | 301 | .vendor = PCI_VENDOR_ID_RICOH, |
@@ -349,6 +361,14 @@ static const struct pci_device_id pci_ids[] __devinitdata = { | |||
349 | .driver_data = (kernel_ulong_t)&sdhci_jmicron, | 361 | .driver_data = (kernel_ulong_t)&sdhci_jmicron, |
350 | }, | 362 | }, |
351 | 363 | ||
364 | { | ||
365 | .vendor = PCI_VENDOR_ID_VIA, | ||
366 | .device = 0x95d0, | ||
367 | .subvendor = PCI_ANY_ID, | ||
368 | .subdevice = PCI_ANY_ID, | ||
369 | .driver_data = (kernel_ulong_t)&sdhci_via, | ||
370 | }, | ||
371 | |||
352 | { /* Generic SD host controller */ | 372 | { /* Generic SD host controller */ |
353 | PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI << 8), 0xFFFF00) | 373 | PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI << 8), 0xFFFF00) |
354 | }, | 374 | }, |