]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: skip SDMA autoload copy if not initialized
authorLikun Gao <Likun.Gao@amd.com>
Tue, 11 Mar 2025 06:53:05 +0000 (14:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Dec 2025 19:11:49 +0000 (14:11 -0500)
Skip SDMA firmware copy for rlc autoload if SDMA not enabled.

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>
drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c

index fe903170db8cd2388dd985ee1c82cdb80712db5e..8d281fb54b6b8b569afc66f88d8e18d16b503285 100644 (file)
@@ -994,14 +994,16 @@ gfx_v12_1_rlc_backdoor_autoload_copy_sdma_ucode(struct amdgpu_device *adev)
        uint32_t fw_size;
        const struct sdma_firmware_header_v3_0 *sdma_hdr;
 
-       sdma_hdr = (const struct sdma_firmware_header_v3_0 *)
-               adev->sdma.instance[0].fw->data;
-       fw_data = (const __le32 *) (adev->sdma.instance[0].fw->data +
-                       le32_to_cpu(sdma_hdr->ucode_offset_bytes));
-       fw_size = le32_to_cpu(sdma_hdr->ucode_size_bytes);
+       if (adev->sdma.instance[0].fw) {
+               sdma_hdr = (const struct sdma_firmware_header_v3_0 *)
+                       adev->sdma.instance[0].fw->data;
+               fw_data = (const __le32 *) (adev->sdma.instance[0].fw->data +
+                               le32_to_cpu(sdma_hdr->ucode_offset_bytes));
+               fw_size = le32_to_cpu(sdma_hdr->ucode_size_bytes);
 
-       gfx_v12_1_rlc_backdoor_autoload_copy_ucode(adev, SOC24_FIRMWARE_ID_SDMA_UCODE_TH0,
-                                                  fw_data, fw_size);
+               gfx_v12_1_rlc_backdoor_autoload_copy_ucode(adev, SOC24_FIRMWARE_ID_SDMA_UCODE_TH0,
+                                                          fw_data, fw_size);
+       }
 }
 
 static void