]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Mon, 13 Jun 2022 14:47:41 +0000 (16:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 21 Aug 2022 13:15:43 +0000 (15:15 +0200)
[ Upstream commit 4d9273c978d4c1af15d7874c10c732ec83d444d0 ]

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 <dave.stevenson@raspberrypi.com>
Link: https://lore.kernel.org/r/20220613144800.326124-15-maxime@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/vc4/vc4_dsi.c

index 2cedf1cf67586914d287a603bc58e6e9a4ba736a..8e2d5c4237aee9a65cea83b9e2ea404fc7d9fdf0 100644 (file)
@@ -1488,7 +1488,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;