mmc: dw_mmc: Run card detect tasklet during slot initialisation.
authorWill Newton <will.newton@gmail.com>
Thu, 10 Feb 2011 19:37:03 +0000 (14:37 -0500)
committerChris Ball <cjb@laptop.org>
Tue, 15 Mar 2011 17:48:51 +0000 (13:48 -0400)
We need to run the card detect tasklet at the end of slot initialisation
as it is possible that a card has been inserted prior to boot, so we don't
see an insertion interrupt and now the card is sitting there inserted but
with no power to it.

Signed-off-by: Neil Jones <neil.jones@imgtec.com>
Signed-off-by: Will Newton <will.newton@imgtec.com>
Reviewed-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/dw_mmc.c

index 2fcc82577c1b156c08102270903b5b28ef2c430f..c01cb8642fb52db4099c62447391ff441a1e8947 100644 (file)
@@ -1441,6 +1441,12 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
        /* Card initially undetected */
        slot->last_detect_state = 0;
 
+       /*
+        * Card may have been plugged in prior to boot so we
+        * need to run the detect tasklet
+        */
+       tasklet_schedule(&host->card_tasklet);
+
        return 0;
 }