summaryrefslogtreecommitdiff
path: root/drivers/mmc/tmio-common.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-04-15 07:38:51 -0600
committerTom Rini <trini@konsulko.com>2024-04-15 07:38:51 -0600
commitdb972665794f38c7bf224d69f6a6206a4083d85d (patch)
tree414ce1b69f602096c093719fed5302c8cf0fb94a /drivers/mmc/tmio-common.c
parentd736d9f2126e014e92cd3efaa82d4b1520c6c25b (diff)
parent3657ef738ad6aa2c32c569e7ae67a5557343f7d0 (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.c8
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;