diff --git a/msm/dp/dp_display.c b/msm/dp/dp_display.c index 63eb244fb0ea..452c6c94b0da 100644 --- a/msm/dp/dp_display.c +++ b/msm/dp/dp_display.c @@ -2324,9 +2324,13 @@ static int dp_display_unprepare(struct dp_display *dp_display, void *panel) * Check if the power off sequence was triggered * by a source initialated action like framework * reboot or suspend-resume but not from normal - * hot plug. + * hot plug. If connector is in MST mode, skip + * powering down host as aux needs to be kept + * alive to handle hot-plug sideband message. */ - if (dp_display_is_ready(dp)) + if (dp_display_is_ready(dp) && + (dp_display_state_is(DP_STATE_SUSPENDED) || + !dp->mst.mst_active)) flags |= DP_PANEL_SRC_INITIATED_POWER_DOWN; if (dp->active_stream_cnt)