Re: [PATCH v13 3/4] drm/atomic-helper: Re-order bridge chain pre-enable and post-disable

Chaoyi Chen
2025-12-03T03:43:30Z

[-- Attachment #1: Type: text/plain, Size: 724 bytes --]

Hi Aradhya,

On 10/6/2025 11:30 PM, Aradhya Bhatia wrote:
> +rockchip maintainers
>
> Hi Vicente, all,
>
>
> I went through the drivers and the affected areas in the gru-kevin
> chromebook pipeline last week, but nothing has stood out.
>
>
> Pipeline:
>
> rockchip,display-subsystem / rk3399-vop (Big/Lite) (CRTC) ->
> rk3399-edp (Encoder) -> analogix_dp_core (Bridge) ->
> sharp,lq123p (edp-panel)
>
> I am unable to debug this further since I do not have the hardware.
>
> I could use some help, especially from folks who understand the hardware
> requirements better.
>
>

Sorry for late reply. Could you please try the patch in the
attachment? I think this should work without PSR. Thank you.

--
Best,
Chaoyi

[-- Attachment #2: 0001-drm-bridge-analogix_dp-Force-prepare-drm-panel-in-pr.patch --]
[-- Type: text/plain, Size: 1269 bytes --]

From ae2f62f1e738b22d6f0724e3dd14df3fde5ae434 Mon Sep 17 00:00:00 2001
From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
Date: Wed, 3 Dec 2025 11:29:43 +0800
Subject: [PATCH] drm/bridge: analogix_dp: Force prepare drm panel in
pre_enable

Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
---
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 11 -----------
1 file changed, 11 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index efe534977d12..2c4415fc1e6e 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1126,17 +1126,6 @@ static void analogix_dp_bridge_atomic_pre_enable(struct drm_bridge *bridge,
struct drm_atomic_state *old_state)
{
struct analogix_dp_device *dp = to_dp(bridge);
- struct drm_crtc *crtc;
- struct drm_crtc_state *old_crtc_state;
-
- crtc = analogix_dp_get_new_crtc(dp, old_state);
- if (!crtc)
- return;
-
- old_crtc_state = drm_atomic_get_old_crtc_state(old_state, crtc);
- /* Don't touch the panel if we're coming back from PSR */
- if (old_crtc_state && old_crtc_state->self_refresh_active)
- return;

drm_panel_prepare(dp->plat_data->panel);
}
--
2.51.1

[-- Attachment #3: Type: text/plain, Size: 170 bytes --]