mmc: mmci: Stash status while waiting for busy
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 16 Jun 2023 20:42:21 +0000 (22:42 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 19 Jun 2023 11:14:26 +0000 (13:14 +0200)
Some interesting flags can arrive while we are waiting for
the first busy detect IRQ so OR then onto the stashed
flags so they are not missed.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20230405-pl180-busydetect-fix-v7-3-69a7164f2a61@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mmci.c

index a3713e9..9398104 100644 (file)
@@ -713,6 +713,7 @@ static bool ux500_busy_complete(struct mmci_host *host, u32 status, u32 err_msk)
         */
        if (host->busy_status &&
            (status & host->variant->busy_detect_flag)) {
+               host->busy_status |= status & (MCI_CMDSENT | MCI_CMDRESPEND);
                writel(host->variant->busy_detect_mask, base + MMCICLEAR);
                return false;
        }