Set the backpointer so that the DP helpers are able to access the
connector that the drm_dp_aux is associated with.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
---

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c 
b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 02b97bf64ee4..7d45d3e4600a 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1402,23 +1402,25 @@ int analogix_dp_bind(struct device *dev, struct 
drm_device *drm_dev,
        dp->drm_dev = drm_dev;
        dp->encoder = dp->plat_data->encoder;

+       ret = analogix_dp_create_bridge(drm_dev, dp);
+       if (ret) {
+               DRM_ERROR("failed to create bridge (%d)\n", ret);
+               goto err_encoder_cleanup;
+       }
+
        dp->aux.name = "DP-AUX";
        dp->aux.transfer = analogix_dpaux_transfer;
        dp->aux.dev = &pdev->dev;
+       dp->aux.connector = &dp->connector;

        ret = drm_dp_aux_register(&dp->aux);
        if (ret)
-               goto err_disable_pm_runtime;
-
-       ret = analogix_dp_create_bridge(drm_dev, dp);
-       if (ret) {
-               DRM_ERROR("failed to create bridge (%d)\n", ret);
-               drm_encoder_cleanup(dp->encoder);
-               goto err_disable_pm_runtime;
-       }
+               goto err_encoder_cleanup;

        return 0;

+err_encoder_cleanup:
+       drm_encoder_cleanup(dp->encoder);
 err_disable_pm_runtime:
        pm_runtime_disable(dev);

-- 
2.9.3

Reply via email to