Hi, > > + for (;;) { > > + value = readl(host->ioaddr + SDCMD); > > + if (!(value & SDCMD_NEW_FLAG)) > > + break; > > + if (check_fail && (value & SDCMD_FAIL_FLAG)) > > + break; > > + if (time_after(jiffies, end)) { > > + dev_err(dev, "%s: timeout (%d us)\n", > > + __func__, timeout); > > + break; > > + } > > + > > + /* if it takes longer reduce poll interval */ > > + if (time_after(jiffies, fastpoll)) > > + udelay(10); > > + else > > + cpu_relax(); > > + } > > Use readl_poll_timeout intead of open-coding them.. Cool. Didn't know this exists. Incremental fixup attached. thanks, Gerd