On Tue, Jul 28, 2026 at 03:20:45PM +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <[email protected]>
> 
> dev_pm_opp_set_rate(0) removes the vote specified in required-opps but
> does not actually park the clock, making it run without the necessary
> power backing. Prevent that from happening when
> _dpu_core_perf_get_core_clk_rate() returns 0.
> 
> Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
> Signed-off-by: Konrad Dybcio <[email protected]>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c 
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
> index 2ff255d7795e..fea173e37464 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
> @@ -394,6 +394,10 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc,
>  
>               trace_dpu_core_perf_update_clk(kms->dev, !crtc->enabled, 
> clk_rate);
>  
> +             /* If we're going offline, PM callbacks will disable the clocks 
> instead */
> +             if (!clk_rate)
> +                     return 0;

Is 0 here an actual case? If it is coming from the core_perf, then the
next line will handle it.

> +
>               clk_rate = min(clk_rate, kms->perf.max_core_clk_rate);
>               ret = dev_pm_opp_set_rate(&kms->pdev->dev, clk_rate);
>               if (ret) {
> 
> -- 
> 2.55.0
> 

-- 
With best wishes
Dmitry

Reply via email to