|
@@ -1677,10 +1677,6 @@ static void dp_display_disconnect_sync(struct dp_display_private *dp)
|
|
cancel_work_sync(&dp->attention_work);
|
|
cancel_work_sync(&dp->attention_work);
|
|
flush_workqueue(dp->wq);
|
|
flush_workqueue(dp->wq);
|
|
|
|
|
|
- if (!dp->debug->sim_mode && !dp->no_aux_switch
|
|
|
|
- && !dp->parser->gpio_aux_switch && dp->aux->switch_configure)
|
|
|
|
- dp->aux->switch_configure(dp->aux, false, ORIENTATION_NONE);
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Delay the teardown of the mainlink for better interop experience.
|
|
* Delay the teardown of the mainlink for better interop experience.
|
|
* It is possible that certain sinks can issue an HPD high immediately
|
|
* It is possible that certain sinks can issue an HPD high immediately
|
|
@@ -1731,6 +1727,13 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev)
|
|
if (dp->debug->psm_enabled && dp_display_state_is(DP_STATE_READY))
|
|
if (dp->debug->psm_enabled && dp_display_state_is(DP_STATE_READY))
|
|
dp->link->psm_config(dp->link, &dp->panel->link_info, true);
|
|
dp->link->psm_config(dp->link, &dp->panel->link_info, true);
|
|
|
|
|
|
|
|
+ dp->ctrl->abort(dp->ctrl, true);
|
|
|
|
+ dp->aux->abort(dp->aux, true);
|
|
|
|
+
|
|
|
|
+ if (!dp->debug->sim_mode && !dp->no_aux_switch
|
|
|
|
+ && !dp->parser->gpio_aux_switch && dp->aux->switch_configure)
|
|
|
|
+ dp->aux->switch_configure(dp->aux, false, ORIENTATION_NONE);
|
|
|
|
+
|
|
dp_display_disconnect_sync(dp);
|
|
dp_display_disconnect_sync(dp);
|
|
|
|
|
|
mutex_lock(&dp->session_lock);
|
|
mutex_lock(&dp->session_lock);
|