diff --git a/msm/dp/dp_ctrl.c b/msm/dp/dp_ctrl.c index 19445de21d..3f69f235ad 100644 --- a/msm/dp/dp_ctrl.c +++ b/msm/dp/dp_ctrl.c @@ -723,8 +723,10 @@ static int dp_ctrl_link_setup(struct dp_ctrl_private *ctrl, bool shallow) break; } - if (!link_train_max_retries || atomic_read(&ctrl->aborted)) + if (!link_train_max_retries || atomic_read(&ctrl->aborted)) { + dp_ctrl_disable_link_clock(ctrl); break; + } if (rc != -EAGAIN) dp_ctrl_link_rate_down_shift(ctrl); @@ -1319,7 +1321,8 @@ static int dp_ctrl_on(struct dp_ctrl *dp_ctrl, bool mst_mode, ctrl->initial_bw_code = ctrl->link->link_params.bw_code; rc = dp_ctrl_link_setup(ctrl, shallow); - ctrl->power_on = true; + if (!rc) + ctrl->power_on = true; end: return rc; }