mmc_spi: wait more bytes for card response
authorWolfgang Muees <wolfgang.mues@auerswald.de>
Wed, 11 Mar 2009 13:17:43 +0000 (14:17 +0100)
committerPierre Ossman <drzeus@drzeus.cx>
Tue, 24 Mar 2009 20:30:02 +0000 (21:30 +0100)
Some cards are slower than the standard allows and need more
time to respond to a command. Max. observed number of bytes
was 12.

Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/host/mmc_spi.c

index ad9e0e213f649823107a0076651c0fe851142eb4..69e1442ff2e260b9bcd7795191df2297f3a8cb58 100644 (file)
@@ -279,8 +279,11 @@ static int mmc_spi_response_get(struct mmc_spi_host *host,
                 * so it can always DMA directly into the target buffer.
                 * It'd probably be better to memcpy() the first chunk and
                 * avoid extra i/o calls...
+                *
+                * Note we check for more than 8 bytes, because in practice,
+                * some SD cards are slow...
                 */
-               for (i = 2; i < 9; i++) {
+               for (i = 2; i < 16; i++) {
                        value = mmc_spi_readbytes(host, 1);
                        if (value < 0)
                                goto done;