diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2007-08-07 08:11:55 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-09-23 15:16:01 -0400 |
commit | e6f918bf39773d712ab5b457bff54ade3bda0cb1 (patch) | |
tree | 614a67fe3defdf113f4c1ae52eb1d5f08774fe63 /drivers/mmc/core | |
parent | ce252edd869ba1fee6a9a6f83e20f349d4c4d669 (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>
Diffstat (limited to 'drivers/mmc/core')
-rw-r--r-- | drivers/mmc/core/core.c | 9 |
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; |