On 2022-06-21 09:46, Sascha Hauer wrote:
Hi Robin,
...
We should only ever
clear the bits we have handled, like sdhci_transfer_data_dma() does with

        sdhci_write32(sdhci, SDHCI_INT_STATUS, SDHCI_INT_DMA);

I just noticed that the tegra-sdmmc mci driver might have the same issue.

https://git.pengutronix.de/cgit/barebox/tree/drivers/mci/tegra-sdmmc.c#n149

It can prevent the following conditional from ever evaluating true trapping
the process in the while loop.
https://git.pengutronix.de/cgit/barebox/tree/drivers/mci/tegra-sdmmc.c#n203

This driver clears the status register on error (not on start/end of function)
with an old value 'val' which can be lacking status bits that popped up
along the way...

I can't test code changes for this platform.

- Robin

Reply via email to