drm/vc4: txp: Don't set TXP_VSTART_AT_EOF
authorMaxime Ripard <maxime@cerno.tech>
Mon, 28 Mar 2022 15:36:55 +0000 (17:36 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Fri, 8 Apr 2022 11:38:06 +0000 (13:38 +0200)
The TXP_VSTART_AT_EOF will generate a second VSTART signal to the HVS.
However, the HVS waits for VSTART to enable the FIFO and will thus start
filling the FIFO before the start of the frame.

This leads to corruption at the beginning of the first frame, and
content from the previous frame at the beginning of the next frames.

Since one VSTART is enough, let's get rid of it.

Fixes: 008095e065a8 ("drm/vc4: Add support for the transposer block")
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20220328153659.2382206-3-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_txp.c

index 9809ca3e294516c70fac713902b8e169852eaabf..ace2d03649ba405f872fe4f0d51da7b81d7deb70 100644 (file)
@@ -298,7 +298,7 @@ static void vc4_txp_connector_atomic_commit(struct drm_connector *conn,
        if (WARN_ON(i == ARRAY_SIZE(drm_fmts)))
                return;
 
-       ctrl = TXP_GO | TXP_VSTART_AT_EOF | TXP_EI |
+       ctrl = TXP_GO | TXP_EI |
               VC4_SET_FIELD(0xf, TXP_BYTE_ENABLE) |
               VC4_SET_FIELD(txp_fmts[i], TXP_FORMAT);