Re: [PATCH] drm/msm/dpu: ensure device suspend happens during PM sleep

From: Doug Anderson
Date: Fri Apr 17 2020 - 16:56:52 EST


Hi,

On Fri, Apr 17, 2020 at 12:13 AM Kalyan Thota <kalyan_t@xxxxxxxxxxxxxx> wrote:
>
> "The PM core always increments the runtime usage counter
> before calling the ->suspend() callback and decrements it
> after calling the ->resume() callback"
>
> DPU and DSI are managed as runtime devices. When
> suspend is triggered, PM core adds a refcount on all the
> devices and calls device suspend, since usage count is
> already incremented, runtime suspend was not getting called
> and it kept the clocks on which resulted in target not
> entering into XO shutdown.
>
> Add changes to force suspend on runtime devices during pm sleep.
>
> Changes in v1:
> - Remove unnecessary checks in the function
> _dpu_kms_disable_dpu (Rob Clark).
>
> Changes in v2:
> - Avoid using suspend_late to reset the usagecount
> as suspend_late might not be called during suspend
> call failures (Doug).
>
> Changes in v3:
> - Use force suspend instead of managing device usage_count
> via runtime put and get API's to trigger callbacks (Doug).
>
> Changes in v4:
> - Check the return values of pm_runtime_force_suspend and
> pm_runtime_force_resume API's and pass appropriately (Doug).
>
> Signed-off-by: Kalyan Thota <kalyan_t@xxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 ++
> drivers/gpu/drm/msm/dsi/dsi.c | 2 ++
> drivers/gpu/drm/msm/msm_drv.c | 14 +++++++++++++-
> 3 files changed, 17 insertions(+), 1 deletion(-)

I am most certainly not an expert in this code, but as far as I can
tell it looks sane. Thus:

Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>

-Doug