Messages in this thread Patch in this message | | | Date | Mon, 30 Jun 2008 16:25:50 +0100 | From | Ben Dooks <> | Subject | [patch v4 03/17] MMC: S3C24XX MMC/SD driver write fixes |
| |
From: Harald Welte <laforge@openmoko.org>
This patch is a workaround of some S3C2410 MMC chip bug
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Index: linux-2.6.26-rc8-next20080627/drivers/mmc/host/s3cmci.c =================================================================== --- linux-2.6.26-rc8-next20080627.orig/drivers/mmc/host/s3cmci.c 2008-06-30 12:18:49.000000000 +0100 +++ linux-2.6.26-rc8-next20080627/drivers/mmc/host/s3cmci.c 2008-06-30 12:19:04.000000000 +0100 @@ -461,9 +461,19 @@ static irqreturn_t s3cmci_irq(int irq, v if (mci_csta & S3C2410_SDICMDSTAT_CRCFAIL) { if (cmd->flags & MMC_RSP_CRC) { - cmd->error = -EILSEQ; - host->status = "error: bad command crc"; - goto fail_transfer; + if (host->mrq->cmd->flags & MMC_RSP_136) { + dbg(host, dbg_irq, + "fixup: ignore CRC fail with long rsp\n"); + } else { + /* note, we used to fail the transfer + * here, but it seems that this is just + * the hardware getting it wrong. + * + * cmd->error = -EILSEQ; + * host->status = "error: bad command crc"; + * goto fail_transfer; + */ + } } mci_cclear |= S3C2410_SDICMDSTAT_CRCFAIL; -- Ben (ben@fluff.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
| |