Commit 2289b3e1 authored by Caesar Wang's avatar Caesar Wang Committed by Archit Taneja

drm/bridge: analogix_dp: set the DPCD600 during disabling PSR

It looks like the BOE panel FW didn't ack the DPCD600 signal from the
host device, this will cause the panel to hang on the startup display.

The root cause is that we use the fast link mode when we enter and
exit PSR, the issue is gone if we switch from the fast link to main
link mode.
Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1481338159-7189-1-git-send-email-wxt@rock-chips.com
parent d92df868
...@@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev) ...@@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev)
{ {
struct analogix_dp_device *dp = dev_get_drvdata(dev); struct analogix_dp_device *dp = dev_get_drvdata(dev);
struct edp_vsc_psr psr_vsc; struct edp_vsc_psr psr_vsc;
int ret;
if (!dp->psr_support) if (!dp->psr_support)
return 0; return 0;
...@@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev) ...@@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev)
psr_vsc.DB0 = 0; psr_vsc.DB0 = 0;
psr_vsc.DB1 = 0; psr_vsc.DB1 = 0;
ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
if (ret != 1)
dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
analogix_dp_send_psr_spd(dp, &psr_vsc); analogix_dp_send_psr_spd(dp, &psr_vsc);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment