mmc: tmio: renesas: Add 1uS delay after DMA completion on older IPs
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Fri, 11 Jan 2019 22:38:07 +0000 (23:38 +0100)
committerMarek Vasut <marex@denx.de>
Sat, 9 Feb 2019 10:08:40 +0000 (11:08 +0100)
commitcbbe69483ec823105903bac890fab9af087c36c9
treef44d2d298f1ffafe12d9c65079dc222dae8ecf63
parent992bcf4f27794a7f578e0145ef1c933a87a1d83c
mmc: tmio: renesas: Add 1uS delay after DMA completion on older IPs

The internal DMAC asserts DMA transfer end bit too early on older
version of the TMIO IPs which use bit 17 for DTRAEND. Add 1uS
delay after the completion of DMA transfer and before invalidating
the cache to let the DMAC fully complete the transfer. Otherwise,
it could happen that the last few bytes of a transferred data are
not available.

A test case to trigger this behavior is the following command, ran
on the U-Boot command line, with Sandisk 16 GiB UHS-I card inserted
into SDHI slot 0 and with first partition being of type FAT:
=> while true ; do mmc rescan ; fstype mmc 0:1 ; done

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
drivers/mmc/tmio-common.c