Hi Ulf, On Tue, Feb 4, 2020 at 4:55 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > There exists several separate variants of polling loops, used to detect when > the card stop signals busy for various operations, in the mmc core. All of them > have different issues that needs to be fixed. > > The intent with this series, is to address some of these problems, via first > improving the mmc_poll_for_busy() function, then consolidate code by moving > more users to it. > > While I was working on this, I stumbled over some code here and there, that > deserved some cleanup, hence I also folded in a couple of patches for this. > > So far, I have only managed to extensively test the updated mmc_poll_for_busy() > function for CMD6 commands. Some tests for erase/trim/discard and for > HPI+sanitize are needed. > > Note that, there are still separate polling loops in the mmc block layer, but > moving that to mmc_poll_for_busy() involves some additional work. I am looking > into that as a next step. > > Please help review and test! That will be help if you can supply one git branch to fetch these patches :), and I will help to do some testing on my platform. > Ulf Hansson (12): > mmc: core: Throttle polling rate for CMD6 > mmc: core: Drop unused define > mmc: core: Extend mmc_switch_status() to rid of __mmc_switch_status() > mmc: core: Drop redundant in-parameter to __mmc_switch() > mmc: core: Split up mmc_poll_for_busy() > mmc: core: Enable re-use of mmc_blk_in_tran_state() > mmc: core: Update CMD13 busy check for CMD6 commands > mmc: core: Convert to mmc_poll_for_busy() for erase/trim/discard > mmc: core: Drop redundant out-parameter to mmc_send_hpi_cmd() > mmc: core: Convert to mmc_poll_for_busy() for HPI commands > mmc: core: Fixup support for HW busy detection for HPI commands > mmc: core: Re-work the error path for the eMMC sanitize command > > drivers/mmc/core/block.c | 55 +++++-------- > drivers/mmc/core/core.c | 53 +------------ > drivers/mmc/core/mmc.c | 38 ++++----- > drivers/mmc/core/mmc_ops.c | 159 ++++++++++++++++++++++--------------- > drivers/mmc/core/mmc_ops.h | 13 ++- > include/linux/mmc/core.h | 3 - > include/linux/mmc/mmc.h | 10 +++ > 7 files changed, 157 insertions(+), 174 deletions(-) > > -- > 2.17.1 >