]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/gfx12: Add Cleaner Shader Support for GFX12.0 GPUs
authorSrinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Sun, 12 Jan 2025 03:06:16 +0000 (08:36 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 14 Jan 2025 16:06:50 +0000 (11:06 -0500)
This commit enables the cleaner shader feature for GFX12.0 and GFX12.0.1
GPUs. The cleaner shader is important for clearing GPU resources such as
Local Data Share (LDS), Vector General Purpose Registers (VGPRs), and
Scalar General Purpose Registers (SGPRs) between workloads.

- This feature ensures that GPU resources are reset between workloads,
  preventing data leaks and ensuring accurate computation.

By enabling the cleaner shader, this update enhances the security and
reliability of GPU operations on GFX12.0 hardware.

Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c

index 4b6e057506541d47901bb5ac44981859ccf935a9..c1772f44b1d7476261ba7500a22a62537d01b95f 100644 (file)
@@ -1352,6 +1352,14 @@ static int gfx_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
        }
 
        switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
+       case IP_VERSION(12, 0, 0):
+       case IP_VERSION(12, 0, 1):
+               if (adev->gfx.me_fw_version  >= 2480 &&
+                   adev->gfx.pfp_fw_version >= 2530 &&
+                   adev->gfx.mec_fw_version >= 2680 &&
+                   adev->mes.fw_version[0] >= 100)
+                       adev->gfx.enable_cleaner_shader = true;
+               break;
        default:
                adev->gfx.enable_cleaner_shader = false;
                break;