diff options
| author | Damon Ding <damon.ding@rock-chips.com> | 2026-04-13 21:25:44 +0800 |
|---|---|---|
| committer | Luca Ceresoli <luca.ceresoli@bootlin.com> | 2026-04-13 17:16:21 +0200 |
| commit | 3be024d26a576519ce75fabfbdf6972731c19900 (patch) | |
| tree | aaacf31504fdca001fec4df93169cde36d786810 /drivers | |
| parent | 5f183b0588eb508ab49022e26923d91698447226 (diff) | |
drm/bridge: analogix_dp: Pass struct drm_atomic_state* for analogix_dp_bridge_mode_set()
To avoid using &analogix_dp_device.connector for compatibility
with the bridge connector framework, get &drm_connector from
&drm_atomic_state instead.
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20260413132551.1049307-2-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 840c1963e60e..84b994cce900 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1095,14 +1095,21 @@ out_dp_init: } static void analogix_dp_bridge_mode_set(struct drm_bridge *bridge, + struct drm_atomic_state *state, const struct drm_display_mode *mode) { struct analogix_dp_device *dp = to_dp(bridge); - struct drm_display_info *display_info = &dp->connector.display_info; struct video_info *video = &dp->video_info; struct device_node *dp_node = dp->dev->of_node; + struct drm_connector *connector; + struct drm_display_info *display_info; int vic; + connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); + if (!connector) + return; + display_info = &connector->display_info; + /* Input video interlaces & hsync pol & vsync pol */ video->interlaced = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC); @@ -1186,7 +1193,7 @@ static void analogix_dp_bridge_atomic_enable(struct drm_bridge *bridge, new_crtc_state = drm_atomic_get_new_crtc_state(old_state, crtc); if (!new_crtc_state) return; - analogix_dp_bridge_mode_set(bridge, &new_crtc_state->adjusted_mode); + analogix_dp_bridge_mode_set(bridge, old_state, &new_crtc_state->adjusted_mode); old_crtc_state = drm_atomic_get_old_crtc_state(old_state, crtc); /* Not a full enable, just disable PSR and continue */ |
