mmc: fixup edma stop when data err occur, cause edma halt
authorlintao <lintao@rock-chips.com>
Tue, 30 Sep 2014 09:45:24 +0000 (17:45 +0800)
committerlintao <lintao@rock-chips.com>
Tue, 30 Sep 2014 09:55:40 +0000 (17:55 +0800)
commit6b919533a0fd5b296489a143f1d4dcd7c3e45846
treebdce1c5f7d252672a7d670fb2924652040c4afcb
parent3b980b6fb693780e249b43d2b0b0f0ae84880515
mmc: fixup edma stop when data err occur, cause edma halt
Fast insert and remove sd card make edma equeue, dequeue
frequently. And with unstable fifo data err, if we stop edma, it
terminate all data will been sent later and flush that desc. However,
MHSC hardware fifo byte counter in fault state  because avaliable data
isn't enough, and remain data been teminated by stop edma. So edma req
signal in fault state event we restart edma. We just let edma sent remain
data, and reset fifo to drop these unused data.

<6>[ 1137.707403] mmc0: new SD card at address 1234
<6>[ 1137.708095] mmcblk0: mmc0:1234 SA02G 1.83 GiB
<3>[ 1141.654157] dwmmc_rockchip 10214000.rksdmmc: data_over interrupt timeout!

Signed-off-by: lintao <lintao@rock-chips.com>
drivers/mmc/host/rk_sdmmc.c