]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/amdgpu: Change AID detection logic
authorLijo Lazar <lijo.lazar@amd.com>
Thu, 29 Feb 2024 08:29:19 +0000 (13:59 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 19 Apr 2024 03:47:19 +0000 (23:47 -0400)
On GFX 9.4.3 SOCs, only 2 SDMA instances need to be available to be
considered as a valid AID.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Asad Kamal <asad.kamal@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c

index fbb43ae7624f44ebd13ddbe5a78865ea2dba10ab..414ea3f560a7a54b72ffce7290c1d41ed126798c 100644 (file)
@@ -630,7 +630,7 @@ static int aqua_vanjaram_xcp_mgr_init(struct amdgpu_device *adev)
 
 int aqua_vanjaram_init_soc_config(struct amdgpu_device *adev)
 {
-       u32 mask, inst_mask = adev->sdma.sdma_mask;
+       u32 mask, avail_inst, inst_mask = adev->sdma.sdma_mask;
        int ret, i;
 
        /* generally 1 AID supports 4 instances */
@@ -642,7 +642,9 @@ int aqua_vanjaram_init_soc_config(struct amdgpu_device *adev)
 
        for (mask = (1 << adev->sdma.num_inst_per_aid) - 1; inst_mask;
             inst_mask >>= adev->sdma.num_inst_per_aid, ++i) {
-               if ((inst_mask & mask) == mask)
+               avail_inst = inst_mask & mask;
+               if (avail_inst == mask || avail_inst == 0x3 ||
+                   avail_inst == 0xc)
                        adev->aid_mask |= (1 << i);
        }