diff options
author | Tom Rini <trini@konsulko.com> | 2024-04-15 07:38:51 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-04-15 07:38:51 -0600 |
commit | db972665794f38c7bf224d69f6a6206a4083d85d (patch) | |
tree | 414ce1b69f602096c093719fed5302c8cf0fb94a /drivers/mmc/tmio-common.c | |
parent | d736d9f2126e014e92cd3efaa82d4b1520c6c25b (diff) | |
parent | 3657ef738ad6aa2c32c569e7ae67a5557343f7d0 (diff) |
Merge https://source.denx.de/u-boot/custodians/u-boot-mmc
Diffstat (limited to 'drivers/mmc/tmio-common.c')
-rw-r--r-- | drivers/mmc/tmio-common.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 890c496b535..719c4830bc3 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -299,7 +299,13 @@ static int tmio_sd_dma_wait_for_irq(struct udevice *dev, u32 flag, struct tmio_sd_priv *priv = dev_get_priv(dev); long wait = 1000000 + 10 * blocks; - while (!(tmio_sd_readl(priv, TMIO_SD_DMA_INFO1) & flag)) { + for (;;) { + if (tmio_sd_readl(priv, TMIO_SD_DMA_INFO1) & flag) + break; + + if (tmio_sd_readl(priv, TMIO_SD_INFO1) & TMIO_SD_INFO1_CMP) + break; + if (wait-- < 0) { dev_err(dev, "timeout during DMA\n"); return -ETIMEDOUT; |