From 05fa06b9606387ad4a65723d93a83b36a98d600b Mon Sep 17 00:00:00 2001 From: Heiko Stuebner Date: Fri, 21 Sep 2018 10:59:45 +0200 Subject: mmc: dw_mmc: check fifo status with a timeout in fifo mode While trying to enable the dw_mmc on rk3188 I managed to confuse and hang the dw_mmc controller into not delivering further data. The fifo state never became ready and the driver was iterating in the while loop reading 0-byte packets forever. So inspired by how other implementations handle this, check the fifo- state beforhand and add a timeout to catch any glaring fifo issues without hanging uboot altogether. Signed-off-by: Heiko Stuebner Reviewed-by: Philipp Tomsich Acked-by: Philipp Tomsich --- include/dwmmc.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/dwmmc.h') diff --git a/include/dwmmc.h b/include/dwmmc.h index bc1d6e3abbc..0f9d51b5579 100644 --- a/include/dwmmc.h +++ b/include/dwmmc.h @@ -103,6 +103,8 @@ #define DWMCI_CTYPE_8BIT (1 << 16) /* Status Register */ +#define DWMCI_FIFO_EMPTY (1 << 2) +#define DWMCI_FIFO_FULL (1 << 3) #define DWMCI_BUSY (1 << 9) #define DWMCI_FIFO_MASK 0x1fff #define DWMCI_FIFO_SHIFT 17 -- cgit v1.2.3