On 15/04/16 20:29, Dong Aisheng wrote: > During card detection process, mmc core may sends commands > to detect if card is still exist in mmc_rescan for removable > card which may trigger mmc retuning process after a bit time > of runtime pm suspend. > Obviously this retuning process is meaningless for card remove > case, so we disable mmc_retune in mmc_detect_change() for it. > For card insert case, the mmc_retune will be enabled normally > in its card initialization process later in mmc_execute_tuning(). > So disable it at first has no side effection. We don't assume that the card has been removed, which is why we send commands to find out if it is still there. If it is still there, this change will have incorrectly disabled re-tuning. Do you have an actual problem with the way it works now? > > CC: stable <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Dong Aisheng <aisheng.dong@xxxxxxx> > --- > drivers/mmc/core/core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index 52bfaf0..76d0802 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -1888,6 +1888,7 @@ static void _mmc_detect_change(struct mmc_host *host, unsigned long delay, > pm_wakeup_event(mmc_dev(host), 5000); > > host->detect_change = 1; > + mmc_retune_disable(host); > mmc_schedule_delayed_work(&host->detect, delay); > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html