2021-08-21 08:54:34 +00:00
|
|
|
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
|
2022-08-28 13:09:23 +00:00
|
|
|
@@ -1374,6 +1374,13 @@ static const struct drm_encoder_helper_f
|
2021-08-21 08:54:34 +00:00
|
|
|
.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",
|
2022-08-28 13:09:23 +00:00
|
|
|
@@ -1390,6 +1397,7 @@ static const struct vc4_dsi_variant bcm2
|
2021-08-21 08:54:34 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
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 },
|
|
|
|
{}
|
2022-08-28 13:09:23 +00:00
|
|
|
@@ -1577,8 +1585,8 @@ static int vc4_dsi_bind(struct device *d
|
2021-08-21 08:54:34 +00:00
|
|
|
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) {
|