]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Oct 2024 10:03:21 +0000 (12:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Oct 2024 10:03:21 +0000 (12:03 +0200)
added patches:
drm-amd-display-round-calculated-vtotal.patch
drm-amd-display-validate-backlight-caps-are-sane.patch

queue-5.15/drm-amd-display-round-calculated-vtotal.patch [new file with mode: 0644]
queue-5.15/drm-amd-display-validate-backlight-caps-are-sane.patch [new file with mode: 0644]
queue-5.15/series

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 (file)
index 0000000..9d60999
--- /dev/null
@@ -0,0 +1,37 @@
+From c03fca619fc687338a3b6511fdbed94096abdf79 Mon Sep 17 00:00:00 2001
+From: Robin Chen <robin.chen@amd.com>
+Date: Fri, 23 Aug 2024 15:00:28 +0800
+Subject: drm/amd/display: Round calculated vtotal
+
+From: Robin Chen <robin.chen@amd.com>
+
+commit c03fca619fc687338a3b6511fdbed94096abdf79 upstream.
+
+[WHY]
+The calculated vtotal may has 1 line deviation. To get precisely
+vtotal number, round the vtotal result.
+
+Cc: Mario Limonciello <mario.limonciello@amd.com>
+Cc: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Reviewed-by: Anthony Koo <anthony.koo@amd.com>
+Signed-off-by: Robin Chen <robin.chen@amd.com>
+Signed-off-by: Alex Hung <alex.hung@amd.com>
+Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..cd8515a
--- /dev/null
@@ -0,0 +1,60 @@
+From 327e62f47eb57ae5ff63de82b0815557104e439a Mon Sep 17 00:00:00 2001
+From: Mario Limonciello <mario.limonciello@amd.com>
+Date: Fri, 13 Sep 2024 13:00:39 -0500
+Subject: drm/amd/display: Validate backlight caps are sane
+
+From: Mario Limonciello <mario.limonciello@amd.com>
+
+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 <harry.wentland@amd.com>
+Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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)
index 1f44edac3f5d29981d5adc23482746575cb4c080..cc5dd17c0c26234badac94cab9b093c45022005d 100644 (file)
@@ -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