public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* MMC: When rescanning cards check existing cards after mmc_setup()
@ 2006-10-16  9:06 Timo Teras
  2006-10-22  9:55 ` Pierre Ossman
  0 siblings, 1 reply; 6+ messages in thread
From: Timo Teras @ 2006-10-16  9:06 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Russell King, linux-kernel

Some broken cards seem to process CMD1 even in stand-by state. The result is
that the card replies with ILLEGAL_COMMAND error for the next command sent
after rescanning. Currently the next command is select card, which would
return the error. But the CMD7 does actually succeed and retries of the
command will timeout. The solution is to poll card status after the CMD1
which clears the cached error.

Signed-off-by: Timo Teras <timo.teras@solidboot.com>

---

 drivers/mmc/mmc.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

97675ada7049d12523aa9e9908d4613dfd333641
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index ee8863c..3324b6e 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1178,14 +1178,17 @@ static void mmc_rescan(void *data)
 {
 	struct mmc_host *host = data;
 	struct list_head *l, *n;
+	unsigned char power_mode;
 
 	mmc_claim_host(host);
 
-	if (host->ios.power_mode == MMC_POWER_ON)
-		mmc_check_cards(host);
+	power_mode = host->ios.power_mode;
 
 	mmc_setup(host);
 
+	if (power_mode == MMC_POWER_ON)
+		mmc_check_cards(host);
+
 	if (!list_empty(&host->cards)) {
 		/*
 		 * (Re-)calculate the fastest clock rate which the
-- 
1.2.3.g90cc1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-10-26  7:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-16  9:06 MMC: When rescanning cards check existing cards after mmc_setup() Timo Teras
2006-10-22  9:55 ` Pierre Ossman
2006-10-24 10:14   ` Timo Teras
2006-10-24 16:59     ` Pierre Ossman
2006-10-25  6:37       ` [PATCH] MMC: Poll card status after rescanning cards Timo Teras
2006-10-26  7:20         ` Pierre Ossman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox