From: Likun Gao Date: Tue, 11 Mar 2025 06:53:05 +0000 (+0800) Subject: drm/amdgpu: skip SDMA autoload copy if not initialized X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5fc897b076e0bd0bab9c32154fdb1bba6566127;p=thirdparty%2Fkernel%2Flinux.git drm/amdgpu: skip SDMA autoload copy if not initialized Skip SDMA firmware copy for rlc autoload if SDMA not enabled. 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 fe903170db8c..8d281fb54b6b 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c @@ -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