diff options
author | Ludovic Barre <ludovic.barre@st.com> | 2020-03-25 15:34:08 +0100 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2020-03-26 14:59:31 +0100 |
commit | d4a384cb563e555ce00255f5f496b503e6cc6358 (patch) | |
tree | edc5d76165d992929435e4d6e6eef32db221c637 | |
parent | ffae422dfe149b9af8ed5dfcd6f948ff656321df (diff) | |
download | linux-d4a384cb563e555ce00255f5f496b503e6cc6358.tar.gz linux-d4a384cb563e555ce00255f5f496b503e6cc6358.tar.bz2 linux-d4a384cb563e555ce00255f5f496b503e6cc6358.zip |
mmc: mmci_sdmmc: Fix clear busyd0end irq flag
The busyd0 line transition can be very fast. The busy request may be
completed by busy_d0end, without waiting for the busy_d0 steps. Therefore,
clear the busyd0end irq flag, even if no busy_status.
Fixes: 0e68de6aa7b1 ("mmc: mmci: sdmmc: add busy_complete callback")
Cc: stable@vger.kernel.org
Signed-off-by: Ludovic Barre <ludovic.barre@st.com>
Link: https://lore.kernel.org/r/20200325143409.13005-2-ludovic.barre@st.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/host/mmci_stm32_sdmmc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mmc/host/mmci_stm32_sdmmc.c b/drivers/mmc/host/mmci_stm32_sdmmc.c index f76e82f8f12f..d33e62bd6153 100644 --- a/drivers/mmc/host/mmci_stm32_sdmmc.c +++ b/drivers/mmc/host/mmci_stm32_sdmmc.c @@ -358,11 +358,11 @@ complete: if (host->busy_status) { writel_relaxed(mask & ~host->variant->busy_detect_mask, base + MMCIMASK0); - writel_relaxed(host->variant->busy_detect_mask, - base + MMCICLEAR); host->busy_status = 0; } + writel_relaxed(host->variant->busy_detect_mask, base + MMCICLEAR); + return true; } |