diff options
Diffstat (limited to 'msm/dp/dp_display.c')
-rw-r--r-- | msm/dp/dp_display.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/msm/dp/dp_display.c b/msm/dp/dp_display.c index be33452b..39eb0799 100644 --- a/msm/dp/dp_display.c +++ b/msm/dp/dp_display.c @@ -917,6 +917,8 @@ static void dp_display_clean(struct dp_display_private *dp) continue; dp_panel = dp->active_panels[idx]; + if (dp_panel->audio_supported) + dp_panel->audio->off(dp_panel->audio); dp_display_stream_pre_disable(dp, dp_panel); dp_display_stream_disable(dp, dp_panel); @@ -924,6 +926,7 @@ static void dp_display_clean(struct dp_display_private *dp) } dp->power_on = false; + dp->is_connected = false; dp->ctrl->off(dp->ctrl); } @@ -1026,8 +1029,14 @@ static void dp_display_mst_attention(struct dp_display_private *dp) if (dp->mst.mst_active && dp->mst.cbs.hpd_irq) { hpd_irq.mst_hpd_sim = dp->debug->mst_hpd_sim; + hpd_irq.mst_sim_add_con = dp->debug->mst_sim_add_con; + hpd_irq.mst_sim_remove_con = dp->debug->mst_sim_remove_con; + hpd_irq.mst_sim_remove_con_id = dp->debug->mst_sim_remove_con_id; + hpd_irq.edid = dp->debug->get_edid(dp->debug); dp->mst.cbs.hpd_irq(&dp->dp_display, &hpd_irq); dp->debug->mst_hpd_sim = false; + dp->debug->mst_sim_add_con = false; + dp->debug->mst_sim_remove_con = false; } DP_MST_DEBUG("mst_attention_work. mst_active:%d\n", dp->mst.mst_active); |