Re: [PATCH V1] mmc: sdhci-msm: Add system suspend/resume callbacks

From: Matthias Kaehlcke
Date: Tue Jan 21 2020 - 18:26:09 EST


Hi Shaik,

On Tue, Jan 21, 2020 at 08:00:22PM +0530, Shaik Sajida Bhanu wrote:
> Add system suspend/resume callbacks to sdhci-msm platform driver.
>
> Signed-off-by: Shaik Sajida Bhanu <sbhanu@xxxxxxxxxxxxxx>
> ---
> drivers/mmc/host/sdhci-msm.c | 47 ++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 45 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index 71f29ba..4984857 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -2028,9 +2028,52 @@ static __maybe_unused int sdhci_msm_runtime_resume(struct device *dev)
> return 0;
> }
>
> +static int sdhci_msm_suspend(struct device *dev)
> +{
> + struct sdhci_host *host = dev_get_drvdata(dev);
> + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> + struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
> + int ret = 0;

initialization is not needed.

> +
> + if (host->mmc->caps2 & MMC_CAP2_CQE) {
> + ret = cqhci_suspend(host->mmc);
> + if (ret)
> + return ret;
> + }
> +
> + disable_irq(msm_host->pwr_irq);
> + ret = sdhci_suspend_host(host);
> + if (ret)
> + return ret;
> +
> + return sdhci_msm_runtime_suspend(dev);
> +}
> +
> +static int sdhci_msm_resume(struct device *dev)
> +{
> + struct sdhci_host *host = dev_get_drvdata(dev);
> + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> + struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
> + int ret = 0;

initialization is not needed.

> + ret = sdhci_msm_runtime_resume(dev);
> + if (ret)
> + return ret;
> +
> + ret = sdhci_resume_host(host);
> + if (ret < 0)
> + return ret;
> + enable_irq(msm_host->pwr_irq);
> +
> + if (host->mmc->caps2 & MMC_CAP2_CQE)
> + ret = cqhci_resume(host->mmc);
> +
> + return ret;
> +}
> +
> static const struct dev_pm_ops sdhci_msm_pm_ops = {
> - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
> - pm_runtime_force_resume)
> + SET_SYSTEM_SLEEP_PM_OPS(sdhci_msm_suspend,
> + sdhci_msm_resume)
> SET_RUNTIME_PM_OPS(sdhci_msm_runtime_suspend,
> sdhci_msm_runtime_resume,
> NULL)