On 27 October 2016 at 17:06, Thierry Escande <thierry.escande@xxxxxxxxxxxxx> wrote: > Hi Ulf, > > On 25/10/2016 12:03, Ulf Hansson wrote: >> >> On 3 October 2016 at 16:19, Thierry Escande >> <thierry.escande@xxxxxxxxxxxxx> wrote: >>> >>> From: zhaojohn <john.zhao@xxxxxxxxx> >>> >>> Hynix eMMC devices sometimes take 50% longer to resume from sleep. >>> Based on a recommendation from Hynix, send a Power-Off Notification >>> before going to S3 to restore a resume time consistently within spec. >> >> >> Could you also share what mmc controller and SoC you get this results >> from? >> >> More precisely, are you using MMC_CAP_WAIT_WHILE_BUSY? > > This occurs on a braswell based chromebook, using the acpi sdhci controller. > So yes, using MMC_CAP_WAIT_WHILE_BUSY. > > [...] >>> >>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >>> index f2d185c..46a4562 100644 >>> --- a/drivers/mmc/core/mmc.c >>> +++ b/drivers/mmc/core/mmc.c >>> @@ -1925,8 +1925,14 @@ static int _mmc_suspend(struct mmc_host *host, >>> bool is_suspend) >>> if (mmc_can_poweroff_notify(host->card) && >>> ((host->caps2 & MMC_CAP2_FULL_PWR_CYCLE) || !is_suspend)) >>> err = mmc_poweroff_notify(host->card, notify_type); >>> - else if (mmc_can_sleep(host->card)) >>> + else if (mmc_can_sleep(host->card)) { >>> + if (host->card->quirks & >>> MMC_QUIRK_NOTIFY_POWEROFF_ON_SLEEP) { >>> + err = mmc_poweroff_notify(host->card, >>> notify_type); >>> + if (err) >>> + goto out; >>> + } >> >> >> So, I am curious to know from a power management point of view; how >> does the card behave comparing the sleep and power off notification >> command? >> >> Is the card in a low power state after the power off notification has >> been received? If so, did you manage to do some measurement for that >> or perhaps the data-sheet tells about this? It would be interesting to >> know if there were any differences between sleep and power off >> notification in this regards. > > I do not have any clue about that. It appears only with Hynix emmc and the > fix has been approved by Hynix engineers... It seems that if not powered > off, the firmware does some garbage collection when resuming and it takes > more time... Okay, I see. So before I continue reviewing, can you please also tell what regulators to the card that is being cut while powering off in this path. VMMC, VQMMC? Kind regards Uffe -- 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