mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-24 03:56:59 +08:00

These patches were generated from: https://github.com/raspberrypi/linux/commits/rpi-6.12.y With the following command: git format-patch -N v6.12.27..HEAD (HEAD -> 8d3206ee456a5ecdf9ddbfd8e5e231e4f0cd716e) Exceptions: - (def)configs patches - github workflows patches - applied & reverted patches - readme patches - wireless patches Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
From d48dad2dbadc52056f0bfea42f552e272f2525fa Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 2 May 2024 12:03:58 +0100
|
|
Subject: [PATCH] drm/vc4: dsi: Don't reset the host until post_disable
|
|
|
|
Some DSI peripheral drivers wish to send commands in the
|
|
post_disable or panel unprepare callback. These are called
|
|
after the DSI host's disable call, but before the host's
|
|
post_disable if pre_enable_prev_first is set.
|
|
|
|
Don't reset the block until post_disable to allow these
|
|
commands to be sent.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_dsi.c | 15 +++++++--------
|
|
1 file changed, 7 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_dsi.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_dsi.c
|
|
@@ -823,6 +823,13 @@ static void vc4_dsi_bridge_disable(struc
|
|
disp0_ctrl = DSI_PORT_READ(DISP0_CTRL);
|
|
disp0_ctrl &= ~DSI_DISP0_ENABLE;
|
|
DSI_PORT_WRITE(DISP0_CTRL, disp0_ctrl);
|
|
+}
|
|
+
|
|
+static void vc4_dsi_bridge_post_disable(struct drm_bridge *bridge,
|
|
+ struct drm_bridge_state *state)
|
|
+{
|
|
+ struct vc4_dsi *dsi = bridge_to_vc4_dsi(bridge);
|
|
+ struct device *dev = &dsi->pdev->dev;
|
|
|
|
/* Reset the DSI and all its fifos. */
|
|
DSI_PORT_WRITE(CTRL, DSI_CTRL_SOFT_RESET_CFG |
|
|
@@ -833,14 +840,6 @@ static void vc4_dsi_bridge_disable(struc
|
|
DSI_PORT_BIT(PHY_AFEC0_PD) |
|
|
DSI_PORT_BIT(AFEC0_PD_ALL_LANES));
|
|
|
|
-}
|
|
-
|
|
-static void vc4_dsi_bridge_post_disable(struct drm_bridge *bridge,
|
|
- struct drm_bridge_state *state)
|
|
-{
|
|
- struct vc4_dsi *dsi = bridge_to_vc4_dsi(bridge);
|
|
- struct device *dev = &dsi->pdev->dev;
|
|
-
|
|
clk_disable_unprepare(dsi->pll_phy_clock);
|
|
clk_disable_unprepare(dsi->escape_clock);
|
|
clk_disable_unprepare(dsi->pixel_clock);
|