drm/amdgpu: add one more mmhub instance for Arcturus (v2)
authorLe Ma <le.ma@amd.com>
Fri, 31 Aug 2018 06:46:47 +0000 (14:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 18 Jul 2019 19:18:02 +0000 (14:18 -0500)
v2: set mmhub num under CHIP_ARCTURUS switch case and add one more mmhub id_mgr

Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

index 8e78b81d0a057813a93f0f346118f6d089bc8d0c..42daf8877c3a9ed1f49c9e23837e9a1d900475d8 100644 (file)
@@ -100,9 +100,10 @@ struct amdgpu_bo_list_entry;
 #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)
index 2afc37237ad31e8c286ecae04e941da8d73403c9..08cdb5ff722810bebfa205bbc8e2d62c4ecec64d 100644 (file)
@@ -641,7 +641,8 @@ static int gmc_v9_0_allocate_vm_inv_eng(struct amdgpu_device *adev)
 {
        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;
 
@@ -1008,6 +1009,8 @@ static int gmc_v9_0_sw_init(void *handle)
                        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;
@@ -1088,6 +1091,7 @@ static int gmc_v9_0_sw_init(void *handle)
         */
        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);