mmc: cqhci: Fix checking of CQHCI_HALT state
authorSeunghwan Baek <sh8267.baek@samsung.com>
Thu, 29 Aug 2024 06:18:22 +0000 (15:18 +0900)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 3 Sep 2024 12:20:51 +0000 (14:20 +0200)
To check if mmc cqe is in halt state, need to check set/clear of CQHCI_HALT
bit. At this time, we need to check with &, not &&.

Fixes: a4080225f51d ("mmc: cqhci: support for command queue enabled host")
Cc: stable@vger.kernel.org
Signed-off-by: Seunghwan Baek <sh8267.baek@samsung.com>
Reviewed-by: Ritesh Harjani <ritesh.list@gmail.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20240829061823.3718-2-sh8267.baek@samsung.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/cqhci-core.c

index c14d725..a02da26 100644 (file)
@@ -617,7 +617,7 @@ static int cqhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
                cqhci_writel(cq_host, 0, CQHCI_CTL);
                mmc->cqe_on = true;
                pr_debug("%s: cqhci: CQE on\n", mmc_hostname(mmc));
-               if (cqhci_readl(cq_host, CQHCI_CTL) && CQHCI_HALT) {
+               if (cqhci_readl(cq_host, CQHCI_CTL) & CQHCI_HALT) {
                        pr_err("%s: cqhci: CQE failed to exit halt state\n",
                               mmc_hostname(mmc));
                }