[PATCH] drm/amdgpu: Add chain runlists support to GC9.4.2
Philip Yang
yangp at amd.com
Fri Jun 6 20:33:46 UTC 2025
On 2025-06-05 12:11, Amber Lin wrote:
> Starting from MEC v97, GC 9.4.2 supports chain runlists of XNACK+/XNACK-
> processes.
>
> Signed-off-by: Amber Lin <Amber.Lin at amd.com>
Reviewed-by: Philip Yang<Philip.Yang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 +++
> drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c | 12 ++++++++++++
> drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h | 1 +
> 3 files changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index d377a7c57d5e..dedfc6c7f2cb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -2629,6 +2629,9 @@ static void gfx_v9_0_init_sq_config(struct amdgpu_device *adev)
> !READ_ONCE(adev->barrier_has_auto_waitcnt));
> WREG32_SOC15(GC, 0, mmSQ_CONFIG, tmp);
> break;
> + case IP_VERSION(9, 4, 2):
> + gfx_v9_4_2_init_sq(adev);
> + break;
> default:
> break;
> }
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c
> index c48cd47b531f..6f40f3202f22 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c
> @@ -748,6 +748,18 @@ void gfx_v9_4_2_init_golden_registers(struct amdgpu_device *adev,
> }
> }
>
> +void gfx_v9_4_2_init_sq(struct amdgpu_device *adev)
> +{
> + uint32_t data;
> +
> + if (adev->gfx.mec_fw_version >= 97) {
> + adev->gmc.xnack_flags |= AMDGPU_GMC_XNACK_FLAG_CHAIN;
> + data = RREG32_SOC15(GC, 0, regSQ_CONFIG1);
> + data = REG_SET_FIELD(data, SQ_CONFIG1, DISABLE_XNACK_CHECK_IN_RETRY_DISABLE, 1);
> + WREG32_SOC15(GC, 0, regSQ_CONFIG1, data);
> + }
> +}
> +
> void gfx_v9_4_2_debug_trap_config_init(struct amdgpu_device *adev,
> uint32_t first_vmid,
> uint32_t last_vmid)
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h
> index 7584624b641c..a603724c1dfc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.h
> @@ -28,6 +28,7 @@ void gfx_v9_4_2_debug_trap_config_init(struct amdgpu_device *adev,
> uint32_t first_vmid, uint32_t last_vmid);
> void gfx_v9_4_2_init_golden_registers(struct amdgpu_device *adev,
> uint32_t die_id);
> +void gfx_v9_4_2_init_sq(struct amdgpu_device *adev);
> void gfx_v9_4_2_set_power_brake_sequence(struct amdgpu_device *adev);
> int gfx_v9_4_2_do_edc_gpr_workarounds(struct amdgpu_device *adev);
>
More information about the amd-gfx
mailing list