[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3b41077b-3482-db89-de31-c41cf6429216@linaro.org>
Date: Mon, 3 Apr 2023 19:18:16 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Vinod Polimera <quic_vpolimer@...cinc.com>
Cc: dri-devel@...ts.freedesktop.org, linux-arm-msm@...r.kernel.org,
freedreno@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, robdclark@...il.com,
dianders@...omium.org, swboyd@...omium.org,
quic_kalyant@...cinc.com, quic_khsieh@...cinc.com,
quic_vproddut@...cinc.com, quic_bjorande@...cinc.com,
quic_abhinavk@...cinc.com, quic_sbillaka@...cinc.com
Subject: Re: [PATCH v1 1/3] drm/msm/dpu: set dirty_fb flag while in self
refresh mode
On 31/03/2023 17:45, Dmitry Baryshkov wrote:
> On Fri, 31 Mar 2023 at 16:59, Vinod Polimera <quic_vpolimer@...cinc.com> wrote:
>>
>> While in virtual terminal mode with PSR enabled, there will be
>> no atomic commits triggered without dirty_fb being set. This
>> will create a notion of no screen update. Allow atomic commit
>> when dirty_fb ioctl is issued, so that it can trigger a PSR exit
>> and shows update on the screen.
>
> Will this impact non-VT workloads? If I remember correctly, we added
> dirty_fb handling to prevent the framework from limiting the page
> flips to vblank events (in DSI video mode).
Actually, this is kind of stupid. If we care about the workload of this
pipe, then it is being updated, which means it is not in SR mode,
self_refresh_active = false.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
>
>>
>> Reported-by: Bjorn Andersson <andersson@...nel.org>
>> Link: https://lore.kernel.org/all/20230326162723.3lo6pnsfdwzsvbhj@ripper/
>> Signed-off-by: Vinod Polimera <quic_vpolimer@...cinc.com>
>> ---
>> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
>> index ab636da..96f645e 100644
>> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
>> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
>> @@ -1158,6 +1158,9 @@ static bool dpu_crtc_needs_dirtyfb(struct drm_crtc_state *cstate)
>> struct drm_crtc *crtc = cstate->crtc;
>> struct drm_encoder *encoder;
>>
>> + if (cstate->self_refresh_active)
>> + return true;
>> +
>> drm_for_each_encoder_mask (encoder, crtc->dev, cstate->encoder_mask) {
>> if (dpu_encoder_get_intf_mode(encoder) == INTF_MODE_CMD) {
>> return true;
>> --
>> 2.7.4
>>
>
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists