mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-25 07:14:03 +00:00
drm/msm/dp: retry 3 times if set sink to D0 poweer state failed
Bring sink out of D3 (power down) mode into D0 (normal operation) mode by setting DP_SET_POWER_D0 bit to DP_SET_POWER dpcd register. This patch will retry 3 times if written to DP_SET_POWER register failed. Changes in v5: -- split into two patches Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com> Patchwork: https://patchwork.freedesktop.org/patch/502536/ Link: https://lore.kernel.org/r/1662999830-13916-4-git-send-email-quic_khsieh@quicinc.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
parent
d54c518a49
commit
af309c0c06
@ -50,6 +50,7 @@ static int dp_aux_link_power_up(struct drm_dp_aux *aux,
|
||||
{
|
||||
u8 value;
|
||||
ssize_t len;
|
||||
int i;
|
||||
|
||||
if (link->revision < 0x11)
|
||||
return 0;
|
||||
@ -61,11 +62,13 @@ static int dp_aux_link_power_up(struct drm_dp_aux *aux,
|
||||
value &= ~DP_SET_POWER_MASK;
|
||||
value |= DP_SET_POWER_D0;
|
||||
|
||||
len = drm_dp_dpcd_writeb(aux, DP_SET_POWER, value);
|
||||
if (len < 0)
|
||||
return len;
|
||||
|
||||
usleep_range(1000, 2000);
|
||||
/* retry for 1ms to give the sink time to wake up */
|
||||
for (i = 0; i < 3; i++) {
|
||||
len = drm_dp_dpcd_writeb(aux, DP_SET_POWER, value);
|
||||
usleep_range(1000, 2000);
|
||||
if (len == 1)
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user