mmc: dw_mmc: check fifo status with a timeout in fifo mode
authorHeiko Stuebner <heiko@sntech.de>
Fri, 21 Sep 2018 08:59:45 +0000 (10:59 +0200)
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tue, 2 Oct 2018 07:35:09 +0000 (09:35 +0200)
commit05fa06b9606387ad4a65723d93a83b36a98d600b
tree47003edf45f9519a4d6026b51f5c45290a33f19a
parent2ba8bf207481cfb319f54a1bef67f6f068831a58
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>
drivers/mmc/dw_mmc.c
include/dwmmc.h