mbox series

[v3,0/3] Add hardware unbusy interrupt support for dw_mmc

Message ID 1552986778-33904-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive)
Headers show
Series Add hardware unbusy interrupt support for dw_mmc | expand

Message

Shawn Lin March 19, 2019, 9:12 a.m. UTC
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.


Changes in v3:
- remove unused irqflags and check hw_unbusy_int in
  dw_mci_wait_hw_unbusy() as well.

Changes in v2:
- add tag from Ziyuan Xu
- remove lock for checking event since it's already atomic operation

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          | 56 +++++++++++++++++++++++++++++++++++++-
 drivers/mmc/host/dw_mmc.h          |  6 ++++
 3 files changed, 91 insertions(+), 1 deletion(-)