mmc: increase SD write timeout for crappy cards
authorPierre Ossman <drzeus@drzeus.cx>
Sun, 26 Oct 2008 11:37:25 +0000 (12:37 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 13 Nov 2008 17:56:04 +0000 (09:56 -0800)
commit 493890e75d98810a3470b4aae23be628ee5e9667 upstream.

It seems that some cards are slightly out of spec and occasionally
will not be able to complete a write in the alloted 250 ms [1].
Incease the timeout slightly to allow even these cards to function
properly.

[1] http://lkml.org/lkml/2008/9/23/390

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/mmc/core/core.c

index 044d84e..f7284b9 100644 (file)
@@ -280,7 +280,11 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
                        (card->host->ios.clock / 1000);
 
                if (data->flags & MMC_DATA_WRITE)
-                       limit_us = 250000;
+                       /*
+                        * The limit is really 250 ms, but that is
+                        * insufficient for some crappy cards.
+                        */
+                       limit_us = 300000;
                else
                        limit_us = 100000;