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

drm/amdgpu: Add chain runlists support to GC9.4.2

Starting from MEC v97, GC 9.4.2 supports chain runlists of XNACK+/XNACK-
processes.

Signed-off-by: Amber Lin <Amber.Lin@amd.com>
Reviewed-by: Philip Yang<Philip.Yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Amber Lin and committed by
Alex Deucher
216e4cff c5fc24f1

+16
+3
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
··· 2650 2650 !READ_ONCE(adev->barrier_has_auto_waitcnt)); 2651 2651 WREG32_SOC15(GC, 0, mmSQ_CONFIG, tmp); 2652 2652 break; 2653 + case IP_VERSION(9, 4, 2): 2654 + gfx_v9_4_2_init_sq(adev); 2655 + break; 2653 2656 default: 2654 2657 break; 2655 2658 }
+12
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c
··· 748 748 } 749 749 } 750 750 751 + void gfx_v9_4_2_init_sq(struct amdgpu_device *adev) 752 + { 753 + uint32_t data; 754 + 755 + if (adev->gfx.mec_fw_version >= 98) { 756 + adev->gmc.xnack_flags |= AMDGPU_GMC_XNACK_FLAG_CHAIN; 757 + data = RREG32_SOC15(GC, 0, regSQ_CONFIG1); 758 + data = REG_SET_FIELD(data, SQ_CONFIG1, DISABLE_XNACK_CHECK_IN_RETRY_DISABLE, 1); 759 + WREG32_SOC15(GC, 0, regSQ_CONFIG1, data); 760 + } 761 + } 762 + 751 763 void gfx_v9_4_2_debug_trap_config_init(struct amdgpu_device *adev, 752 764 uint32_t first_vmid, 753 765 uint32_t last_vmid)
+1
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h
··· 28 28 uint32_t first_vmid, uint32_t last_vmid); 29 29 void gfx_v9_4_2_init_golden_registers(struct amdgpu_device *adev, 30 30 uint32_t die_id); 31 + void gfx_v9_4_2_init_sq(struct amdgpu_device *adev); 31 32 void gfx_v9_4_2_set_power_brake_sequence(struct amdgpu_device *adev); 32 33 int gfx_v9_4_2_do_edc_gpr_workarounds(struct amdgpu_device *adev); 33 34