]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Don't enable sdma 4.4.5 CTXEMPTY interrupt
authorPhilip Yang <Philip.Yang@amd.com>
Tue, 26 Nov 2024 20:45:32 +0000 (15:45 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 Dec 2024 17:39:07 +0000 (12:39 -0500)
The sdma context empty interrupt is dropped in amdgpu_irq_dispatch
as unregistered interrupt src_id 243, this interrupt accounts to 1/3 of
total interrupts and causes IH primary ring overflow when running
stressful benchmark application. Disable this interrupt has no side
effect found.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c

index 4c8308b2878b6e2e6866de33d955500b292ee610..56507ae919b0cb16f6285106927e43a555219e4e 100644 (file)
@@ -973,10 +973,12 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
                /* set utc l1 enable flag always to 1 */
                temp = RREG32_SDMA(i, regSDMA_CNTL);
                temp = REG_SET_FIELD(temp, SDMA_CNTL, UTC_L1_ENABLE, 1);
-               /* enable context empty interrupt during initialization */
-               temp = REG_SET_FIELD(temp, SDMA_CNTL, CTXEMPTY_INT_ENABLE, 1);
-               WREG32_SDMA(i, regSDMA_CNTL, temp);
 
+               if (amdgpu_ip_version(adev, SDMA0_HWIP, 0) < IP_VERSION(4, 4, 5)) {
+                       /* enable context empty interrupt during initialization */
+                       temp = REG_SET_FIELD(temp, SDMA_CNTL, CTXEMPTY_INT_ENABLE, 1);
+                       WREG32_SDMA(i, regSDMA_CNTL, temp);
+               }
                if (!amdgpu_sriov_vf(adev)) {
                        if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) {
                                /* unhalt engine */