Commit 93cba9da authored by Lin Huang's avatar Lin Huang Committed by Andrzej Hajda

drm/bridge: analogix_dp: Move enable video into config_video()

We need to enable video before analogix_dp_is_video_stream_on(), so
we can get the right video stream status.

We needed to increase the delay in the timeout loop because there is
random "Timeout of video streamclk ok" message happen when debug edp
panel, this time do not define in the spec.

Cc: 征增 王 <wzz@rock-chips.com>
Cc: Stéphane Marchesin <marcheu@chromium.org>
Signed-off-by: default avatarLin Huang <hl@rock-chips.com>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Signed-off-by: default avatarThierry Escande <thierry.escande@collabora.com>
Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180423105003.9004-2-enric.balletbo@collabora.com
parent c5dc6cf7
...@@ -819,11 +819,10 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp) ...@@ -819,11 +819,10 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp)
if (analogix_dp_is_slave_video_stream_clock_on(dp) == 0) if (analogix_dp_is_slave_video_stream_clock_on(dp) == 0)
break; break;
if (timeout_loop > DP_TIMEOUT_LOOP_COUNT) { if (timeout_loop > DP_TIMEOUT_LOOP_COUNT) {
dev_err(dp->dev, "Timeout of video streamclk ok\n"); dev_err(dp->dev, "Timeout of slave video streamclk ok\n");
return -ETIMEDOUT; return -ETIMEDOUT;
} }
usleep_range(1000, 1001);
usleep_range(1, 2);
} }
/* Set to use the register calculated M/N video */ /* Set to use the register calculated M/N video */
...@@ -838,6 +837,9 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp) ...@@ -838,6 +837,9 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp)
/* Configure video slave mode */ /* Configure video slave mode */
analogix_dp_enable_video_master(dp, 0); analogix_dp_enable_video_master(dp, 0);
/* Enable video */
analogix_dp_start_video(dp);
timeout_loop = 0; timeout_loop = 0;
for (;;) { for (;;) {
...@@ -948,9 +950,6 @@ static void analogix_dp_commit(struct analogix_dp_device *dp) ...@@ -948,9 +950,6 @@ static void analogix_dp_commit(struct analogix_dp_device *dp)
DRM_ERROR("failed to enable the panel\n"); DRM_ERROR("failed to enable the panel\n");
} }
/* Enable video */
analogix_dp_start_video(dp);
dp->psr_enable = analogix_dp_detect_sink_psr(dp); dp->psr_enable = analogix_dp_detect_sink_psr(dp);
if (dp->psr_enable) if (dp->psr_enable)
analogix_dp_enable_sink_psr(dp); analogix_dp_enable_sink_psr(dp);
......
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