Skip to content

Commit

Permalink
mmc: tmio: refactor handling mrq
Browse files Browse the repository at this point in the history
Split handling mrq into a seperate function. We need to call it from
another place soon.

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
  • Loading branch information
Wolfram Sang authored and Ulf Hansson committed Jun 20, 2017
1 parent 10c998e commit de2a6bb
Showing 1 changed file with 26 additions and 20 deletions.
46 changes: 26 additions & 20 deletions drivers/mmc/host/tmio_mmc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -894,12 +894,36 @@ static int tmio_mmc_execute_tuning(struct mmc_host *mmc, u32 opcode)
return ret;
}

static void tmio_process_mrq(struct tmio_mmc_host *host, struct mmc_request *mrq)
{
int ret;

if (mrq->data) {
ret = tmio_mmc_start_data(host, mrq->data);
if (ret)
goto fail;
}

ret = tmio_mmc_start_command(host, mrq->cmd);
if (ret)
goto fail;

schedule_delayed_work(&host->delayed_reset_work,
msecs_to_jiffies(CMDREQ_TIMEOUT));
return;

fail:
host->force_pio = false;
host->mrq = NULL;
mrq->cmd->error = ret;
mmc_request_done(host->mmc, mrq);
}

/* Process requests from the MMC layer */
static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
{
struct tmio_mmc_host *host = mmc_priv(mmc);
unsigned long flags;
int ret;

spin_lock_irqsave(&host->lock, flags);

Expand All @@ -919,25 +943,7 @@ static void tmio_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)

spin_unlock_irqrestore(&host->lock, flags);

if (mrq->data) {
ret = tmio_mmc_start_data(host, mrq->data);
if (ret)
goto fail;
}

ret = tmio_mmc_start_command(host, mrq->cmd);
if (ret)
goto fail;

schedule_delayed_work(&host->delayed_reset_work,
msecs_to_jiffies(CMDREQ_TIMEOUT));
return;

fail:
host->force_pio = false;
host->mrq = NULL;
mrq->cmd->error = ret;
mmc_request_done(mmc, mrq);
tmio_process_mrq(host, mrq);
}

static int tmio_mmc_clk_enable(struct tmio_mmc_host *host)
Expand Down

0 comments on commit de2a6bb

Please sign in to comment.