diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2008-04-13 10:03:38 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2008-04-18 14:05:31 -0400 |
commit | 0b82684c3c19aff092bb303959a31dbe5c965922 (patch) | |
tree | eaf61a14a686ffd77de78a266af597a81ef75557 /drivers/mmc | |
parent | 9d7c6eee523c78b6ea4b56bd3927860d850616e5 (diff) |
sdhci: improve no card, no reset quirk
The quirk was meant to just inhibit some resets, but ended up blocking
all of them. Fortunately, this was just what was needed. Change the
comment to reflect reality.
Also, this issue has just been observed on Samsung laptops, so reduce
the number of chips the quirk affects.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 6250eb5f98a8..07c2048b230b 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -41,7 +41,7 @@ static unsigned int debug_quirks = 0; | |||
41 | #define SDHCI_QUIRK_CLOCK_BEFORE_RESET (1<<0) | 41 | #define SDHCI_QUIRK_CLOCK_BEFORE_RESET (1<<0) |
42 | /* Controller has bad caps bits, but really supports DMA */ | 42 | /* Controller has bad caps bits, but really supports DMA */ |
43 | #define SDHCI_QUIRK_FORCE_DMA (1<<1) | 43 | #define SDHCI_QUIRK_FORCE_DMA (1<<1) |
44 | /* Controller doesn't like some resets when there is no card inserted. */ | 44 | /* Controller doesn't like to be reset when there is no card inserted. */ |
45 | #define SDHCI_QUIRK_NO_CARD_NO_RESET (1<<2) | 45 | #define SDHCI_QUIRK_NO_CARD_NO_RESET (1<<2) |
46 | /* Controller doesn't like clearing the power reg before a change */ | 46 | /* Controller doesn't like clearing the power reg before a change */ |
47 | #define SDHCI_QUIRK_SINGLE_POWER_WRITE (1<<3) | 47 | #define SDHCI_QUIRK_SINGLE_POWER_WRITE (1<<3) |
@@ -69,13 +69,21 @@ static const struct pci_device_id pci_ids[] __devinitdata = { | |||
69 | { | 69 | { |
70 | .vendor = PCI_VENDOR_ID_RICOH, | 70 | .vendor = PCI_VENDOR_ID_RICOH, |
71 | .device = PCI_DEVICE_ID_RICOH_R5C822, | 71 | .device = PCI_DEVICE_ID_RICOH_R5C822, |
72 | .subvendor = PCI_ANY_ID, | 72 | .subvendor = PCI_VENDOR_ID_SAMSUNG, |
73 | .subdevice = PCI_ANY_ID, | 73 | .subdevice = PCI_ANY_ID, |
74 | .driver_data = SDHCI_QUIRK_FORCE_DMA | | 74 | .driver_data = SDHCI_QUIRK_FORCE_DMA | |
75 | SDHCI_QUIRK_NO_CARD_NO_RESET, | 75 | SDHCI_QUIRK_NO_CARD_NO_RESET, |
76 | }, | 76 | }, |
77 | 77 | ||
78 | { | 78 | { |
79 | .vendor = PCI_VENDOR_ID_RICOH, | ||
80 | .device = PCI_DEVICE_ID_RICOH_R5C822, | ||
81 | .subvendor = PCI_ANY_ID, | ||
82 | .subdevice = PCI_ANY_ID, | ||
83 | .driver_data = SDHCI_QUIRK_FORCE_DMA, | ||
84 | }, | ||
85 | |||
86 | { | ||
79 | .vendor = PCI_VENDOR_ID_TI, | 87 | .vendor = PCI_VENDOR_ID_TI, |
80 | .device = PCI_DEVICE_ID_TI_XX21_XX11_SD, | 88 | .device = PCI_DEVICE_ID_TI_XX21_XX11_SD, |
81 | .subvendor = PCI_ANY_ID, | 89 | .subvendor = PCI_ANY_ID, |