[PATCH] mmc: dw_mmc: Fix FIFO data transfer timeout

Peng Fan peng.fan at nxp.com
Tue Oct 8 03:19:58 CEST 2024


> Subject: [PATCH] mmc: dw_mmc: Fix FIFO data transfer timeout
> 
> The commit 0252924ac6d4 ("mmc: dw_mmc: Extract FIFO data
> transfer into a separate routine") unintentionally changed behavior of
> the FIFO data transfer routine.
> 
> When data is read and size reaches 0 the original loop would wait on
> DWMCI_INTMSK_DTO or timeout. The remaining size to read is no
> longer tracked across dwmci_data_transfer_fifo() calls and because of
> this an extra call to fifo() and dwmci_fifo_ready() may now trigger a
> FIFO underflow timeout.
> 
>   Buswidth = 4, clock: 50000000
>   Sending CMD16
>   Sending CMD17
>   dwmci_fifo_ready: FIFO underflow timeout
>   Sending CMD16
>   Sending CMD18
>   dwmci_fifo_ready: FIFO underflow timeout
>   Sending CMD12
>   ## Checking hash(es) for config config-1 ... OK
> 
> Restore old behavior and track remaining size to read across calls to fix
> this.
> 
> Fixes: 0252924ac6d4 ("mmc: dw_mmc: Extract FIFO data transfer into
> a separate routine")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>

LGTM: Reviewed-by: Peng Fan <peng.fan at nxp.com>


More information about the U-Boot mailing list