drm/stm: ltdc: update planes at next vblank to avoid partial refresh
authorYannick Fertré <yannick.fertre@st.com>
Mon, 1 Apr 2019 07:24:17 +0000 (09:24 +0200)
committerBenjamin Gaignard <benjamin.gaignard@linaro.org>
Wed, 24 Apr 2019 11:51:47 +0000 (13:51 +0200)
Plane updates must be synchronized on vblank with the shadow register mechanism
to avoid partial refresh on screen.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
Acked-by: Philippe Cornu <philippe.cornu@st.com>
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1554103457-29595-1-git-send-email-yannick.fertre@st.com
drivers/gpu/drm/stm/ltdc.c

index 02f67fa9881f75f686b658f424a643882fcc22aa..cde2f18ce1c17f5d3d9af30de4992347d8a7ea0b 100644 (file)
@@ -426,8 +426,8 @@ static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc,
        /* Enable IRQ */
        reg_set(ldev->regs, LTDC_IER, IER_RRIE | IER_FUIE | IER_TERRIE);
 
-       /* Immediately commit the planes */
-       reg_set(ldev->regs, LTDC_SRCR, SRCR_IMR);
+       /* Commit shadow registers = update planes at next vblank */
+       reg_set(ldev->regs, LTDC_SRCR, SRCR_VBR);
 
        /* Enable LTDC */
        reg_set(ldev->regs, LTDC_GCR, GCR_LTDCEN);