disp: msm: dp: perform mst phy operations during suspend resume

Perform mst phy operations during suspend/resume
to allow sinks to be in a correct state. A usbpd
api must also be called before and after the phy
operations to allow the system to go into deep
suspend and resume in a timely manner.

CRs-Fixed: 2363921
Change-Id: Ie21ef9b1caf2044e598466373a6059d2a1e5e58c
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
This commit is contained in:
Fuad Hossain
2019-05-15 14:37:39 -04:00
parent 74f328561e
commit ac1149d273
5 changed files with 53 additions and 1 deletions

View File

@@ -608,6 +608,9 @@ static void _dp_mst_bridge_pre_enable_part1(struct dp_mst_bridge *dp_bridge)
/* skip mst specific disable operations during suspend */
if (mst->state == PM_SUSPEND) {
dp_display->wakeup_phy_layer(dp_display, true);
drm_dp_send_power_updown_phy(&mst->mst_mgr, port, true);
dp_display->wakeup_phy_layer(dp_display, false);
_dp_mst_update_single_timeslot(mst, dp_bridge);
return;
}
@@ -691,8 +694,12 @@ static void _dp_mst_bridge_pre_disable_part2(struct dp_mst_bridge *dp_bridge)
DP_MST_DEBUG("enter\n");
/* skip mst specific disable operations during suspend */
if (mst->state == PM_SUSPEND)
if (mst->state == PM_SUSPEND) {
dp_display->wakeup_phy_layer(dp_display, true);
drm_dp_send_power_updown_phy(&mst->mst_mgr, port, false);
dp_display->wakeup_phy_layer(dp_display, false);
return;
}
mst->mst_fw_cbs->check_act_status(&mst->mst_mgr);