Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2610abfb authored by Laurent Pinchart's avatar Laurent Pinchart
Browse files

drm: rcar-du: Split planes pre-association 4/4 between CRTCs



If we have more than one CRTCs in a group pre-associate planes 0-3 with
CRTC 0 and planes 4-7 with CRTC 1 to minimize flicker occurring when the
association is changed. The pre-association could be controlled by a
module parameter if needed.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
parent fe6fbe9a
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -257,9 +257,6 @@ static void rcar_du_crtc_update_planes(struct rcar_du_crtc *rcrtc)
	 * resulting in visible flicker. To mitigate the issue only update the
	 * association if needed by enabled planes. Planes being disabled will
	 * keep their current association.
	 *
	 * To mitigate the issue further we could pre-associate planes with
	 * CRTCs, either with a fixed 4/4 split, or through a module parameter.
	 */
	mutex_lock(&rcrtc->group->lock);

+4 −3
Original line number Diff line number Diff line
@@ -765,10 +765,11 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
		rgrp->index = i;
		rgrp->num_crtcs = min(rcdu->num_crtcs - 2 * i, 2U);

		/* Pre-associate all hardware planes with the first CRTC in the
		 * group.
		/* If we have more than one CRTCs in this group pre-associate
		 * planes 0-3 with CRTC 0 and planes 4-7 with CRTC 1 to minimize
		 * flicker occurring when the association is changed.
		 */
		rgrp->dptsr_planes = 0;
		rgrp->dptsr_planes = rgrp->num_crtcs > 1 ? 0xf0 : 0;

		ret = rcar_du_planes_init(rgrp);
		if (ret < 0)