diff options
author | Heiko Stuebner <heiko@sntech.de> | 2018-09-21 10:59:45 +0200 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@theobroma-systems.com> | 2018-10-02 09:35:09 +0200 |
commit | 05fa06b9606387ad4a65723d93a83b36a98d600b (patch) | |
tree | 47003edf45f9519a4d6026b51f5c45290a33f19a /include/dwmmc.h | |
parent | 2ba8bf207481cfb319f54a1bef67f6f068831a58 (diff) | |
download | u-boot-05fa06b9606387ad4a65723d93a83b36a98d600b.tar.gz |
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>
Diffstat (limited to 'include/dwmmc.h')
-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 bc1d6e3abb..0f9d51b557 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 |