On Sun, 11 Jun 2023 at 21:41, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > If we are starting a command which can generate a busy > response, then clear the variable host->busy_status > if the variant is using a ->busy_complete callback. > > We are lucky that the member is zero by default and > hopefully always gets cleared in the ->busy_complete > callback even on errors, but it's just fragile so > make sure it is always initialized to zero. > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > ChangeLog v2->v3: > - Clear host->busy_status no matter if the MMC_RSP_BUSY flag > is set or not. > - Now we have an if inside an if left, so combine these into > one singel conditional. > - Resulting re-flow the if-clause. > ChangeLog v1->v2: > - Unconditionally clear host->busy_status if we get a > busy response. > --- > drivers/mmc/host/mmci.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index f2b2e8b0574e..14d639872952 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -1238,7 +1238,8 @@ mmci_start_command(struct mmci_host *host, struct mmc_command *cmd, u32 c) > c |= host->variant->cmdreg_srsp; > } > > - if (host->variant->busy_timeout && cmd->flags & MMC_RSP_BUSY) { > + host->busy_status = 0; > + if ((cmd->flags & MMC_RSP_BUSY) && (host->variant->busy_timeout)) { Why are you changing this line? There is no need to add the extra parentheses, right? > if (!cmd->busy_timeout) > cmd->busy_timeout = 10 * MSEC_PER_SEC; > > Kind regards Uffe