mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-11-22 04:56:15 +00:00
8c405cdccc
The patches were generated from the RPi repo with the following command: git format-patch v6.6.34..rpi-6.1.y Some patches needed rebasing and, as usual, the applied and reverted, wireless drivers, Github workflows, READMEs and defconfigs patches were removed. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
60 lines
1.8 KiB
Diff
60 lines
1.8 KiB
Diff
From 2118551cfedf4b76821987d4de72379c82fbe1be Mon Sep 17 00:00:00 2001
|
|
From: Tim Gover <tim.gover@raspberrypi.com>
|
|
Date: Thu, 13 Jul 2023 17:47:22 +0100
|
|
Subject: [PATCH 0602/1085] drm/vc4: Enable SCALER_CONTROL early in HVS init
|
|
|
|
Always enable SCALER_CONTROL before attempting other HVS
|
|
operations. It's safe to write to some parts of the HVS but
|
|
in general it's dangerous to do this because it can cause bus
|
|
lockups.
|
|
|
|
Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_hvs.c | 14 ++++++++------
|
|
1 file changed, 8 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_hvs.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
|
|
@@ -1293,6 +1293,10 @@ static int vc4_hvs_hw_init(struct vc4_hv
|
|
struct vc4_dev *vc4 = hvs->vc4;
|
|
u32 dispctrl, reg;
|
|
|
|
+ dispctrl = HVS_READ(SCALER_DISPCTRL);
|
|
+ dispctrl |= SCALER_DISPCTRL_ENABLE;
|
|
+ HVS_WRITE(SCALER_DISPCTRL, dispctrl);
|
|
+
|
|
reg = HVS_READ(SCALER_DISPECTRL);
|
|
reg &= ~SCALER_DISPECTRL_DSP2_MUX_MASK;
|
|
HVS_WRITE(SCALER_DISPECTRL,
|
|
@@ -1314,8 +1318,6 @@ static int vc4_hvs_hw_init(struct vc4_hv
|
|
reg | VC4_SET_FIELD(3, SCALER_DISPDITHER_DSP5_MUX));
|
|
|
|
dispctrl = HVS_READ(SCALER_DISPCTRL);
|
|
-
|
|
- dispctrl |= SCALER_DISPCTRL_ENABLE;
|
|
dispctrl |= SCALER_DISPCTRL_DISPEIRQ(0) |
|
|
SCALER_DISPCTRL_DISPEIRQ(1) |
|
|
SCALER_DISPCTRL_DISPEIRQ(2);
|
|
@@ -1511,6 +1513,10 @@ static int vc4_hvs_bind(struct device *d
|
|
else
|
|
hvs->dlist = hvs->regs + SCALER5_DLIST_START;
|
|
|
|
+ ret = vc4_hvs_hw_init(hvs);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
/* Upload filter kernels. We only have the one for now, so we
|
|
* keep it around for the lifetime of the driver.
|
|
*/
|
|
@@ -1520,10 +1526,6 @@ static int vc4_hvs_bind(struct device *d
|
|
if (ret)
|
|
return ret;
|
|
|
|
- ret = vc4_hvs_hw_init(hvs);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
ret = vc4_hvs_cob_init(hvs);
|
|
if (ret)
|
|
return ret;
|