[PATCH v2] Revert "mmc: dw_mmc: Extract FIFO data transfer into a separate routine"

Quentin Schulz quentin.schulz at cherry.de
Tue Oct 15 16:15:41 CEST 2024


Hi Jonas,

On 10/8/24 9:18 PM, Jonas Karlman wrote:
> 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 and buf position
> 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 error and slows down FIFO reading.
> 
>    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
> 
> This reverts commit 0252924ac6d4af69061bb9589d16b30c5bdb7178 to restore
> the old working behavior.
> 
> Fixes: 0252924ac6d4 ("mmc: dw_mmc: Extract FIFO data transfer into a separate routine")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>

This is fixing a VERY slow boot time on my RK3588 Tiger, so:

Tested-by: Quentin Schulz <quentin.schulz at cherry.de> # RK3588 Tiger

Thanks!
Quentin


More information about the U-Boot mailing list