From 90e6b21e737d9c00b5df97e1a75aa53694276aea Mon Sep 17 00:00:00 2001 From: Horatio Zhang Date: Mon, 31 Aug 2026 15:28:28 +0800 Subject: [PATCH] drm/amdgpu: skip IMU microcode request for GC 12.1 vBIOS has the support of IMU firmware. Requesting it now fails and aborts GPU init: amdgpu 0001:01:00.0: early_init of IP block failed -19 amdgpu 0001:01:00.0: Fatal error during GPU init v2: drop the MODULE_FIRMWARE declaration. Signed-off-by: Horatio Zhang Reviewed-by: Hawking Zhang Reviewed-by: Lijo Lazar Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c | 3 ++- drivers/gpu/drm/amd/amdgpu/imu_v12_1.c | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c index 82ac39239d78..db06360873eb 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c @@ -581,7 +581,8 @@ static int gfx_v12_1_init_microcode(struct amdgpu_device *adev) adev->gfx.mec2_fw = NULL; if (adev->gfx.imu.funcs) { - if (adev->gfx.imu.funcs->init_microcode) { + if (adev->gfx.imu.funcs->init_microcode && + adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) { err = adev->gfx.imu.funcs->init_microcode(adev); if (err) dev_err(adev->dev, "Failed to load imu firmware!\n"); diff --git a/drivers/gpu/drm/amd/amdgpu/imu_v12_1.c b/drivers/gpu/drm/amd/amdgpu/imu_v12_1.c index 8589419f14bd..313c09b48e63 100644 --- a/drivers/gpu/drm/amd/amdgpu/imu_v12_1.c +++ b/drivers/gpu/drm/amd/amdgpu/imu_v12_1.c @@ -32,8 +32,6 @@ #include "gc/gc_12_1_0_sh_mask.h" #include "mmhub/mmhub_4_2_0_offset.h" -MODULE_FIRMWARE("amdgpu/gc_12_1_0_imu.bin"); - #define TRANSFER_RAM_MASK 0x001c0000 static int imu_v12_1_init_microcode(struct amdgpu_device *adev)