mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check
authorSebastian Falbesoner <sebastian.falbesoner@gmail.com>
Mon, 21 Nov 2022 10:57:21 +0000 (11:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Dec 2022 10:28:42 +0000 (11:28 +0100)
commit a3cab1d2132474969871b5d7f915c5c0167b48b0 upstream.

With the current logic the "failed to exit halt state" error would be
shown even if any other bit than CQHCI_HALT was set in the CQHCI_CTL
register, since the right hand side is always true. Fix this by using
the correct operator (bit-wise instead of logical AND) to only check for
the halt bit flag, which was obviously intended here.

Fixes: 85236d2be844 ("mmc: sdhci-esdhc-imx: clear the HALT bit when enable CQE")
Signed-off-by: Sebastian Falbesoner <sebastian.falbesoner@gmail.com>
Acked-by: Haibo Chen <haibo.chen@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221121105721.1903878-1-sebastian.falbesoner@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/host/sdhci-esdhc-imx.c

index 71cec9b..c6111ad 100644 (file)
@@ -1495,7 +1495,7 @@ static void esdhc_cqe_enable(struct mmc_host *mmc)
         * system resume back.
         */
        cqhci_writel(cq_host, 0, CQHCI_CTL);
-       if (cqhci_readl(cq_host, CQHCI_CTL) && CQHCI_HALT)
+       if (cqhci_readl(cq_host, CQHCI_CTL) & CQHCI_HALT)
                dev_err(mmc_dev(host->mmc),
                        "failed to exit halt state when enable CQE\n");