aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2007-08-07 08:11:55 -0400
committerPierre Ossman <drzeus@drzeus.cx>2007-09-23 15:16:01 -0400
commite6f918bf39773d712ab5b457bff54ade3bda0cb1 (patch)
tree614a67fe3defdf113f4c1ae52eb1d5f08774fe63
parentce252edd869ba1fee6a9a6f83e20f349d4c4d669 (diff)
mmc: fix sdio timeout calculation
SDIO doesn't have a CSD so it uses different timeout values than SD memory. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
-rw-r--r--drivers/mmc/core/core.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 07c03cb677b6..9d29bed820a1 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -232,6 +232,15 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
232 unsigned int mult; 232 unsigned int mult;
233 233
234 /* 234 /*
235 * SDIO cards only define an upper 1 s limit on access.
236 */
237 if (mmc_card_sdio(card)) {
238 data->timeout_ns = 1000000000;
239 data->timeout_clks = 0;
240 return;
241 }
242
243 /*
235 * SD cards use a 100 multiplier rather than 10 244 * SD cards use a 100 multiplier rather than 10
236 */ 245 */
237 mult = mmc_card_sd(card) ? 100 : 10; 246 mult = mmc_card_sd(card) ? 100 : 10;