From eec0106fcc1bc7fec849061eec5c247d6f3c98ab Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Thu, 29 May 2025 11:13:50 -0400 Subject: [PATCH] linux6.15: fix amdgpu regression #55417 --- .../patches/fix-amd-regression.patch | 48 +++++++++++++++++++ srcpkgs/linux6.15/template | 2 +- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/linux6.15/patches/fix-amd-regression.patch diff --git a/srcpkgs/linux6.15/patches/fix-amd-regression.patch b/srcpkgs/linux6.15/patches/fix-amd-regression.patch new file mode 100644 index 00000000000..b0b80885908 --- /dev/null +++ b/srcpkgs/linux6.15/patches/fix-amd-regression.patch @@ -0,0 +1,48 @@ +From 30dd9945fd79d33a049da4e52984c9bc07450de2 Mon Sep 17 00:00:00 2001 +From: Aurabindo Pillai +Date: Wed, 21 May 2025 16:10:57 -0400 +Subject: [PATCH] Revert "drm/amd/display: more liberal vmin/vmax update for + freesync" + +This reverts commit 219898d29c438d8ec34a5560fac4ea8f6b8d4f20 since it +causes regressions on certain configs. Revert until the issue can be +isolated and debugged. + +Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4238 +Signed-off-by: Aurabindo Pillai +Cherry-picked-for: https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/issues/139 +--- + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 +++++----------- + 1 file changed, 5 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 2dbd71fbae28a5..e4f0517f0f2b23 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -668,21 +668,15 @@ static void dm_crtc_high_irq(void *interrupt_params) + spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags); + + if (acrtc->dm_irq_params.stream && +- acrtc->dm_irq_params.vrr_params.supported) { +- bool replay_en = acrtc->dm_irq_params.stream->link->replay_settings.replay_feature_enabled; +- bool psr_en = acrtc->dm_irq_params.stream->link->psr_settings.psr_feature_enabled; +- bool fs_active_var_en = acrtc->dm_irq_params.freesync_config.state == VRR_STATE_ACTIVE_VARIABLE; +- ++ acrtc->dm_irq_params.vrr_params.supported && ++ acrtc->dm_irq_params.freesync_config.state == ++ VRR_STATE_ACTIVE_VARIABLE) { + mod_freesync_handle_v_update(adev->dm.freesync_module, + acrtc->dm_irq_params.stream, + &acrtc->dm_irq_params.vrr_params); + +- /* update vmin_vmax only if freesync is enabled, or only if PSR and REPLAY are disabled */ +- if (fs_active_var_en || (!fs_active_var_en && !replay_en && !psr_en)) { +- dc_stream_adjust_vmin_vmax(adev->dm.dc, +- acrtc->dm_irq_params.stream, +- &acrtc->dm_irq_params.vrr_params.adjust); +- } ++ dc_stream_adjust_vmin_vmax(adev->dm.dc, acrtc->dm_irq_params.stream, ++ &acrtc->dm_irq_params.vrr_params.adjust); + } + + /* diff --git a/srcpkgs/linux6.15/template b/srcpkgs/linux6.15/template index be88b7c1fe2..e8f41a29b0f 100644 --- a/srcpkgs/linux6.15/template +++ b/srcpkgs/linux6.15/template @@ -1,7 +1,7 @@ # Template file for 'linux6.15' pkgname=linux6.15 version=6.15.0 -revision=1 +revision=2 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Duncaen " license="GPL-2.0-only"