drm/amdgpu: fix vm context register assignment in mmhub v1.8
authorLe Ma <le.ma@amd.com>
Sat, 12 Nov 2022 09:01:05 +0000 (17:01 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:48:48 +0000 (09:48 -0400)
Assign the vm context register addr per aid instance.

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/mmhub_v1_8.c

index 67338cb3d7bc33527d4cbfd9463d6dfed3da0fa3..6f469b9aa9a02a076c86058d0251fdf6406d9c95 100644 (file)
@@ -515,19 +515,19 @@ static void mmhub_v1_8_init(struct amdgpu_device *adev)
        for (i = 0; i < adev->num_aid; i++) {
                hub = &adev->vmhub[AMDGPU_MMHUB0(i)];
 
-               hub->ctx0_ptb_addr_lo32 = SOC15_REG_OFFSET(MMHUB, 0,
+               hub->ctx0_ptb_addr_lo32 = SOC15_REG_OFFSET(MMHUB, i,
                        regVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_LO32);
-               hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(MMHUB, 0,
+               hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(MMHUB, i,
                        regVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32);
                hub->vm_inv_eng0_req =
-                       SOC15_REG_OFFSET(MMHUB, 0, regVM_INVALIDATE_ENG0_REQ);
+                       SOC15_REG_OFFSET(MMHUB, i, regVM_INVALIDATE_ENG0_REQ);
                hub->vm_inv_eng0_ack =
-                       SOC15_REG_OFFSET(MMHUB, 0, regVM_INVALIDATE_ENG0_ACK);
+                       SOC15_REG_OFFSET(MMHUB, i, regVM_INVALIDATE_ENG0_ACK);
                hub->vm_context0_cntl =
-                       SOC15_REG_OFFSET(MMHUB, 0, regVM_CONTEXT0_CNTL);
-               hub->vm_l2_pro_fault_status = SOC15_REG_OFFSET(MMHUB, 0,
+                       SOC15_REG_OFFSET(MMHUB, i, regVM_CONTEXT0_CNTL);
+               hub->vm_l2_pro_fault_status = SOC15_REG_OFFSET(MMHUB, i,
                        regVM_L2_PROTECTION_FAULT_STATUS);
-               hub->vm_l2_pro_fault_cntl = SOC15_REG_OFFSET(MMHUB, 0,
+               hub->vm_l2_pro_fault_cntl = SOC15_REG_OFFSET(MMHUB, i,
                        regVM_L2_PROTECTION_FAULT_CNTL);
 
                hub->ctx_distance = regVM_CONTEXT1_CNTL - regVM_CONTEXT0_CNTL;