OSDN Git Service

drm/amdgpu: remove switch from amdgpu_gmc_noretry_set
authorGraham Sider <Graham.Sider@amd.com>
Thu, 7 Apr 2022 15:12:01 +0000 (11:12 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 29 Sep 2022 13:43:41 +0000 (09:43 -0400)
Simplify the logic in amdgpu_gmc_noretry_set by getting rid of the
switch. Also set noretry=1 as default for GFX 10.3.0 and greater since
retry faults are not supported.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c

index aebc384..34233a7 100644 (file)
@@ -572,45 +572,15 @@ void amdgpu_gmc_tmz_set(struct amdgpu_device *adev)
 void amdgpu_gmc_noretry_set(struct amdgpu_device *adev)
 {
        struct amdgpu_gmc *gmc = &adev->gmc;
-
-       switch (adev->ip_versions[GC_HWIP][0]) {
-       case IP_VERSION(9, 0, 1):
-       case IP_VERSION(9, 3, 0):
-       case IP_VERSION(9, 4, 0):
-       case IP_VERSION(9, 4, 1):
-       case IP_VERSION(9, 4, 2):
-       case IP_VERSION(10, 3, 3):
-       case IP_VERSION(10, 3, 4):
-       case IP_VERSION(10, 3, 5):
-       case IP_VERSION(10, 3, 6):
-       case IP_VERSION(10, 3, 7):
-               /*
-                * noretry = 0 will cause kfd page fault tests fail
-                * for some ASICs, so set default to 1 for these ASICs.
-                */
-               if (amdgpu_noretry == -1)
-                       gmc->noretry = 1;
-               else
-                       gmc->noretry = amdgpu_noretry;
-               break;
-       default:
-               /* Raven currently has issues with noretry
-                * regardless of what we decide for other
-                * asics, we should leave raven with
-                * noretry = 0 until we root cause the
-                * issues.
-                *
-                * default this to 0 for now, but we may want
-                * to change this in the future for certain
-                * GPUs as it can increase performance in
-                * certain cases.
-                */
-               if (amdgpu_noretry == -1)
-                       gmc->noretry = 0;
-               else
-                       gmc->noretry = amdgpu_noretry;
-               break;
-       }
+       uint32_t gc_ver = adev->ip_versions[GC_HWIP][0];
+       bool noretry_default = (gc_ver == IP_VERSION(9, 0, 1) ||
+                               gc_ver == IP_VERSION(9, 3, 0) ||
+                               gc_ver == IP_VERSION(9, 4, 0) ||
+                               gc_ver == IP_VERSION(9, 4, 1) ||
+                               gc_ver == IP_VERSION(9, 4, 2) ||
+                               gc_ver >= IP_VERSION(10, 3, 0));
+
+       gmc->noretry = (amdgpu_noretry == -1) ? noretry_default : amdgpu_noretry;
 }
 
 void amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,