提交 5fc0cbfa 编写于 作者: W Wenjing Liu 提交者: Alex Deucher

drm/amd/display: determine if a pipe is synced by plane state

[why]
is_blanked is not a general indicator of if a pipe is synced
for all asics.
plane state is more accurate and applicable for all asics.

[how]
Remove is_blanked call and
add checking plane_state against NULL instead.
Signed-off-by: NWenjing Liu <Wenjing.Liu@amd.com>
Reviewed-by: NTony Cheng <Tony.Cheng@amd.com>
Acked-by: NBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 8f015912
...@@ -907,11 +907,11 @@ static void program_timing_sync( ...@@ -907,11 +907,11 @@ static void program_timing_sync(
} }
} }
/* set first unblanked pipe as master */ /* set first pipe with plane as master */
for (j = 0; j < group_size; j++) { for (j = 0; j < group_size; j++) {
struct pipe_ctx *temp; struct pipe_ctx *temp;
if (pipe_set[j]->stream_res.tg->funcs->is_blanked && !pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg)) { if (pipe_set[j]->plane_state) {
if (j == 0) if (j == 0)
break; break;
...@@ -922,9 +922,9 @@ static void program_timing_sync( ...@@ -922,9 +922,9 @@ static void program_timing_sync(
} }
} }
/* remove any other unblanked pipes as they have already been synced */ /* remove any other pipes with plane as they have already been synced */
for (j = j + 1; j < group_size; j++) { for (j = j + 1; j < group_size; j++) {
if (pipe_set[j]->stream_res.tg->funcs->is_blanked && !pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg)) { if (pipe_set[j]->plane_state) {
group_size--; group_size--;
pipe_set[j] = pipe_set[group_size]; pipe_set[j] = pipe_set[group_size];
j--; j--;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册