From: Dave Stevenson <[email protected]>

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.

Fixes: 4078f5757144 ("drm/vc4: Add DSI driver")
Signed-off-by: Dave Stevenson <[email protected]>
Signed-off-by: Maxime Ripard <[email protected]>
---
 drivers/gpu/drm/vc4/vc4_dsi.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c
index 81a6c4e9576d..97a258c934af 100644
--- a/drivers/gpu/drm/vc4/vc4_dsi.c
+++ b/drivers/gpu/drm/vc4/vc4_dsi.c
@@ -1518,7 +1518,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;
 
-- 
2.36.1

Reply via email to