#define AMDGPU_VM_FAULT_STOP_ALWAYS    2
 
 /* max number of VMHUB */
-#define AMDGPU_MAX_VMHUBS                      2
+#define AMDGPU_MAX_VMHUBS                      3
 #define AMDGPU_GFXHUB_0                                0
 #define AMDGPU_MMHUB_0                         1
+#define AMDGPU_MMHUB_1                         2
 
 /* hardcode that limit for now */
 #define AMDGPU_VA_RESERVED_SIZE                        (1ULL << 20)
 
 {
        struct amdgpu_ring *ring;
        unsigned vm_inv_engs[AMDGPU_MAX_VMHUBS] =
-               {GFXHUB_FREE_VM_INV_ENGS_BITMAP, MMHUB_FREE_VM_INV_ENGS_BITMAP};
+               {GFXHUB_FREE_VM_INV_ENGS_BITMAP, MMHUB_FREE_VM_INV_ENGS_BITMAP,
+               GFXHUB_FREE_VM_INV_ENGS_BITMAP};
        unsigned i;
        unsigned vmhub, inv_eng;
 
                        amdgpu_vm_adjust_size(adev, 256 * 1024, 9, 3, 48);
                break;
        case CHIP_ARCTURUS:
+               adev->num_vmhubs = 3;
+
                /* Keep the vm size same with Vega20 */
                amdgpu_vm_adjust_size(adev, 256 * 1024, 9, 3, 48);
                break;
         */
        adev->vm_manager.id_mgr[AMDGPU_GFXHUB_0].num_ids = AMDGPU_NUM_OF_VMIDS;
        adev->vm_manager.id_mgr[AMDGPU_MMHUB_0].num_ids = AMDGPU_NUM_OF_VMIDS;
+       adev->vm_manager.id_mgr[AMDGPU_MMHUB_1].num_ids = AMDGPU_NUM_OF_VMIDS;
 
        amdgpu_vm_manager_init(adev);