From: Greg Kroah-Hartman Date: Tue, 1 Oct 2024 10:03:30 +0000 (+0200) Subject: 6.1-stable patches X-Git-Tag: v6.6.54~83 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4052db0fcd194f8418ca3edd8ee340821456155;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: drm-amd-display-round-calculated-vtotal.patch drm-amd-display-validate-backlight-caps-are-sane.patch --- diff --git a/queue-6.1/drm-amd-display-round-calculated-vtotal.patch b/queue-6.1/drm-amd-display-round-calculated-vtotal.patch new file mode 100644 index 00000000000..c74ac7a9078 --- /dev/null +++ b/queue-6.1/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 +@@ -133,7 +133,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-6.1/drm-amd-display-validate-backlight-caps-are-sane.patch b/queue-6.1/drm-amd-display-validate-backlight-caps-are-sane.patch new file mode 100644 index 00000000000..640e4221692 --- /dev/null +++ b/queue-6.1/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 +@@ -4050,6 +4050,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 + + static void amdgpu_dm_update_backlight_caps(struct amdgpu_display_manager *dm, +@@ -4064,6 +4065,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-6.1/series b/queue-6.1/series index f57faa96190..09a6ba7d6d5 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -310,3 +310,5 @@ input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch kvm-x86-enforce-x2apic-s-must-be-zero-reserved-icr-bits.patch kvm-x86-move-x2apic-icr-helper-above-kvm_apic_write_nodecode.patch drm-amd-display-skip-recompute-dsc-params-if-no-stream-on-link.patch +drm-amd-display-round-calculated-vtotal.patch +drm-amd-display-validate-backlight-caps-are-sane.patch