DesignWare MMC controler lacks proper hardware wait busy support, so the software must check the busy state if the following tranfser need use data line. And dw_mci_wait_while_busy() now use busy check mostly with host's lock hold, and we can't relinguish CPU at this moment, which makes it rather painful when used in low-end platform. To solve this, Rockchip invent a new hardware unbusy interrupt module, which could generate interrupt if the state machine runs from busy state into idle state. Shawn Lin (3): mmc: dw_mmc: Check busy state in dw_mci_request() mmc: dw_mmc: Add hardware unbusy interrupt support mmc: dw_mmc-rockchip: Enable hardware unbusy interrupt support drivers/mmc/host/dw_mmc-rockchip.c | 30 +++++++++++++++++++ drivers/mmc/host/dw_mmc.c | 60 +++++++++++++++++++++++++++++++++++++- drivers/mmc/host/dw_mmc.h | 6 ++++ 3 files changed, 95 insertions(+), 1 deletion(-) -- 1.9.1