drm/amdgpu: reserve mmhub engine 3 for UMSCH FW
authorLang Yu <Lang.Yu@amd.com>
Wed, 14 Jun 2023 03:50:27 +0000 (11:50 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 31 Aug 2023 21:14:21 +0000 (17:14 -0400)
UMSCH FW uses mmhub engine 3 for invalidation.

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Acked-by: Veerabadhran Gopalakrishnan <Veerabadhran.Gopalakrishnan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c

index d78bd97325434f7a6896a41a5436090dacc8cf46..5f7641d9f346a33f50e52147c6ecbf2699c59d58 100644 (file)
@@ -549,13 +549,17 @@ int amdgpu_gmc_allocate_vm_inv_eng(struct amdgpu_device *adev)
                /* reserve engine 5 for firmware */
                if (adev->enable_mes)
                        vm_inv_engs[i] &= ~(1 << 5);
+               /* reserve mmhub engine 3 for firmware */
+               if (adev->enable_umsch_mm)
+                       vm_inv_engs[i] &= ~(1 << 3);
        }
 
        for (i = 0; i < adev->num_rings; ++i) {
                ring = adev->rings[i];
                vmhub = ring->vm_hub;
 
-               if (ring == &adev->mes.ring)
+               if (ring == &adev->mes.ring ||
+                   ring == &adev->umsch_mm.ring)
                        continue;
 
                inv_eng = ffs(vm_inv_engs[vmhub]);