[PATCH 0/2] drm: rcar-du: Avoid flicker when enabling a VSP plane
Laurent Pinchart
laurent.pinchart+renesas at ideasonboard.com
Mon Feb 21 17:13:38 UTC 2022
Hello,
This patch series avoids flicker in some scenarios related to dual
output configuration.
The issue was originally reported by Michael Rodin in [1]. The problem
is described in details there, and copied here to facilitate discussion:
--------
Restarting a display unit group can cause a visible flicker on the display.
Particularly when a LVDS display is connected to a Salvator board and an
HDMI display is (re)connected, then there will be 2 visible flickers on the
LVDS display:
1. during atomic_flush (The need_restart flag is set in this case by
rcar_du_vsp_enable.):
rcar_du_crtc_atomic_flush
rcar_du_crtc_update_planes
...
...
/* Restart the group if plane sources have changed. */
if (rcrtc->group->need_restart)
rcar_du_group_restart(rcrtc->group);
2. during atomic_enable:
rcar_du_crtc_atomic_enable
rcar_du_crtc_start
rcar_du_group_start_stop(rcrtc->group, true);
To avoid flickers in all use cases, do not restart DU groups on the Gen3
SoCs at all, since it is not required any more.
--------
The proposed patch unfortunately introduced a regression. This series
fixes the issue in the first scenario described above. The second
scenario still leads to flicker, and I don't think that can be fixed as
the hardware requires the whole group of outputs to be stopped for some
register changes to take effect.
[1] https://lore.kernel.org/dri-devel/1637680811-90510-1-git-send-email-mrodin@de.adit-jv.com
Laurent Pinchart (2):
drm: rcar-du: Don't select VSP1 sink on Gen3
drm: rcar-du: Don't restart group when enabling plane on Gen3
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 12 ++++++++++--
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 9 ---------
2 files changed, 10 insertions(+), 11 deletions(-)
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list