[Freedreno] [PATCH v1 1/3] drm/msm/dpu: set dirty_fb flag while in self refresh mode
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Mon Apr 3 16:18:16 UTC 2023
On 31/03/2023 17:45, Dmitry Baryshkov wrote:
> On Fri, 31 Mar 2023 at 16:59, Vinod Polimera <quic_vpolimer at quicinc.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 at linaro.org>
>
>>
>> Reported-by: Bjorn Andersson <andersson at kernel.org>
>> Link: https://lore.kernel.org/all/20230326162723.3lo6pnsfdwzsvbhj@ripper/
>> Signed-off-by: Vinod Polimera <quic_vpolimer at quicinc.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
More information about the Freedreno
mailing list