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 <[email protected]>
---
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 11 +++++++++--
 1 file 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 3efd910ea463..7e42eb18313d 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 @@ static int analogix_dp_set_bridge(struct 
analogix_dp_device *dp)
 }
 
 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 */
-- 
2.34.1

Reply via email to