diff options
| author | Heiko Stuebner <[email protected]> | 2018-09-21 10:59:45 +0200 |
|---|---|---|
| committer | Philipp Tomsich <[email protected]> | 2018-10-02 09:35:09 +0200 |
| commit | 05fa06b9606387ad4a65723d93a83b36a98d600b (patch) | |
| tree | 47003edf45f9519a4d6026b51f5c45290a33f19a /include | |
| parent | 2ba8bf207481cfb319f54a1bef67f6f068831a58 (diff) | |
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 <[email protected]>
Reviewed-by: Philipp Tomsich <[email protected]>
Acked-by: Philipp Tomsich <[email protected]>
Diffstat (limited to 'include')
| -rw-r--r-- | include/dwmmc.h | 2 |
1 files changed, 2 insertions, 0 deletions
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 |
