mmc: meson-gx: improve response reading
authorHeiner Kallweit <hkallweit1@gmail.com>
Wed, 22 Mar 2017 21:33:50 +0000 (22:33 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:41:46 +0000 (21:41 +0200)
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>
drivers/mmc/host/meson-gx-mmc.c

index 8bf3eb540eb74c2d16d7a2864272cbc4348968e8..c4ddd820182599d82c3bb9632eb1b9366d63a51c 100644 (file)
@@ -562,6 +562,8 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
                goto out;
        }
 
+       meson_mmc_read_resp(host->mmc, cmd);
+
        cmd->error = 0;
        if (status & IRQ_RXD_ERR_MASK) {
                dev_dbg(host->dev, "Unhandled IRQ: RXD error\n");
@@ -608,10 +610,8 @@ out:
        /* ack all (enabled) interrupts */
        writel(status, host->regs + SD_EMMC_STATUS);
 
-       if (ret == IRQ_HANDLED) {
-               meson_mmc_read_resp(host->mmc, cmd);
+       if (ret == IRQ_HANDLED)
                meson_mmc_request_done(host->mmc, cmd->mrq);
-       }
 
        spin_unlock(&host->lock);
        return ret;
@@ -636,7 +636,6 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
                data->bytes_xfered = xfer_bytes;
        }
 
-       meson_mmc_read_resp(host->mmc, cmd);
        if (!data || !data->stop || cmd->mrq->sbc)
                meson_mmc_request_done(host->mmc, cmd->mrq);
        else