diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2012-12-04 16:51:36 +0100 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2012-12-07 13:55:50 -0500 |
commit | 451c89578eb4791b9d329eb71a79e6715e60f89e (patch) | |
tree | 0c351375c3a47fa7791d3d8b2ff383f663a136eb | |
parent | 9f1fb60a2338aa2202ca94d67f84c582f31dbf5a (diff) |
mmc: extend the slot-gpio card-detection to use host's .card_event() method
The slot-gpio API provides a generic card-detection handler. To support a
wider range of hosts it has to call the host's card-event callback, if
implemented. Also increase the debounce interval to 200ms to match the
SDHCI driver.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Reviewed-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r-- | drivers/mmc/core/slot-gpio.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c index 08c6b3dfe080..16a1c0b6f264 100644 --- a/drivers/mmc/core/slot-gpio.c +++ b/drivers/mmc/core/slot-gpio.c @@ -27,7 +27,13 @@ struct mmc_gpio { static irqreturn_t mmc_gpio_cd_irqt(int irq, void *dev_id) { /* Schedule a card detection after a debounce timeout */ - mmc_detect_change(dev_id, msecs_to_jiffies(100)); + struct mmc_host *host = dev_id; + + if (host->ops->card_event) + host->ops->card_event(host); + + mmc_detect_change(host, msecs_to_jiffies(200)); + return IRQ_HANDLED; } |