2021-08-06 03:21:59

by Derong Liu

[permalink] [raw]
Subject: [PATCH] mmc: mediatek: add wait dma stop done flow

From: mtk13858 <[email protected]>

it needs to wait for dma stop done after set dma stop.

Signed-off-by: mtk13858 <[email protected]>
---
drivers/mmc/host/mtk-sd.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index 4dfc246c5f95..1dfd2842471b 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -2339,6 +2339,8 @@ static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery)
if (recovery) {
sdr_set_field(host->base + MSDC_DMA_CTRL,
MSDC_DMA_CTRL_STOP, 1);
+ while (readl(host->base + MSDC_DMA_CFG) & MSDC_DMA_CFG_STS)
+ cpu_relax();
msdc_reset_hw(host);
}
}
--
2.18.0


2021-08-06 10:44:15

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH] mmc: mediatek: add wait dma stop done flow

Thanks for your patch.

On 06/08/2021 04:30, Derong Liu wrote:
> From: mtk13858 <[email protected]>
>
> it needs to wait for dma stop done after set dma stop.
>

Please provide a better commit message. Which bug do you see on which SoC? Are
you sure you can apply that to all SoC without breaking stuff?

> Signed-off-by: mtk13858 <[email protected]>

Full name please.

Regards,
Matthias

> ---
> drivers/mmc/host/mtk-sd.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
> index 4dfc246c5f95..1dfd2842471b 100644
> --- a/drivers/mmc/host/mtk-sd.c
> +++ b/drivers/mmc/host/mtk-sd.c
> @@ -2339,6 +2339,8 @@ static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery)
> if (recovery) {
> sdr_set_field(host->base + MSDC_DMA_CTRL,
> MSDC_DMA_CTRL_STOP, 1);
> + while (readl(host->base + MSDC_DMA_CFG) & MSDC_DMA_CFG_STS)
> + cpu_relax();
> msdc_reset_hw(host);
> }
> }
>