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>
                /* 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]);