summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLikun Gao <Likun.Gao@amd.com>2025-07-10 14:25:03 +0800
committerAlex Deucher <alexander.deucher@amd.com>2025-12-16 13:29:07 -0500
commit005b7f7f93b44ffd93f337c216ddb44d8a7c276b (patch)
tree6983e6aaf29f15e406b4ea1bee02eff6aa253d4e
parent4d70e12796a9d80b5a2bbaa22811e1b7be1c719b (diff)
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 <Likun.Gao@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c
index 3a641d223ad6..96ca3648205d 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)