goto err_disable_clk;
        }
 
+       dp->aux.name = "DP-AUX";
+       dp->aux.transfer = analogix_dpaux_transfer;
+       dp->aux.dev = dp->dev;
+       drm_dp_aux_init(&dp->aux);
+
+       pm_runtime_use_autosuspend(dp->dev);
+       pm_runtime_set_autosuspend_delay(dp->dev, 100);
+       ret = devm_pm_runtime_enable(dp->dev);
+       if (ret)
+               goto err_disable_clk;
+
        return dp;
 
 err_disable_clk:
        dp->drm_dev = drm_dev;
        dp->encoder = dp->plat_data->encoder;
 
-       pm_runtime_use_autosuspend(dp->dev);
-       pm_runtime_set_autosuspend_delay(dp->dev, 100);
-       ret = devm_pm_runtime_enable(dp->dev);
-       if (ret)
-               return ret;
-
-       dp->aux.name = "DP-AUX";
-       dp->aux.transfer = analogix_dpaux_transfer;
-       dp->aux.dev = dp->dev;
        dp->aux.drm_dev = drm_dev;
 
        ret = drm_dp_aux_register(&dp->aux);