diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-04-21 14:26:38 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-05-24 21:02:42 -0400 |
commit | 82b0e23a295cc58d1290017ee97a40956ad68d94 (patch) | |
tree | f3f140be979623ae8b83b79841eb842858ed054b /include | |
parent | f06c9153f5ecd47dfed23f87b9d08e42ff0e4170 (diff) |
mmc: sdhci: Fix read-only detection with JMicron 388 chip
On HP laptops with JMicron 388 chip, the write-locked SD card isn't
detected correctly as read-only in many cases. This is because the
PRESENT_STATE register becomes unsable just after plugging, and it
returns the WRITE_PROTECT bit wrongly at the first read.
This patch fixes the read-only detection by adding a new sdhci quirk
indicating to check the register more intensively with a relatively
long delay.
The patch is tested with 2.6.39-rc4 kernel.
Cc: Aries Lee <arieslee@jmicron.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mmc/sdhci.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h index 83bd9f76709a..92e1c9ad126c 100644 --- a/include/linux/mmc/sdhci.h +++ b/include/linux/mmc/sdhci.h | |||
@@ -85,6 +85,8 @@ struct sdhci_host { | |||
85 | #define SDHCI_QUIRK_NO_HISPD_BIT (1<<29) | 85 | #define SDHCI_QUIRK_NO_HISPD_BIT (1<<29) |
86 | /* Controller treats ADMA descriptors with length 0000h incorrectly */ | 86 | /* Controller treats ADMA descriptors with length 0000h incorrectly */ |
87 | #define SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC (1<<30) | 87 | #define SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC (1<<30) |
88 | /* The read-only detection via SDHCI_PRESENT_STATE register is unstable */ | ||
89 | #define SDHCI_QUIRK_UNSTABLE_RO_DETECT (1<<31) | ||
88 | 90 | ||
89 | int irq; /* Device IRQ */ | 91 | int irq; /* Device IRQ */ |
90 | void __iomem *ioaddr; /* Mapped address */ | 92 | void __iomem *ioaddr; /* Mapped address */ |