OSDN Git Service

drm: rcar-du: Don't restart group when enabling plane on Gen3
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 21 Feb 2022 16:54:41 +0000 (18:54 +0200)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 3 Mar 2022 12:06:04 +0000 (14:06 +0200)
On Gen3 hardware enabling a VSP plane doesn't change any register that
requires DRES to take effect. Avoid a group restart in that case.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drivers/gpu/drm/rcar-du/rcar_du_plane.c
drivers/gpu/drm/rcar-du/rcar_du_vsp.c

index 9b058d6..22aeeb1 100644 (file)
@@ -560,6 +560,12 @@ void __rcar_du_plane_setup(struct rcar_du_group *rgrp,
                if (rcdu->vspd1_sink != vspd1_sink) {
                        rcdu->vspd1_sink = vspd1_sink;
                        rcar_du_set_dpad0_vsp1_routing(rcdu);
+
+                       /*
+                        * Changes to the VSP1 sink take effect on DRES and thus
+                        * need a restart of the group.
+                        */
+                       rgrp->need_restart = true;
                }
        }
 }
index b7fc5b0..32530d6 100644 (file)
@@ -84,15 +84,6 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc)
 
        __rcar_du_plane_setup(crtc->group, &state);
 
-       /*
-        * Ensure that the plane source configuration takes effect by requesting
-        * a restart of the group. See rcar_du_plane_atomic_update() for a more
-        * detailed explanation.
-        *
-        * TODO: Check whether this is still needed on Gen3.
-        */
-       crtc->group->need_restart = true;
-
        vsp1_du_setup_lif(crtc->vsp->vsp, crtc->vsp_pipe, &cfg);
 }