drm/amd: Move fw init from sw_init to early_init for imu v12

Move microcode loading from sw_init to early_init to align with
the perious version of imu init sequence.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Likun Gao
2023-11-14 15:02:44 +08:00
committed by Alex Deucher
parent 2502af906b
commit f5b4c3236f

View File

@@ -461,6 +461,14 @@ static int gfx_v12_0_init_microcode(struct amdgpu_device *adev)
/* only one MEC for gfx 12 */
adev->gfx.mec2_fw = NULL;
if (adev->gfx.imu.funcs && (amdgpu_dpm > 0)) {
if (adev->gfx.imu.funcs->init_microcode) {
err = adev->gfx.imu.funcs->init_microcode(adev);
if (err)
dev_err(adev->dev, "Failed to load imu firmware!\n");
}
}
out:
if (err) {
amdgpu_ucode_release(&adev->gfx.pfp_fw);
@@ -1172,14 +1180,6 @@ static int gfx_v12_0_sw_init(void *handle)
adev->gfx.gfx_current_status = AMDGPU_GFX_NORMAL_MODE;
if (adev->gfx.imu.funcs && (amdgpu_dpm > 0)) {
if (adev->gfx.imu.funcs->init_microcode) {
r = adev->gfx.imu.funcs->init_microcode(adev);
if (r)
dev_err(adev->dev, "Failed to load imu firmware!\n");
}
}
gfx_v12_0_me_init(adev);
r = gfx_v12_0_rlc_init(adev);