Skip to contentSkip to conversation

FAILED: patch "[PATCH] drm/amdgpu/display: use blanked rather than plane state for" failed to apply to 5.4-stable tree

PATCH [email protected] 2 participants 3 messages Jun 22, 2020

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From b7f839d292948142eaab77cedd031aad0bfec872 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Tue, 2 Jun 2020 17:22:48 -0400
Subject: [PATCH] drm/amdgpu/display: use blanked rather than plane state for
sync groups

We may end up with no planes set yet, depending on the ordering, but we should have the proper blanking state which is either handled by either DPG or TG depending on the hardware generation. Check both to determine the proper blanked state.

Fixes 5fc0cbfad45648 ("drm/amd/display: determine if a pipe is synced by plane state")
drivers/gpu/drm/amd/display/dc/core/dc.c +20 -4
index 45cfb7c45566..b4e2053bca9f 100644
@@ -1016,9 +1016,17 @@ static void program_timing_sync(
 			}
 		}
 
-		/* set first pipe with plane as master */
+		/* set first unblanked pipe as master */
 		for (j = 0; j < group_size; j++) {
-			if (pipe_set[j]->plane_state) {
+			bool is_blanked;
+
+			if (pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked)
+				is_blanked =
+					pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked(pipe_set[j]->stream_res.opp);
+			else
+				is_blanked =
+					pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg);
+			if (!is_blanked) {
 				if (j == 0)
 					break;
 
@@ -1039,9 +1047,17 @@ static void program_timing_sync(
 				status->timing_sync_info.master = false;
 
 		}
-		/* remove any other pipes with plane as they have already been synced */
+		/* remove any other unblanked pipes as they have already been synced */
 		for (j = j + 1; j < group_size; j++) {
-			if (pipe_set[j]->plane_state) {
+			bool is_blanked;
+
+			if (pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked)
+				is_blanked =
+					pipe_set[j]->stream_res.opp->funcs->dpg_is_blanked(pipe_set[j]->stream_res.opp);
+			else
+				is_blanked =
+					pipe_set[j]->stream_res.tg->funcs->is_blanked(pipe_set[j]->stream_res.tg);
+			if (!is_blanked) {
 				group_size--;
 				pipe_set[j] = pipe_set[group_size];
 				j--;
maintainer
#1 lore raw
Quoted 23 lines · On Mon, Jun 22, 2020 at 08:06:38PM +0200, [email protected] wrote:

The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From b7f839d292948142eaab77cedd031aad0bfec872 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Tue, 2 Jun 2020 17:22:48 -0400
Subject: [PATCH] drm/amdgpu/display: use blanked rather than plane state for sync groups

We may end up with no planes set yet, depending on the ordering, but we should have the proper blanking state which is either handled by either DPG or TG depending on the hardware generation. Check both to determine the proper blanked state.

Quoted 6 lines
Fixes 5fc0cbfad45648 ("drm/amd/display: determine if a pipe is synced by plane state")

I've grabbed 34b86b75dfc9 ("drm/amd/display: Use swap() where appropriate") as a dependency and queued both for 5.4.

Signature · 2 lines
Thanks,
Sasha
maintainer
#2 lore raw
Quoted 31 lines · Sasha Levin
Quoted 23 lines · On Mon, Jun 22, 2020 at 08:06:38PM +0200, [email protected] wrote:

The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From b7f839d292948142eaab77cedd031aad0bfec872 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Tue, 2 Jun 2020 17:22:48 -0400
Subject: [PATCH] drm/amdgpu/display: use blanked rather than plane state for sync groups

We may end up with no planes set yet, depending on the ordering, but we should have the proper blanking state which is either handled by either DPG or TG depending on the hardware generation. Check both to determine the proper blanked state.

Quoted 6 lines
Fixes 5fc0cbfad45648 ("drm/amd/display: determine if a pipe is synced by plane state")
Quoted 2 lines

I've grabbed 34b86b75dfc9 ("drm/amd/display: Use swap() where appropriate") as a dependency and queued both for 5.4.

Nevermind, looks like it also depends on functionality from eb7a74a36c24 ("drm/amd/display: Add DCN2 OPP").

Signature · 2 lines
Thanks,
Sasha