Re: [PATCH v2] MMC/SDIO: enable SDIO device to suspend/resume asynchronously

From: Ulf Hansson
Date: Tue Oct 06 2015 - 04:21:38 EST


On 21 September 2015 at 06:30, Fu, Zhonghui <zhonghui.fu@xxxxxxxxxxxxxxx> wrote:
> Now, PM core supports asynchronous suspend/resume mode for devices
> during system suspend/resume, and the power state transition of one
> device may be completed in separate kernel thread. PM core ensures
> all power state transition timing dependency between devices. This
> patch enables SDIO card and function devices to suspend/resume
> asynchronously. This will take advantage of multicore and improve
> system suspend/resume speed.
>
> Signed-off-by: Zhonghui Fu <zhonghui.fu@xxxxxxxxxxxxxxx>
> ---
> Changes in v2:
> - Amend commit message.
>
> drivers/mmc/core/sdio.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
> index b91abed..6719b77 100644
> --- a/drivers/mmc/core/sdio.c
> +++ b/drivers/mmc/core/sdio.c
> @@ -1106,6 +1106,8 @@ int mmc_attach_sdio(struct mmc_host *host)
> pm_runtime_enable(&card->dev);
> }
>
> + device_enable_async_suspend(&card->dev);
> +
> /*
> * The number of functions on the card is encoded inside
> * the ocr.
> @@ -1126,6 +1128,8 @@ int mmc_attach_sdio(struct mmc_host *host)
> */
> if (host->caps & MMC_CAP_POWER_OFF_CARD)
> pm_runtime_enable(&card->sdio_func[i]->dev);
> +
> + device_enable_async_suspend(&card->sdio_func[i]->dev);
> }
>
> /*
> -- 1.7.1

I wonder how you guarantee that the mmc host device will be suspended
*after* the SDIO card device and the SDIO func device? Currently that
is controlled via device registration/probe order, without any device
hierarchy configured.

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/