> > The ioctl interface allowed to set cmd_timeout_ms when polling for busy on > R1B commands. This was often limited by the max hw timeout so work around > it like for the sanitize command. > > Signed-off-by: Christian Loehle <cloehle@xxxxxxxxxxxxxx> > --- > drivers/mmc/core/block.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index > 20da7ed43e6d..ba3bc9014179 100644 > --- a/drivers/mmc/core/block.c > +++ b/drivers/mmc/core/block.c > @@ -472,6 +472,8 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card > *card, struct mmc_blk_data *md, > struct scatterlist sg; > int err; > unsigned int target_part; > + unsigned int busy_timeout = MMC_BLK_TIMEOUT_MS; > + int poll_prog = false; > > if (!card || !md || !idata) > return -EINVAL; > @@ -493,6 +495,12 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card > *card, struct mmc_blk_data *md, > cmd.opcode = idata->ic.opcode; > cmd.arg = idata->ic.arg; > cmd.flags = idata->ic.flags; > + /* R1B flag might be removed here to work around hw, so save it */ > + poll_prog = (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == > MMC_RSP_R1B); > + busy_timeout = idata->ic.cmd_timeout_ms ? : > + MMC_BLK_TIMEOUT_MS; Isn't commit 23e09be254f9 already introduced the very same thing? Meaning mmc_poll_for_busy() is already called with the appropriate timeout? Thanks, Avri > + if (poll_prog) > + mmc_prepare_busy_cmd(card->host, &cmd, busy_timeout); > > if (idata->buf_bytes) { > data.sg = &sg; > @@ -596,7 +604,7 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card > *card, struct mmc_blk_data *md, > if (idata->ic.postsleep_min_us) > usleep_range(idata->ic.postsleep_min_us, idata- > >ic.postsleep_max_us); > > - if (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) { > + if (poll_prog) { > /* > * Ensure RPMB/R1B command has completed by polling CMD13 > "Send Status". Here we > * allow to override the default timeout value if a custom timeout is > specified. > -- > 2.37.3 > > > Hyperstone GmbH | Reichenaustr. 39a | 78467 Konstanz Managing Director: > Dr. Jan Peter Berns. > Commercial register of local courts: Freiburg HRB381782