Messages in this thread | | | Subject | Re: [PATCH V4] mmc: sdhci-msm: Update system suspend/resume callbacks of sdhci-msm platform driver | From | Veerabhadrarao Badiganti <> | Date | Thu, 5 Mar 2020 19:26:54 +0530 |
| |
On 3/4/2020 10:16 PM, Stephen Boyd wrote: > Quoting Ulf Hansson (2020-03-04 07:34:29) >> On Thu, 20 Feb 2020 at 07:45, Shaik Sajida Bhanu <sbhanu@codeaurora.org> wrote: >>> The existing suspend/resume callbacks of sdhci-msm driver are just >>> gating/un-gating the clocks. During suspend cycle more can be done >>> like disabling controller, disabling card detection, enabling wake-up events. >>> >>> So updating the system pm callbacks for performing these extra >>> actions besides controlling the clocks. >>> >>> Signed-off-by: Shaik Sajida Bhanu <sbhanu@codeaurora.org> >>> Reviewed-by: Stephen Boyd <swboyd@chromium.org> >>> --- >>> Changes since V3: >>> Invoking sdhci & cqhci resume if sdhci_host_suspend fails. >>> Removed condition check before invoking cqhci_resume since its a dummy function. >>> >>> Changes since V2: >>> Removed disabling/enabling pwr-irq from system pm ops. >>> >>> Changes since V1: >>> Invoking pm_runtime_force_suspend/resume instead of >>> sdhci_msm_runtime_suepend/resume. >>> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c >>> index 3955fa5d..3559b50 100644 >>> --- a/drivers/mmc/host/sdhci-msm.c >>> +++ b/drivers/mmc/host/sdhci-msm.c >>> @@ -2159,9 +2159,52 @@ static __maybe_unused int sdhci_msm_runtime_resume(struct device *dev) > [...] >>> + >>> + ret = sdhci_suspend_host(host); >>> + if (ret) >>> + goto resume_cqhci; >> sdhci_suspend_host() can't be called on a device that has been runtime >> suspended, as that would lead to accessing device registers when >> clocks/PM domains are gated. >> >> Depending on how the corresponding cqhci device is managed from a >> runtime PM point of view, it could also be problematic to call >> cqhci_suspend(). > There seems to be another patch floating around here[1] that is an > attempt at a fix to this patch. They should probably be combined so that > it's not confusing what's going on.
The other fix is altogether different. It is the fix for the issue seen with run-time pm.
whereas this change is for system pm.
>>> + >>> + ret = pm_runtime_force_suspend(dev); >> It looks to me that perhaps you could make use of solely >> pm_runtime_force_suspend(), then just skip calling >> sdhci_suspend|resume_host() altogether. Do you think that could work? > Does that do all the things the commit text mentions is desired for > system suspend? > >>> like disabling controller, disabling card detection, enabling wake-up events. > [1] https://lore.kernel.org/linux-arm-msm/1583322863-21790-1-git-send-email-vbadigan@codeaurora.org/
| |