Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: save the setting of VM_CONTEXT_CNTL

MES firmware needs the setting of VM_CONTEXT_CNTL to perform
vmid switch. Save the initial setting when hub initializing.

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Jack Xiao and committed by
Alex Deucher
d7dab4fc 98a0f868

+13
+1
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
··· 100 100 uint32_t eng_distance; 101 101 uint32_t eng_addr_distance; /* include LO32/HI32 */ 102 102 103 + uint32_t vm_cntx_cntl; 103 104 uint32_t vm_cntx_cntl_vm_fault; 104 105 uint32_t vm_l2_bank_select_reserved_cid2; 105 106
+2
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
··· 325 325 i * hub->ctx_addr_distance, 326 326 upper_32_bits(adev->vm_manager.max_pfn - 1)); 327 327 } 328 + 329 + hub->vm_cntx_cntl = tmp; 328 330 } 329 331 330 332 static void gfxhub_v2_0_program_invalidation(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
··· 334 334 i * hub->ctx_addr_distance, 335 335 upper_32_bits(adev->vm_manager.max_pfn - 1)); 336 336 } 337 + 338 + hub->vm_cntx_cntl = tmp; 337 339 } 338 340 339 341 static void gfxhub_v2_1_program_invalidation(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
··· 335 335 i * hub->ctx_addr_distance, 336 336 upper_32_bits(adev->vm_manager.max_pfn - 1)); 337 337 } 338 + 339 + hub->vm_cntx_cntl = tmp; 338 340 } 339 341 340 342 static void gfxhub_v3_0_program_invalidation(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
··· 408 408 i * hub->ctx_addr_distance, 409 409 upper_32_bits(adev->vm_manager.max_pfn - 1)); 410 410 } 411 + 412 + hub->vm_cntx_cntl = tmp; 411 413 } 412 414 413 415 static void mmhub_v2_0_program_invalidation(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
··· 324 324 i * hub->ctx_addr_distance, 325 325 upper_32_bits(adev->vm_manager.max_pfn - 1)); 326 326 } 327 + 328 + hub->vm_cntx_cntl = tmp; 327 329 } 328 330 329 331 static void mmhub_v2_3_program_invalidation(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c
··· 361 361 i * hub->ctx_addr_distance, 362 362 upper_32_bits(adev->vm_manager.max_pfn - 1)); 363 363 } 364 + 365 + hub->vm_cntx_cntl = tmp; 364 366 } 365 367 366 368 static void mmhub_v3_0_program_invalidation(struct amdgpu_device *adev)