mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-22 23:18:44 +08:00
Revert "system.kernel: remove amdgpu patch"
This reverts commit fdbf027236
.
This commit is contained in:
parent
a90a841563
commit
a4126c2a22
@ -49,7 +49,7 @@ inputs:
|
||||
kernel =
|
||||
{
|
||||
variant = "xanmod-latest";
|
||||
patches = [ "hibernate-progress" ];
|
||||
patches = [ "hibernate-progress" "amdgpu" ];
|
||||
modules.modprobeConfig =
|
||||
[ "options iwlwifi power_save=0" "options iwlmvm power_scheme=1" "options iwlwifi uapsd_disable=1" ];
|
||||
};
|
||||
|
@ -0,0 +1,47 @@
|
||||
From 123c4d46272b7e72d7db3fe8b4131a8cc99613fb Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Wed, 14 Aug 2024 10:28:24 -0400
|
||||
Subject: [PATCH] drm/amdgpu/sdma5.2: limit wptr workaround to sdma 5.2.1
|
||||
|
||||
The workaround seems to cause stability issues on other
|
||||
SDMA 5.2.x IPs.
|
||||
|
||||
Fixes: a03ebf116303 ("drm/amdgpu/sdma5.2: Update wptr registers as well as doorbell")
|
||||
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3556
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 18 ++++++++++--------
|
||||
1 file changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
|
||||
index d740255edf5a..bc9b240a3488 100644
|
||||
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
|
||||
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
|
||||
@@ -225,14 +225,16 @@ static void sdma_v5_2_ring_set_wptr(struct amdgpu_ring *ring)
|
||||
DRM_DEBUG("calling WDOORBELL64(0x%08x, 0x%016llx)\n",
|
||||
ring->doorbell_index, ring->wptr << 2);
|
||||
WDOORBELL64(ring->doorbell_index, ring->wptr << 2);
|
||||
- /* SDMA seems to miss doorbells sometimes when powergating kicks in.
|
||||
- * Updating the wptr directly will wake it. This is only safe because
|
||||
- * we disallow gfxoff in begin_use() and then allow it again in end_use().
|
||||
- */
|
||||
- WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR),
|
||||
- lower_32_bits(ring->wptr << 2));
|
||||
- WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI),
|
||||
- upper_32_bits(ring->wptr << 2));
|
||||
+ if (amdgpu_ip_version(adev, SDMA0_HWIP, 0) == IP_VERSION(5, 2, 1)) {
|
||||
+ /* SDMA seems to miss doorbells sometimes when powergating kicks in.
|
||||
+ * Updating the wptr directly will wake it. This is only safe because
|
||||
+ * we disallow gfxoff in begin_use() and then allow it again in end_use().
|
||||
+ */
|
||||
+ WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR),
|
||||
+ lower_32_bits(ring->wptr << 2));
|
||||
+ WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI),
|
||||
+ upper_32_bits(ring->wptr << 2));
|
||||
+ }
|
||||
} else {
|
||||
DRM_DEBUG("Not using doorbell -- "
|
||||
"mmSDMA%i_GFX_RB_WPTR == 0x%08x "
|
||||
--
|
||||
2.46.0
|
||||
|
@ -136,6 +136,11 @@ inputs:
|
||||
let version = inputs.lib.versions.majorMinor inputs.config.boot.kernelPackages.kernel.version;
|
||||
in if version == "6.10" then ./btrfs.patch else null;
|
||||
}];
|
||||
amdgpu =
|
||||
[{
|
||||
name = "amdgpu";
|
||||
patch = ./0001-drm-amdgpu-sdma5.2-limit-wptr-workaround-to-sdma-5.2.patch;
|
||||
}];
|
||||
};
|
||||
in builtins.concatLists (builtins.map (name: patches.${name}) (kernel.patches ++ [ "btrfs" ]));
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user