Skip to contentSkip to conversation

FAILED: patch "[PATCH] drm/amd/display: Use full update for swizzle mode change" failed to apply to 6.1-stable tree

PATCH [email protected] 1 participant 1 message Oct 1, 2024

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 6.1-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]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x b74571a83fd3e50f804f090aae60c864d458187c
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024100122-pleat-ambiguous-d015@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..

Possible dependencies:

b74571a83fd3 ("drm/amd/display: Use full update for swizzle mode change") 09cb922c4e14 ("drm/amd/display: Add debug options to change sharpen policies") efaf15752d11 ("drm/amd/display: Add sharpness control interface")
469a486541b6 ("drm/amd/display: add sharpness support for windowed YUV420 video") 6efc0ab3b05d ("drm/amd/display: add back quality EASF and ISHARP and dc dependency changes") 85ecfdda063b ("drm/amd/display: Re-order enum in a header file")
f9e675988886 ("drm/amd/display: roll back quality EASF and ISHARP and dc dependency changes") 748b3c4ca0bf ("drm/amd/display: Add visual confirm for Idle State") f82200703434 ("drm/amd/display: remove dc dependencies from SPL library") c18fa08e6fd8 ("drm/amd/display: Disable subvp based on HW cursor requirement") 5f30ee493044 ("drm/amd/display: quality improvements for EASF and ISHARP") bbd0d1c942cb ("drm/amd/display: Fix possible overflow in integer multiplication") 0057b36ac2be ("drm/amd/display: Send message to notify the DPIA host router bandwidth") 6b6d38c5086f ("Revert "drm/amd/display: workaround for oled eDP not lighting up on DCN401"") 6184bd5750a8 ("drm/amd/display: Enable DCN401 idle optimizations by default") e902dd7f3e3b ("drm/amd/display: workaround for oled eDP not lighting up on DCN401") a00e85713c37 ("drm/amd/display: Update DML2.1 generated code")
2998bccfa419 ("drm/amd/display: Enable ISHARP support for DCN401") 9716bae1eaaf ("drm/amd/display: Disable DCN401 idle optimizations") 7a1dd866c5ac ("drm/amd/display: enable EASF support for DCN40")

thanks,

greg k-h

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

From b74571a83fd3e50f804f090aae60c864d458187c Mon Sep 17 00:00:00 2001
From: Charlene Liu <[email protected]>
Date: Wed, 4 Sep 2024 15:58:25 -0400
Subject: [PATCH] drm/amd/display: Use full update for swizzle mode change

[WHY & HOW]
1) We did linear/non linear transition properly long ago
2) We used that path to handle SystemDisplayEnable
3) We fixed a SystemDisplayEnable inability to fallback to passive by impacting the transition flow generically
4) AFMF later relied on the generic transition behavior

Separating the two flows to make (3) non-generic is the best immediate coarse of action.

DC can discern SSAMPO3 very easily from SDE.

drivers/gpu/drm/amd/display/dc/core/dc.c +3 -3
index 67812fbbb006..a1652130e4be 100644
@@ -2376,7 +2376,7 @@ static bool is_surface_in_context(
 	return false;
 }
 
-static enum surface_update_type get_plane_info_update_type(const struct dc_surface_update *u)
+static enum surface_update_type get_plane_info_update_type(const struct dc *dc, const struct dc_surface_update *u)
 {
 	union surface_update_flags *update_flags = &u->surface->update_flags;
 	enum surface_update_type update_type = UPDATE_TYPE_FAST;
@@ -2455,7 +2455,7 @@ static enum surface_update_type get_plane_info_update_type(const struct dc_surfa
 		/* todo: below are HW dependent, we should add a hook to
 		 * DCE/N resource and validated there.
 		 */
-		if (u->plane_info->tiling_info.gfx9.swizzle != DC_SW_LINEAR) {
+		if (!dc->debug.skip_full_updated_if_possible) {
 			/* swizzled mode requires RQ to be setup properly,
 			 * thus need to run DML to calculate RQ settings
 			 */
@@ -2547,7 +2547,7 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
 
 	update_flags->raw = 0; // Reset all flags
 
-	type = get_plane_info_update_type(u);
+	type = get_plane_info_update_type(dc, u);
 	elevate_update_type(&overall_type, type);
 
 	type = get_scaling_info_update_type(dc, u);
drivers/gpu/drm/amd/display/dc/dc.h +1 -0
index e659f4fed19f..78ebe636389e 100644
@@ -1060,6 +1060,7 @@ struct dc_debug_options {
 	bool enable_ips_visual_confirm;
 	unsigned int sharpen_policy;
 	unsigned int scale_to_sharpness_policy;
+	bool skip_full_updated_if_possible;
 };