From: Likun Gao Date: Thu, 10 Jul 2025 06:25:03 +0000 (+0800) Subject: drm/amdgpu: correct rlc autoload for xcc harvest X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=005b7f7f93b44ffd93f337c216ddb44d8a7c276b;p=thirdparty%2Fkernel%2Flinux.git drm/amdgpu: correct rlc autoload for xcc harvest If the number instances of firmware is RLC_NUM_INS_CODE0(Only 1 inst), need to copy it directly for rlcautolad. For the firmware which instances number bigger than 1, only copy for enabled XCC to save copy time. Signed-off-by: Likun Gao Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c index 3a641d223ad68..96ca3648205d6 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c @@ -933,7 +933,8 @@ static void gfx_v12_1_rlc_backdoor_autoload_copy_ucode(struct amdgpu_device *ade fw_size = toc_fw_inst_size; for (i = 0; i < num_inst; i++) { - if ((1 << (i / 2)) & adev->gfx.xcc_mask) { + if ((num_inst == RLC_NUM_INS_CODE0) || + ((1 << (i / 2)) & adev->gfx.xcc_mask)) { memcpy(ptr + toc_offset + i * toc_fw_inst_size, fw_data, fw_size); if (fw_size < toc_fw_inst_size)