lkml.org 
[lkml]   [2008]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch v5 14/16] MMC: S3C24XX: Update error debugging.
    Add better debugging to show where errors are being
    generated, as some error codes can come from several
    different code paths.

    Also fix the error return path from s3cmci_setup_data()
    to return the error it returned to the request.

    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 22:35:48.000000000 +0100
    +++ linux-2.6.26-rc8-next20080627/drivers/mmc/host/s3cmci.c 2008-06-30 22:35:49.000000000 +0100
    @@ -450,6 +450,7 @@ static irqreturn_t s3cmci_irq(int irq, v
    }

    if (mci_csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
    + dbg(host, dbg_err, "CMDSTAT: error CMDTIMEOUT\n");
    cmd->error = -ETIMEDOUT;
    host->status = "error: command timeout";
    goto fail_transfer;
    @@ -505,12 +506,14 @@ static irqreturn_t s3cmci_irq(int irq, v
    /* Check for FIFO failure */
    if (host->is2440) {
    if (mci_fsta & S3C2440_SDIFSTA_FIFOFAIL) {
    + dbg(host, dbg_err, "FIFO failure\n");
    host->mrq->data->error = -EILSEQ;
    host->status = "error: 2440 fifo failure";
    goto fail_transfer;
    }
    } else {
    if (mci_dsta & S3C2410_SDIDSTA_FIFOFAIL) {
    + dbg(host, dbg_err, "FIFO failure\n");
    cmd->data->error = -EILSEQ;
    host->status = "error: fifo failure";
    goto fail_transfer;
    @@ -518,18 +521,21 @@ static irqreturn_t s3cmci_irq(int irq, v
    }

    if (mci_dsta & S3C2410_SDIDSTA_RXCRCFAIL) {
    + dbg(host, dbg_err, "bad data crc (outgoing)\n");
    cmd->data->error = -EILSEQ;
    host->status = "error: bad data crc (outgoing)";
    goto fail_transfer;
    }

    if (mci_dsta & S3C2410_SDIDSTA_CRCFAIL) {
    + dbg(host, dbg_err, "bad data crc (incoming)\n");
    cmd->data->error = -EILSEQ;
    host->status = "error: bad data crc (incoming)";
    goto fail_transfer;
    }

    if (mci_dsta & S3C2410_SDIDSTA_DATATIMEOUT) {
    + dbg(host, dbg_err, "data timeout\n");
    cmd->data->error = -ETIMEDOUT;
    host->status = "error: data timeout";
    goto fail_transfer;
    @@ -956,8 +962,9 @@ static void s3cmci_send_request(struct m
    host->dcnt++;

    if (res) {
    - cmd->error = -EINVAL;
    - cmd->data->error = -EINVAL;
    + dbg(host, dbg_err, "setup data error %d\n", res);
    + cmd->error = res;
    + cmd->data->error = res;

    mmc_request_done(mmc, mrq);
    return;
    @@ -969,6 +976,7 @@ static void s3cmci_send_request(struct m
    res = s3cmci_prepare_pio(host, cmd->data);

    if (res) {
    + dbg(host, dbg_err, "data prepare error %d\n", res);
    cmd->error = res;
    cmd->data->error = res;

    --
    Ben (ben@fluff.org, http://www.fluff.org/)

    'a smiley only costs 4 bytes'


    \
     
     \ /
      Last update: 2008-06-30 23:53    [W:0.054 / U:59.292 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site