]> git.dujemihanovic.xyz Git - u-boot.git/commit
Revert "mmc: dw_mmc: Extract FIFO data transfer into a separate routine"
authorJonas Karlman <jonas@kwiboo.se>
Tue, 8 Oct 2024 19:18:31 +0000 (19:18 +0000)
committerTom Rini <trini@konsulko.com>
Tue, 15 Oct 2024 17:38:44 +0000 (11:38 -0600)
commitbbfa4587b5bdc465dc0c9a739591674b7eedb104
tree496aedcf1255e67afe6f8c5341a869622cb76ed0
parenta198e8bb6cb74672a11f6b02bc583efa873ba4bf
Revert "mmc: dw_mmc: Extract FIFO data transfer into a separate routine"

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@kwiboo.se>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Tiger
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/mmc/dw_mmc.c