From: Lang Yu <[email protected]>

UMSCH FW uses mmhub engine 3 for invalidation.

Signed-off-by: Lang Yu <[email protected]>
Acked-by: Leo Liu <[email protected]>
Acked-by: Veerabadhran Gopalakrishnan <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index d78bd9732543..5f7641d9f346 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -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]);
-- 
2.41.0

Reply via email to