mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 15:41:58 +00:00
mmc: meson-gx: improve response reading
Response reading can be slightly improved by doing it in just one place. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Kevin Hilman <khilman@baylibre.com>
This commit is contained in:
parent
a322febe37
commit
1f8066d907
@ -562,6 +562,8 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
meson_mmc_read_resp(host->mmc, cmd);
|
||||||
|
|
||||||
cmd->error = 0;
|
cmd->error = 0;
|
||||||
if (status & IRQ_RXD_ERR_MASK) {
|
if (status & IRQ_RXD_ERR_MASK) {
|
||||||
dev_dbg(host->dev, "Unhandled IRQ: RXD error\n");
|
dev_dbg(host->dev, "Unhandled IRQ: RXD error\n");
|
||||||
@ -608,10 +610,8 @@ out:
|
|||||||
/* ack all (enabled) interrupts */
|
/* ack all (enabled) interrupts */
|
||||||
writel(status, host->regs + SD_EMMC_STATUS);
|
writel(status, host->regs + SD_EMMC_STATUS);
|
||||||
|
|
||||||
if (ret == IRQ_HANDLED) {
|
if (ret == IRQ_HANDLED)
|
||||||
meson_mmc_read_resp(host->mmc, cmd);
|
|
||||||
meson_mmc_request_done(host->mmc, cmd->mrq);
|
meson_mmc_request_done(host->mmc, cmd->mrq);
|
||||||
}
|
|
||||||
|
|
||||||
spin_unlock(&host->lock);
|
spin_unlock(&host->lock);
|
||||||
return ret;
|
return ret;
|
||||||
@ -636,7 +636,6 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
|
|||||||
data->bytes_xfered = xfer_bytes;
|
data->bytes_xfered = xfer_bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
meson_mmc_read_resp(host->mmc, cmd);
|
|
||||||
if (!data || !data->stop || cmd->mrq->sbc)
|
if (!data || !data->stop || cmd->mrq->sbc)
|
||||||
meson_mmc_request_done(host->mmc, cmd->mrq);
|
meson_mmc_request_done(host->mmc, cmd->mrq);
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user