Since commit c9b1150a68d9 ("drm/atomic-helper: Re-order bridge chain
pre-enable and post-disable"), pre-enable sequence is called before the
CRTC is enabled.This causes unintended side-effects (abberation among potentially other things) in the display when samsung_dsim_init() is called in the pre-enable part of the sequence. Call it in samsung_dsim_atomic_enable() instead. Cc: [email protected] # v6.17 and later Signed-off-by: Kaustabh Chakraborty <[email protected]> --- drivers/gpu/drm/bridge/samsung-dsim.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 1d85e706c74b9..975f8b50ae660 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1655,6 +1655,13 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge, } dsi->state |= DSIM_STATE_ENABLED; +} + +static void samsung_dsim_atomic_enable(struct drm_bridge *bridge, + struct drm_atomic_state *state) +{ + struct samsung_dsim *dsi = bridge_to_dsi(bridge); + int ret; /* * For Exynos-DSIM the downstream bridge, or panel are expecting @@ -1665,12 +1672,6 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge, if (ret) return; } -} - -static void samsung_dsim_atomic_enable(struct drm_bridge *bridge, - struct drm_atomic_state *state) -{ - struct samsung_dsim *dsi = bridge_to_dsi(bridge); samsung_dsim_set_display_mode(dsi); samsung_dsim_set_display_enable(dsi, true); -- 2.52.0
