mmc: fix sdio timeout calculation
authorPierre Ossman <drzeus@drzeus.cx>
Tue, 7 Aug 2007 12:11:55 +0000 (14:11 +0200)
committerPierre Ossman <drzeus@drzeus.cx>
Sun, 23 Sep 2007 19:16:01 +0000 (21:16 +0200)
SDIO doesn't have a CSD so it uses different timeout values than
SD memory.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/core/core.c

index 07c03cb677b6dcf06f148d03b2b4454b9cad0816..9d29bed820a1eef5da7b2238cc9a3701ac6da18a 100644 (file)
@@ -231,6 +231,15 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
 {
        unsigned int mult;
 
+       /*
+        * SDIO cards only define an upper 1 s limit on access.
+        */
+       if (mmc_card_sdio(card)) {
+               data->timeout_ns = 1000000000;
+               data->timeout_clks = 0;
+               return;
+       }
+
        /*
         * SD cards use a 100 multiplier rather than 10
         */