Эх сурвалжийг харах

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>
Pierre Ossman 18 жил өмнө
parent
commit
e6f918bf39

+ 9 - 0
drivers/mmc/core/core.c

@@ -231,6 +231,15 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
 {
 {
 	unsigned int mult;
 	unsigned int mult;
 
 
+	/*
+	 * SDIO cards only define an upper 1 s limit on access.
+	 */
+	if (mmc_card_sdio(card)) {
+		data->timeout_ns = 1000000000;
+		data->timeout_clks = 0;
+		return;
+	}
+
 	/*
 	/*
 	 * SD cards use a 100 multiplier rather than 10
 	 * SD cards use a 100 multiplier rather than 10
 	 */
 	 */