mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
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>
This commit is contained in:
committed by
Dom Cobley
parent
61289a0e69
commit
5dbbda8db8
@@ -821,6 +821,13 @@ static void vc4_dsi_bridge_disable(struct drm_bridge *bridge,
|
||||
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_atomic_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 |
|
||||
@@ -831,14 +838,6 @@ static void vc4_dsi_bridge_disable(struct drm_bridge *bridge,
|
||||
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_atomic_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);
|
||||
|
||||
Reference in New Issue
Block a user