mmc: extend the slot-gpio card-detection to use host's .card_event() method
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Tue, 4 Dec 2012 15:51:36 +0000 (16:51 +0100)
committerChris Ball <cjb@laptop.org>
Fri, 7 Dec 2012 18:55:50 +0000 (13:55 -0500)
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>
drivers/mmc/core/slot-gpio.c

index 08c6b3dfe080497509e9f431d0ababdc51626b29..16a1c0b6f2648bee603cac262002b8fed37bf253 100644 (file)
@@ -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;
 }