[PATCH 2/3] at91_mci: Do a reset after each request

From: Nicolas Ferre
Date: Thu Jul 17 2008 - 05:35:09 EST

From: Ville Syrjala <syrjala@xxxxxx>

Reset the controller after each transfer since we're violating the
spec sometimes. This is very cheap, so we don't try to be clever.

Signed-off-by: Ville Syrjala <syrjala@xxxxxx>
Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Comment stolen from atmel_mci log.

We noticed that AT91SAM9260 board + Marvell 8686 SDIO WLAN adater
are not happy without applying the MCI reset trick.

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

diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index f3d725e..4e3edf3 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -670,11 +670,10 @@ static void at91_mci_process_next(struct at91mci_host *host)
at91_mci_send_command(host, host->request->stop);
} else {
- /* the at91rm9200 mci controller hangs after some transfers,
+ /* the mci controller hangs after some transfers,
* and the workaround is to reset it after each transfer.
- if (cpu_is_at91rm9200())
- at91_reset_host(host);
+ at91_reset_host(host);
mmc_request_done(host->mmc, host->request);

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/