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 ha cambiato i file con 53 aggiunte e 1 eliminazioni

Vedi File

@@ -2494,6 +2494,28 @@ static int dp_display_get_mst_caps(struct dp_display *dp_display,
return rc;
}
static void dp_display_wakeup_phy_layer(struct dp_display *dp_display,
bool wakeup)
{
struct dp_display_private *dp;
struct dp_hpd *hpd;
if (!dp_display) {
pr_err("invalid input\n");
return;
}
dp = container_of(dp_display, struct dp_display_private, dp_display);
if (!dp->mst.drm_registered) {
pr_debug("drm mst not registered\n");
return;
}
hpd = dp->hpd;
if (hpd && hpd->wakeup_phy)
hpd->wakeup_phy(hpd, wakeup);
}
static int dp_display_probe(struct platform_device *pdev)
{
int rc = 0;
@@ -2566,6 +2588,8 @@ static int dp_display_probe(struct platform_device *pdev)
dp_display_mst_get_connector_info;
g_dp_display->mst_get_fixed_topology_port =
dp_display_mst_get_fixed_topology_port;
g_dp_display->wakeup_phy_layer =
dp_display_wakeup_phy_layer;
rc = component_add(&pdev->dev, &dp_display_comp_ops);
if (rc) {