r3578 - branches/src/target/kernel/2.6.24.x/patches

laforge at sita.openmoko.org laforge at sita.openmoko.org
Wed Dec 5 18:58:43 CET 2007


Author: laforge
Date: 2007-12-05 18:58:40 +0100 (Wed, 05 Dec 2007)
New Revision: 3578

Modified:
   branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch
Log:
s3c_mci 2.6.24-rc4 merge: convert MMC_ERR to standard errno values


Modified: branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch
===================================================================
--- branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch	2007-12-05 16:58:28 UTC (rev 3577)
+++ branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch	2007-12-05 17:58:40 UTC (rev 3578)
@@ -75,7 +75,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6/drivers/mmc/host/mmc_debug.c
-@@ -0,0 +1,61 @@
+@@ -0,0 +1,57 @@
 +/*
 + *  linux/drivers/mmc/mmc_debug.c
 + *
@@ -124,15 +124,11 @@
 +char *mmc_err2str(int err)
 +{
 +	switch(err) {
-+		case MMC_ERR_NONE:	return "OK";
-+		case MMC_ERR_TIMEOUT:	return "TIMEOUT";
-+		case MMC_ERR_BADCRC: 	return "BADCRC";
-+		case MMC_ERR_FIFO: 	return "FIFO";
-+		case MMC_ERR_FAILED: 	return "FAILED";
-+		case MMC_ERR_INVALID: 	return "INVALID";
-+		case MMC_ERR_BUSY:	return "BUSY";
-+		case MMC_ERR_DMA:	return "DMA";
-+		case MMC_ERR_CANCELED:	return "CANCELED";
++		case 0:	return "OK";
++		case -ETIMEDOUT:	return "TIMEOUT";
++		case -EILSEQ: 		return "BADCRC";
++		case -EINVAL: 		return "EINVAL";
++		case -ENOMEDIUM: 	return "NOMEDIUM";
 +		default: return "UNKNOWN";
 +	}
 +}
@@ -284,7 +280,7 @@
 +	if (!cmd)
 +		return;
 +
-+	if (cmd->error == MMC_ERR_NONE) {
++	if (cmd->error == 0) {
 +
 +		dbg(host, dbglvl, "CMD[OK] %s R0:0x%08x\n",
 +			host->dbgmsg_cmd, cmd->resp[0]);
@@ -297,7 +293,7 @@
 +	if (!cmd->data)
 +		return;
 +
-+	if (cmd->data->error == MMC_ERR_NONE) {
++	if (cmd->data->error == 0) {
 +		dbg(host, dbglvl, "DAT[%s] %s\n",
 +			mmc_err2str(cmd->data->error), host->dbgmsg_dat);
 +	} else {
@@ -356,7 +352,7 @@
 +	sg = &host->mrq->data->sg[host->pio_sgptr];
 +
 +	*words	= sg->length >> 2;
-+	*pointer= page_address(sg->page) + sg->offset;
++	*pointer= page_address(sg_page(sg)) + sg->offset;
 +
 +	host->pio_sgptr++;
 +
@@ -488,7 +484,7 @@
 +				(host->pio_active == XFER_READ)?"read":"write",
 +				host->pio_count, host->pio_words);
 +
-+			host->mrq->data->error = MMC_ERR_DMA;
++			host->mrq->data->error = -EIO;
 +		}
 +
 +		disable_irq(host->irq);
@@ -585,7 +581,7 @@
 +	}
 +
 +	if (mci_csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
-+		cmd->error = MMC_ERR_TIMEOUT;
++		cmd->error = -ETIMEDOUT;
 +		host->status = "error: command timeout";
 +		goto fail_transfer;
 +	}
@@ -601,7 +597,7 @@
 +
 +	if (mci_csta & S3C2410_SDICMDSTAT_CRCFAIL) {
 +		if (cmd->flags & MMC_RSP_CRC) {
-+			cmd->error = MMC_ERR_BADCRC;
++			cmd->error = -EILSEQ;
 +			host->status = "error: bad command crc";
 +			goto fail_transfer;
 +		}
@@ -630,32 +626,32 @@
 +	/* Check for FIFO failure */
 +	if (host->is2440) {
 +		if (mci_fsta & S3C2440_SDIFSTA_FIFOFAIL) {
-+			host->mrq->data->error = MMC_ERR_FIFO;
++			host->mrq->data->error = -EIO;
 +			host->status = "error: 2440 fifo failure";
 +			goto fail_transfer;
 +		}
 +	} else {
 +		if (mci_dsta & S3C2410_SDIDSTA_FIFOFAIL) {
-+			cmd->data->error = MMC_ERR_FIFO;
++			cmd->data->error = -EIO;
 +			host->status = "error:  fifo failure";
 +			goto fail_transfer;
 +		}
 +	}
 +
 +	if (mci_dsta & S3C2410_SDIDSTA_RXCRCFAIL) {
-+		cmd->data->error = MMC_ERR_BADCRC;
++		cmd->data->error = -EILSEQ;
 +		host->status = "error: bad data crc (outgoing)";
 +		goto fail_transfer;
 +	}
 +
 +	if (mci_dsta & S3C2410_SDIDSTA_CRCFAIL) {
-+		cmd->data->error = MMC_ERR_BADCRC;
++		cmd->data->error = -EIO;
 +		host->status = "error: bad data crc (incoming)";
 +		goto fail_transfer;
 +	}
 +
 +	if (mci_dsta & S3C2410_SDIDSTA_DATATIMEOUT) {
-+		cmd->data->error = MMC_ERR_TIMEOUT;
++		cmd->data->error = -ETIMEDOUT;
 +		host->status = "error: data timeout";
 +		goto fail_transfer;
 +	}
@@ -766,7 +762,7 @@
 +
 +
 +fail_request:
-+	host->mrq->data->error = MMC_ERR_DMA;
++	host->mrq->data->error = -EIO;
 +	host->complete_what = COMPLETION_FINALIZE;
 +	writel(0, host->base + host->sdiimsk);
 +	goto out;
@@ -785,8 +781,8 @@
 +	if (!mrq)
 +		return;
 +
-+	if (cmd->data && (cmd->error == MMC_ERR_NONE) &&
-+		  (cmd->data->error == MMC_ERR_NONE)) {
++	if (cmd->data && (cmd->error == 0) &&
++		  (cmd->data->error == 0)) {
 +
 +		if (host->dodma && (!host->dma_complete)) {
 +			dbg(host, dbg_dma, "DMA Missing!\n");
@@ -835,7 +831,7 @@
 +
 +	// Calulate the amout of bytes transfer, but only if there was
 +	// no error
-+	if (mrq->data->error == MMC_ERR_NONE) {
++	if (mrq->data->error == 0) {
 +		mrq->data->bytes_xfered =
 +			(mrq->data->blocks * mrq->data->blksz);
 +	} else {
@@ -844,7 +840,7 @@
 +
 +	// If we had an error while transfering data we flush the
 +	// DMA channel and the fifo to clear out any garbage
-+	if (mrq->data->error != MMC_ERR_NONE) {
++	if (mrq->data->error) {
 +		if (host->dodma)
 +			s3c2410_dma_ctrl(host->dma, S3C2410_DMAOP_FLUSH);
 +
@@ -1104,8 +1100,8 @@
 +		host->dcnt++;
 +
 +		if (res) {
-+			cmd->error = MMC_ERR_DMA;
-+			cmd->data->error = MMC_ERR_DMA;
++			cmd->error = -EIO;
++			cmd->data->error = -EIO;
 +
 +			mmc_request_done(mmc, mrq);
 +			return;
@@ -1119,8 +1115,8 @@
 +		}
 +
 +		if (res) {
-+			cmd->error = MMC_ERR_DMA;
-+			cmd->data->error = MMC_ERR_DMA;
++			cmd->error = -EIO;
++			cmd->data->error = -EIO;
 +
 +			mmc_request_done(mmc, mrq);
 +			return;





More information about the commitlog mailing list