[patch 2/5] MMC OMAP driver

From: Anderson Briglia
Date: Tue Jan 31 2006 - 08:36:27 EST


ATP and Transcend cards failing repeatedly in the card select command
(CMD7) due to illegal instruction after CMD2. Doing an extra status inquiry
when leaving the card identification mode seems to fix this problem.
The attached patch does the extra probing in mmc_setup() during
low clock which is perhaps an overkill. One could do it also in
mmc_rescan() after switching back to higher clock.

Signed-off-by: Jarkko Lavinen <jarkko.lavinen@xxxxxxxxx>

Index: linux-2.6.15-mmc_omap/drivers/mmc/mmc.c
===================================================================
--- linux-2.6.15-mmc_omap.orig/drivers/mmc/mmc.c 2006-01-30 10:29:29.000000000 -0400
+++ linux-2.6.15-mmc_omap/drivers/mmc/mmc.c 2006-01-30 10:29:31.000000000 -0400
@@ -1087,6 +1087,14 @@ static void mmc_setup(struct mmc_host *h
*/
host->ios.bus_mode = MMC_BUSMODE_PUSHPULL;
host->ops->set_ios(host, &host->ios);
+
+ /*
+ * Some already detected cards get confused in the card identification
+ * mode and futher commands can fail. Doing an extra status inquiry
+ * after the identification mode seems to get cards back to their
+ * senses.
+ */
+ mmc_check_cards(host);

mmc_read_csds(host);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/