aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch b/target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch
new file mode 100644
index 0000000000..14749219b0
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0564-drm-vc4-dsi-Add-configuration-for-BCM2711-DSI1.patch
@@ -0,0 +1,53 @@
+From 24b8230e039c6bef2dcc0ea4ca7cb5d2441570f1 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Thu, 3 Dec 2020 14:25:42 +0100
+Subject: [PATCH] drm/vc4: dsi: Add configuration for BCM2711 DSI1
+
+Commit d0666be8ef9e8e65d4b7fabc1606ec51f61384c0 upstream.
+
+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 | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_dsi.c
++++ b/drivers/gpu/drm/vc4/vc4_dsi.c
+@@ -1316,6 +1316,13 @@ static const struct drm_encoder_helper_f
+ .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",
+@@ -1332,6 +1339,7 @@ static const struct vc4_dsi_variant bcm2
+ };
+
+ 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 },
+ {}
+@@ -1516,8 +1524,8 @@ static int vc4_dsi_bind(struct device *d
+ 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) {