mirror of https://gitee.com/openkylin/linux.git
mmc_spi: allow higher timeouts for SPI mode
Some SD cards have very high timeouts in SPI mode. So adjust the timeouts from theory to practice. 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>
This commit is contained in:
parent
ea15ba5cd7
commit
c0c8887157
|
@ -297,6 +297,21 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
|
||||||
data->timeout_clks = 0;
|
data->timeout_clks = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Some cards need very high timeouts if driven in SPI mode.
|
||||||
|
* The worst observed timeout was 900ms after writing a
|
||||||
|
* continuous stream of data until the internal logic
|
||||||
|
* overflowed.
|
||||||
|
*/
|
||||||
|
if (mmc_host_is_spi(card->host)) {
|
||||||
|
if (data->flags & MMC_DATA_WRITE) {
|
||||||
|
if (data->timeout_ns < 1000000000)
|
||||||
|
data->timeout_ns = 1000000000; /* 1s */
|
||||||
|
} else {
|
||||||
|
if (data->timeout_ns < 100000000)
|
||||||
|
data->timeout_ns = 100000000; /* 100ms */
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mmc_set_data_timeout);
|
EXPORT_SYMBOL(mmc_set_data_timeout);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue