Message ID | 1551238603-82412-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
Headers | show |
Series | Add hardware unbusy interrupt support for dw_mmc | expand |
Thanks for quickly work this out, it works fine by testing until now, and it perfactly make the system work better in single core platform. Tested-by: Ziyuan Xu <xzy.xu@rock-chips.com> On 2019/2/27 上午11:36, Shawn Lin wrote: > 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(-) >
On 2019/3/7 16:21, ziyuan wrote: > Thanks for quickly work this out, it works fine by testing until now, > and it perfactly make the system work better in single core platform. > > Tested-by: Ziyuan Xu <xzy.xu@rock-chips.com> Thanks for testing. I'm still waiting for any other comments before respin v2. > > On 2019/2/27 上午11:36, Shawn Lin wrote: >> 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(-) >>