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 <heiko@sntech.de> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:

committed by
Philipp Tomsich

parent
2ba8bf2074
commit
05fa06b960
@@ -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
|
||||
|
Reference in New Issue
Block a user