mmc: mmci: Cleanup mmci_cmd_irq() for busy detect
authorLudovic Barre <ludovic.barre@st.com>
Fri, 26 Apr 2019 07:46:34 +0000 (09:46 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 6 May 2019 10:33:03 +0000 (12:33 +0200)
Let's cleanup the mmci_cmd_irq() a bit, to make the busy detect code more
clear.

Signed-off-by: Ludovic Barre <ludovic.barre@st.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mmci.c

index 9e9596a68f4cd01ab1721e916af7fb9f2c977b8d..049f8e3676ac54c88344599a90c76149d339348e 100644 (file)
@@ -1205,12 +1205,13 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
             unsigned int status)
 {
        void __iomem *base = host->base;
-       bool sbc;
+       bool sbc, busy_resp;
 
        if (!cmd)
                return;
 
        sbc = (cmd == host->mrq->sbc);
+       busy_resp = !!(cmd->flags & MMC_RSP_BUSY);
 
        /*
         * We need to be one of these interrupts to be considered worth
@@ -1224,8 +1225,7 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
        /*
         * ST Micro variant: handle busy detection.
         */
-       if (host->variant->busy_detect) {
-               bool busy_resp = !!(cmd->flags & MMC_RSP_BUSY);
+       if (busy_resp && host->variant->busy_detect) {
 
                /* We are busy with a command, return */
                if (host->busy_status &&
@@ -1238,7 +1238,7 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
                 * that the special busy status bit is still set before
                 * proceeding.
                 */
-               if (!host->busy_status && busy_resp &&
+               if (!host->busy_status &&
                    !(status & (MCI_CMDCRCFAIL|MCI_CMDTIMEOUT)) &&
                    (readl(base + MMCISTATUS) & host->variant->busy_detect_flag)) {