Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: fixing rlc firmware loading failure issue

Skip rlc firmware validation to ignore firmware header size mismatch issues.
This restores the workaround added in
commit 849e133c973c ("drm/amdgpu: Fix the null pointer when load rlc firmware")

Fixes: 3af2c80ae2f5 ("drm/amdgpu: refine gfx10 firmware loading")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3551
Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Yang Wang and committed by
Alex Deucher
89ec85d1 0f2c243d

+3 -2
+3 -2
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
··· 4116 4116 4117 4117 static int gfx_v10_0_init_microcode(struct amdgpu_device *adev) 4118 4118 { 4119 + char fw_name[53]; 4119 4120 char ucode_prefix[30]; 4120 4121 const char *wks = ""; 4121 4122 int err; ··· 4150 4149 amdgpu_gfx_cp_init_microcode(adev, AMDGPU_UCODE_ID_CP_CE); 4151 4150 4152 4151 if (!amdgpu_sriov_vf(adev)) { 4153 - err = amdgpu_ucode_request(adev, &adev->gfx.rlc_fw, 4154 - "amdgpu/%s_rlc.bin", ucode_prefix); 4152 + snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", ucode_prefix); 4153 + err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev); 4155 4154 if (err) 4156 4155 goto out; 4157 4156