[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