Commit f5b4c323 authored by Likun Gao's avatar Likun Gao Committed by Alex Deucher
Browse files

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: default avatarLikun Gao <Likun.Gao@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 2502af90
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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);