diff options
author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2009-03-16 17:13:52 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2009-03-24 16:30:08 -0400 |
commit | 68d1fb7e229c6f95be4fbbe3eb46b24e41184924 (patch) | |
tree | 09e60a2e1e5b3569dd309348a8c164c859c89671 /drivers/mmc/host/sdhci.h | |
parent | 6aa943ab8994fe6e4ccba22c5bc8150a84268bdd (diff) |
sdhci: Add support for card-detection polling
This patch adds SDHCI_QUIRK_BROKEN_CARD_DETECTION quirk. When specified,
sdhci driver will set MMC_CAP_NEEDS_POLL MMC host capability, and won't
enable card insert/remove interrupts.
This is needed for hosts with unreliable card detection, such as FSL
eSDHC. The original eSDHC driver was tring to "debounce" card-detection
IRQs by reading present state and disabling particular interrupts. But
with this debouncing scheme I noticed that sometimes we miss card
insertion/removal events.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/host/sdhci.h')
-rw-r--r-- | drivers/mmc/host/sdhci.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index a9e25c6c0c0e..968d713950f1 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h | |||
@@ -214,6 +214,8 @@ struct sdhci_host { | |||
214 | #define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13) | 214 | #define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13) |
215 | /* Controller does not provide transfer-complete interrupt when not busy */ | 215 | /* Controller does not provide transfer-complete interrupt when not busy */ |
216 | #define SDHCI_QUIRK_NO_BUSY_IRQ (1<<14) | 216 | #define SDHCI_QUIRK_NO_BUSY_IRQ (1<<14) |
217 | /* Controller has unreliable card detection */ | ||
218 | #define SDHCI_QUIRK_BROKEN_CARD_DETECTION (1<<15) | ||
217 | 219 | ||
218 | int irq; /* Device IRQ */ | 220 | int irq; /* Device IRQ */ |
219 | void __iomem * ioaddr; /* Mapped address */ | 221 | void __iomem * ioaddr; /* Mapped address */ |