On Fri, May 22, 2020 at 10:23 AM Klaus Doth <kdlnx@xxxxxxx> wrote: > > From: Klaus Doth <kdlnx@xxxxxxx> > > DMA transfers to and from the SD card stall for 10 seconds and run into > timeout on RTS5260 card readers after ASPM was enabled. > > Adding a short msleep after disabling ASPM fixes the issue on several > Dell Precision 7530/7540 systems I tested. > > This function is only called when waking up after the chip went into > power-save after not transferring data for a few seconds. The added > msleep does therefore not change anything in data transfer speed or > induce any excessive waiting while data transfers are running, or the > chip is sleeping. Only the transition from sleep to active is affected. > > Signed-off-by: Klaus Doth <kdlnx@xxxxxxx> > --- > drivers/misc/cardreader/rtsx_pcr.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/misc/cardreader/rtsx_pcr.c > b/drivers/misc/cardreader/rtsx_pcr.c > index 06038b325b02..8b0799cd88c2 100644 > --- a/drivers/misc/cardreader/rtsx_pcr.c > +++ b/drivers/misc/cardreader/rtsx_pcr.c > @@ -141,6 +141,7 @@ static void rtsx_comm_pm_full_on(struct rtsx_pcr *pcr) > struct rtsx_cr_option *option = &pcr->option; > > rtsx_disable_aspm(pcr); > + msleep(1); Your patch looks fine to me, but I think you should put a short version of that the changelog text into a code comment next to the msleep(). Arnd