drm/vc4: dsi: Add configuration for BCM2711 DSI1
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Thu, 3 Dec 2020 13:25:42 +0000 (14:25 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Mon, 7 Dec 2020 09:33:33 +0000 (10:33 +0100)
BCM2711 DSI1 doesn't have the issue with the ARM not being
able to write to the registers, therefore remove the DMA
workaround for that compatible string.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20201203132543.861591-8-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_dsi.c

index 82162900e35130cfb665f810e639e9915cdcb79c..a55256ed0955841c620159af2611475e4ec780bd 100644 (file)
@@ -1324,6 +1324,13 @@ static const struct drm_encoder_helper_funcs vc4_dsi_encoder_helper_funcs = {
        .mode_fixup = vc4_dsi_encoder_mode_fixup,
 };
 
+static const struct vc4_dsi_variant bcm2711_dsi1_variant = {
+       .port                   = 1,
+       .debugfs_name           = "dsi1_regs",
+       .regs                   = dsi1_regs,
+       .nregs                  = ARRAY_SIZE(dsi1_regs),
+};
+
 static const struct vc4_dsi_variant bcm2835_dsi0_variant = {
        .port                   = 0,
        .debugfs_name           = "dsi0_regs",
@@ -1340,6 +1347,7 @@ static const struct vc4_dsi_variant bcm2835_dsi1_variant = {
 };
 
 static const struct of_device_id vc4_dsi_dt_match[] = {
+       { .compatible = "brcm,bcm2711-dsi1", &bcm2711_dsi1_variant },
        { .compatible = "brcm,bcm2835-dsi0", &bcm2835_dsi0_variant },
        { .compatible = "brcm,bcm2835-dsi1", &bcm2835_dsi1_variant },
        {}
@@ -1524,8 +1532,8 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data)
                return -ENODEV;
        }
 
-       /* DSI1 has a broken AXI slave that doesn't respond to writes
-        * from the ARM.  It does handle writes from the DMA engine,
+       /* DSI1 on BCM2835/6/7 has a broken AXI slave that doesn't respond to
+        * writes from the ARM.  It does handle writes from the DMA engine,
         * so set up a channel for talking to it.
         */
        if (dsi->variant->broken_axi_workaround) {