On Fri, May 22, 2020 at 11:18:24AM +0200, Klaus Doth 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 | 3 +++ > 1 file changed, 3 insertions(+) What changed from v1? Always put that below the --- line like the documentation says to do so. > > diff --git a/drivers/misc/cardreader/rtsx_pcr.c > b/drivers/misc/cardreader/rtsx_pcr.c > index 06038b325b02..3a6a6988cf80 100644 > --- a/drivers/misc/cardreader/rtsx_pcr.c > +++ b/drivers/misc/cardreader/rtsx_pcr.c > @@ -141,6 +141,9 @@ static void rtsx_comm_pm_full_on(struct rtsx_pcr *pcr) > struct rtsx_cr_option *option = &pcr->option; > > rtsx_disable_aspm(pcr); > + > + /* Fixes DMA transfer timeout issue after disabling ASPM on RTS5260 */ > + msleep(1); > > if (option->ltr_enabled) > rtsx_set_ltr_latency(pcr, option->ltr_active_latency); All tabs are gone and replaced with spaces, making this impossible to apply :( thanks, greg k-h