drm/vc4: Register dsi0 as the correct vc4 encoder type
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Mon, 8 Feb 2021 11:22:01 +0000 (11:22 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:18 +0000 (16:04 +0000)
vc4_dsi was registering both dsi0 and dsi1 as VC4_ENCODER_TYPE_DSI1
which seemed to work OK for a single DSI display, but fails
if there are two DSI displays connected.

Update to register the correct type.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/vc4/vc4_dsi.c

index d09c1ea..66ea2b5 100644 (file)
@@ -1510,7 +1510,8 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data)
                return -ENOMEM;
 
        INIT_LIST_HEAD(&dsi->bridge_chain);
-       vc4_dsi_encoder->base.type = VC4_ENCODER_TYPE_DSI1;
+       vc4_dsi_encoder->base.type = dsi->variant->port ?
+                       VC4_ENCODER_TYPE_DSI1 : VC4_ENCODER_TYPE_DSI0;
        vc4_dsi_encoder->dsi = dsi;
        dsi->encoder = &vc4_dsi_encoder->base.base;