Re: [PATCH v1 1/3] drm/msm/dpu: set dirty_fb flag while in self refresh mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 31/03/2023 17:45, Dmitry Baryshkov wrote:
On Fri, 31 Mar 2023 at 16:59, Vinod Polimera <quic_vpolimer@xxxxxxxxxxx> 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@xxxxxxxxxx>



Reported-by: Bjorn Andersson <andersson@xxxxxxxxxx>
Link: https://lore.kernel.org/all/20230326162723.3lo6pnsfdwzsvbhj@ripper/
Signed-off-by: Vinod Polimera <quic_vpolimer@xxxxxxxxxxx>
---
  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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux