Re: [PATCH 1/3] drm/msm/dpu: Drop sneaky dev_pm_opp_set_rate(0)
From: Konrad Dybcio
Date: Tue Jul 28 2026 - 13:20:00 EST
On 7/28/26 3:57 PM, Dmitry Baryshkov wrote:
> On Tue, Jul 28, 2026 at 03:20:45PM +0200, Konrad Dybcio wrote:
>> From: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>>
>> 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 <konrad.dybcio@xxxxxxxxxxxxxxxx>
>> ---
>> 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.
Yes it is (upon suspend) and it will not be handled because it's a min()
and not a max() below
Konrad
>
>> +
>> 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
>>
>