diff options
| -rw-r--r-- | drivers/mmc/host/s3cmci.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c index 62d73d3497f0..2b4839536975 100644 --- a/drivers/mmc/host/s3cmci.c +++ b/drivers/mmc/host/s3cmci.c | |||
| @@ -450,6 +450,7 @@ static irqreturn_t s3cmci_irq(int irq, void *dev_id) | |||
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | if (mci_csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) { | 452 | if (mci_csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) { |
| 453 | dbg(host, dbg_err, "CMDSTAT: error CMDTIMEOUT\n"); | ||
| 453 | cmd->error = -ETIMEDOUT; | 454 | cmd->error = -ETIMEDOUT; |
| 454 | host->status = "error: command timeout"; | 455 | host->status = "error: command timeout"; |
| 455 | goto fail_transfer; | 456 | goto fail_transfer; |
| @@ -505,12 +506,14 @@ static irqreturn_t s3cmci_irq(int irq, void *dev_id) | |||
| 505 | /* Check for FIFO failure */ | 506 | /* Check for FIFO failure */ |
| 506 | if (host->is2440) { | 507 | if (host->is2440) { |
| 507 | if (mci_fsta & S3C2440_SDIFSTA_FIFOFAIL) { | 508 | if (mci_fsta & S3C2440_SDIFSTA_FIFOFAIL) { |
| 509 | dbg(host, dbg_err, "FIFO failure\n"); | ||
| 508 | host->mrq->data->error = -EILSEQ; | 510 | host->mrq->data->error = -EILSEQ; |
| 509 | host->status = "error: 2440 fifo failure"; | 511 | host->status = "error: 2440 fifo failure"; |
| 510 | goto fail_transfer; | 512 | goto fail_transfer; |
| 511 | } | 513 | } |
| 512 | } else { | 514 | } else { |
| 513 | if (mci_dsta & S3C2410_SDIDSTA_FIFOFAIL) { | 515 | if (mci_dsta & S3C2410_SDIDSTA_FIFOFAIL) { |
| 516 | dbg(host, dbg_err, "FIFO failure\n"); | ||
| 514 | cmd->data->error = -EILSEQ; | 517 | cmd->data->error = -EILSEQ; |
| 515 | host->status = "error: fifo failure"; | 518 | host->status = "error: fifo failure"; |
| 516 | goto fail_transfer; | 519 | goto fail_transfer; |
| @@ -518,18 +521,21 @@ static irqreturn_t s3cmci_irq(int irq, void *dev_id) | |||
| 518 | } | 521 | } |
| 519 | 522 | ||
| 520 | if (mci_dsta & S3C2410_SDIDSTA_RXCRCFAIL) { | 523 | if (mci_dsta & S3C2410_SDIDSTA_RXCRCFAIL) { |
| 524 | dbg(host, dbg_err, "bad data crc (outgoing)\n"); | ||
| 521 | cmd->data->error = -EILSEQ; | 525 | cmd->data->error = -EILSEQ; |
| 522 | host->status = "error: bad data crc (outgoing)"; | 526 | host->status = "error: bad data crc (outgoing)"; |
| 523 | goto fail_transfer; | 527 | goto fail_transfer; |
| 524 | } | 528 | } |
| 525 | 529 | ||
| 526 | if (mci_dsta & S3C2410_SDIDSTA_CRCFAIL) { | 530 | if (mci_dsta & S3C2410_SDIDSTA_CRCFAIL) { |
| 531 | dbg(host, dbg_err, "bad data crc (incoming)\n"); | ||
| 527 | cmd->data->error = -EILSEQ; | 532 | cmd->data->error = -EILSEQ; |
| 528 | host->status = "error: bad data crc (incoming)"; | 533 | host->status = "error: bad data crc (incoming)"; |
| 529 | goto fail_transfer; | 534 | goto fail_transfer; |
| 530 | } | 535 | } |
| 531 | 536 | ||
| 532 | if (mci_dsta & S3C2410_SDIDSTA_DATATIMEOUT) { | 537 | if (mci_dsta & S3C2410_SDIDSTA_DATATIMEOUT) { |
| 538 | dbg(host, dbg_err, "data timeout\n"); | ||
| 533 | cmd->data->error = -ETIMEDOUT; | 539 | cmd->data->error = -ETIMEDOUT; |
| 534 | host->status = "error: data timeout"; | 540 | host->status = "error: data timeout"; |
| 535 | goto fail_transfer; | 541 | goto fail_transfer; |
| @@ -956,8 +962,9 @@ static void s3cmci_send_request(struct mmc_host *mmc) | |||
| 956 | host->dcnt++; | 962 | host->dcnt++; |
| 957 | 963 | ||
| 958 | if (res) { | 964 | if (res) { |
| 959 | cmd->error = -EINVAL; | 965 | dbg(host, dbg_err, "setup data error %d\n", res); |
| 960 | cmd->data->error = -EINVAL; | 966 | cmd->error = res; |
| 967 | cmd->data->error = res; | ||
| 961 | 968 | ||
| 962 | mmc_request_done(mmc, mrq); | 969 | mmc_request_done(mmc, mrq); |
| 963 | return; | 970 | return; |
| @@ -969,6 +976,7 @@ static void s3cmci_send_request(struct mmc_host *mmc) | |||
| 969 | res = s3cmci_prepare_pio(host, cmd->data); | 976 | res = s3cmci_prepare_pio(host, cmd->data); |
| 970 | 977 | ||
| 971 | if (res) { | 978 | if (res) { |
| 979 | dbg(host, dbg_err, "data prepare error %d\n", res); | ||
| 972 | cmd->error = res; | 980 | cmd->error = res; |
| 973 | cmd->data->error = res; | 981 | cmd->data->error = res; |
| 974 | 982 | ||
