On 11/11/22 10:42, Wenchao Chen wrote: > From: Wenchao Chen <wenchao.chen@xxxxxxxxxx> > > During the HS200 tuning process, too many tuning errors are printed in > the log. > > Signed-off-by: Wenchao Chen <wenchao.chen@xxxxxxxxxx> > --- > drivers/mmc/host/sdhci.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index fef03de85b99..a503b54305eb 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -3401,6 +3401,10 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) > if (host->pending_reset) > return; > > + command = SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND)); > + if (command == MMC_SEND_TUNING_BLOCK || command == MMC_SEND_TUNING_BLOCK_HS200) > + return; Normally we wouldn't get here even if a request got an error because then we either reset the data circuit which should stop further interrupts, or set host->pending_reset. Can you elaborate on what is going wrong? > + > pr_err("%s: Got data interrupt 0x%08x even though no data operation was in progress.\n", > mmc_hostname(host->mmc), (unsigned)intmask); > sdhci_err_stats_inc(host, UNEXPECTED_IRQ);