[PATCH] mmc: dw_mmc: Fixes timeout issue for FIFO mode

Jaehoon Chung jh80.chung at samsung.com
Tue Jan 11 11:39:23 CET 2022


Hi,

On 1/11/22 7:24 PM, hmz007 wrote:
> Clearing the DTO interrupt should be unnecessary, and it would
> potentially result in never receiving this interrupt again.
> 
> Do power-on or reset from uboot for a while can reproduce the issue:
>   dwmci_data_transfer: Timeout waiting for data!
>   mmc_load_image_raw_sector: mmc block read error

Which board did you test? When you do power-on, is it reproduced every time?

> 
> Tested on NanoPi R4S with SanDisk Extreme PRO 32GB.
> 
> Fixes: 8cb9d3ed3a ("mmc: dw_mmc: Fixes data read when receiving DTO interrupt in FIFO mode")
> Signed-off-by: hmz007 <hmz007 at gmail.com>

Could you change from your ID to your name?

Best Regards,
Jaehoon Chung

> ---
>  drivers/mmc/dw_mmc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c
> index a949dad574..8fa26b340b 100644
> --- a/drivers/mmc/dw_mmc.c
> +++ b/drivers/mmc/dw_mmc.c
> @@ -168,7 +168,7 @@ static int dwmci_data_transfer(struct dwmci_host *host, struct mmc_data *data)
>  			if (data->flags == MMC_DATA_READ &&
>  			    (mask & (DWMCI_INTMSK_RXDR | DWMCI_INTMSK_DTO))) {
>  				dwmci_writel(host, DWMCI_RINTSTS,
> -					     DWMCI_INTMSK_RXDR | DWMCI_INTMSK_DTO);
> +					     DWMCI_INTMSK_RXDR);
>  				while (size) {
>  					ret = dwmci_fifo_ready(host,
>  							DWMCI_FIFO_EMPTY,
> 



More information about the U-Boot mailing list