Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 679f0f8a authored by Harald Welte's avatar Harald Welte Committed by Pierre Ossman
Browse files

MMC: S3C24XX MMC/SD driver write fixes



This patch is a workaround of some S3C2410 MMC chip bug

Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent be518018
Loading
Loading
Loading
Loading
+13 −3
Original line number Original line Diff line number Diff line
@@ -461,9 +461,19 @@ static irqreturn_t s3cmci_irq(int irq, void *dev_id)


	if (mci_csta & S3C2410_SDICMDSTAT_CRCFAIL) {
	if (mci_csta & S3C2410_SDICMDSTAT_CRCFAIL) {
		if (cmd->flags & MMC_RSP_CRC) {
		if (cmd->flags & MMC_RSP_CRC) {
			cmd->error = -EILSEQ;
			if (host->mrq->cmd->flags & MMC_RSP_136) {
			host->status = "error: bad command crc";
				dbg(host, dbg_irq,
			goto fail_transfer;
				    "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;
		mci_cclear |= S3C2410_SDICMDSTAT_CRCFAIL;