From: Likun Gao <[email protected]>

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 <[email protected]>
Reviewed-by: Hawking Zhang <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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)
-- 
2.52.0

Reply via email to