From: Greg Kroah-Hartman Date: Tue, 1 Oct 2024 10:03:21 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v6.6.54~84 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=48e880c9c226191f646ae2e14f3b2a7c2b8faccd;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: drm-amd-display-round-calculated-vtotal.patch drm-amd-display-validate-backlight-caps-are-sane.patch --- diff --git a/queue-5.15/drm-amd-display-round-calculated-vtotal.patch b/queue-5.15/drm-amd-display-round-calculated-vtotal.patch new file mode 100644 index 00000000000..9d60999f377 --- /dev/null +++ b/queue-5.15/drm-amd-display-round-calculated-vtotal.patch @@ -0,0 +1,37 @@ +From c03fca619fc687338a3b6511fdbed94096abdf79 Mon Sep 17 00:00:00 2001 +From: Robin Chen +Date: Fri, 23 Aug 2024 15:00:28 +0800 +Subject: drm/amd/display: Round calculated vtotal + +From: Robin Chen + +commit c03fca619fc687338a3b6511fdbed94096abdf79 upstream. + +[WHY] +The calculated vtotal may has 1 line deviation. To get precisely +vtotal number, round the vtotal result. + +Cc: Mario Limonciello +Cc: Alex Deucher +Cc: stable@vger.kernel.org +Reviewed-by: Anthony Koo +Signed-off-by: Robin Chen +Signed-off-by: Alex Hung +Tested-by: Daniel Wheeler +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c ++++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +@@ -131,7 +131,7 @@ unsigned int mod_freesync_calc_v_total_f + + v_total = div64_u64(div64_u64(((unsigned long long)( + frame_duration_in_ns) * (stream->timing.pix_clk_100hz / 10)), +- stream->timing.h_total), 1000000); ++ stream->timing.h_total) + 500000, 1000000); + + /* v_total cannot be less than nominal */ + if (v_total < stream->timing.v_total) { diff --git a/queue-5.15/drm-amd-display-validate-backlight-caps-are-sane.patch b/queue-5.15/drm-amd-display-validate-backlight-caps-are-sane.patch new file mode 100644 index 00000000000..cd8515a8eb1 --- /dev/null +++ b/queue-5.15/drm-amd-display-validate-backlight-caps-are-sane.patch @@ -0,0 +1,60 @@ +From 327e62f47eb57ae5ff63de82b0815557104e439a Mon Sep 17 00:00:00 2001 +From: Mario Limonciello +Date: Fri, 13 Sep 2024 13:00:39 -0500 +Subject: drm/amd/display: Validate backlight caps are sane + +From: Mario Limonciello + +commit 327e62f47eb57ae5ff63de82b0815557104e439a upstream. + +Currently amdgpu takes backlight caps provided by the ACPI tables +on systems as is. If the firmware sets maximums that are too low +this means that users don't get a good experience. + +To avoid having to maintain a quirk list of such systems, do a sanity +check on the values. Check that the spread is at least half of the +values that amdgpu would use if no ACPI table was found and if not +use the amdgpu defaults. + +Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3020 +Reviewed-by: Harry Wentland +Signed-off-by: Mario Limonciello +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -3906,6 +3906,7 @@ static int amdgpu_dm_mode_config_init(st + + #define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 + #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 ++#define AMDGPU_DM_MIN_SPREAD ((AMDGPU_DM_DEFAULT_MAX_BACKLIGHT - AMDGPU_DM_DEFAULT_MIN_BACKLIGHT) / 2) + #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50 + + #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) ||\ +@@ -3923,6 +3924,21 @@ static void amdgpu_dm_update_backlight_c + return; + + amdgpu_acpi_get_backlight_caps(&caps); ++ ++ /* validate the firmware value is sane */ ++ if (caps.caps_valid) { ++ int spread = caps.max_input_signal - caps.min_input_signal; ++ ++ if (caps.max_input_signal > AMDGPU_DM_DEFAULT_MAX_BACKLIGHT || ++ caps.min_input_signal < AMDGPU_DM_DEFAULT_MIN_BACKLIGHT || ++ spread > AMDGPU_DM_DEFAULT_MAX_BACKLIGHT || ++ spread < AMDGPU_DM_MIN_SPREAD) { ++ DRM_DEBUG_KMS("DM: Invalid backlight caps: min=%d, max=%d\n", ++ caps.min_input_signal, caps.max_input_signal); ++ caps.caps_valid = false; ++ } ++ } ++ + if (caps.caps_valid) { + dm->backlight_caps[bl_idx].caps_valid = true; + if (caps.aux_support) diff --git a/queue-5.15/series b/queue-5.15/series index 1f44edac3f5..cc5dd17c0c2 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -307,3 +307,5 @@ revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch +drm-amd-display-round-calculated-vtotal.patch +drm-amd-display-validate-backlight-caps-are-sane.patch