[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <DG3ORZIEYI9Z.34Z2QZ4J2A21@disroot.org>
Date: Sun, 01 Feb 2026 19:44:24 +0530
From: "Kaustabh Chakraborty" <kauschluss@...root.org>
To: "Marek Szyprowski" <m.szyprowski@...sung.com>, "Kaustabh Chakraborty"
<kauschluss@...root.org>, "Inki Dae" <inki.dae@...sung.com>, "Jagan Teki"
<jagan@...rulasolutions.com>, "Andrzej Hajda" <andrzej.hajda@...el.com>,
"Neil Armstrong" <neil.armstrong@...aro.org>, "Robert Foss"
<rfoss@...nel.org>, "Laurent Pinchart" <Laurent.pinchart@...asonboard.com>,
"Jonas Karlman" <jonas@...boo.se>, "Jernej Skrabec"
<jernej.skrabec@...il.com>, "Maarten Lankhorst"
<maarten.lankhorst@...ux.intel.com>, "Maxime Ripard" <mripard@...nel.org>,
"Thomas Zimmermann" <tzimmermann@...e.de>, "David Airlie"
<airlied@...il.com>, "Simona Vetter" <simona@...ll.ch>
Cc: <dri-devel@...ts.freedesktop.org>, <linux-kernel@...r.kernel.org>,
<stable@...r.kernel.org>
Subject: Re: [PATCH 1/3] drm/bridge: samsung-dsim: move bridge init sequence
to atomic_enable
On 2026-01-26 09:57 +01:00, Marek Szyprowski wrote:
> On 24.01.2026 18:20, Kaustabh Chakraborty wrote:
>> 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: stable@...r.kernel.org # v6.17 and later
>> Signed-off-by: Kaustabh Chakraborty <kauschluss@...root.org>
>
> I'm not sure if this will be needed:
>
> https://lore.kernel.org/all/20251205-drm-seq-fix-v1-0-fda68fa1b3de@ideasonboard.com/
Tested on v6.19-rc7, this is fixed now. This can be dropped.
>
>
>> ---
>> 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);
>>
> Best regards
Powered by blists - more mailing lists