Commit ba5c2a87 authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher

drm/amdgpu: disable legacy path of firmware check if powerplay is enabled

Powerplay will use a different interface once it's integrated.  These
legacy pathes will be removed once powerplay is enabled by default.
Signed-off-by: default avatarRex Zhu <Rex.Zhu@amd.com>
Signed-off-by: default avatarJammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1f7371b2
...@@ -2902,16 +2902,18 @@ static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev) ...@@ -2902,16 +2902,18 @@ static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
gfx_v8_0_rlc_reset(adev); gfx_v8_0_rlc_reset(adev);
if (!adev->firmware.smu_load) { if (!amdgpu_powerplay) {
/* legacy rlc firmware loading */ if (!adev->firmware.smu_load) {
r = gfx_v8_0_rlc_load_microcode(adev); /* legacy rlc firmware loading */
if (r) r = gfx_v8_0_rlc_load_microcode(adev);
return r; if (r)
} else { return r;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev, } else {
AMDGPU_UCODE_ID_RLC_G); r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
if (r) AMDGPU_UCODE_ID_RLC_G);
return -EINVAL; if (r)
return -EINVAL;
}
} }
gfx_v8_0_rlc_start(adev); gfx_v8_0_rlc_start(adev);
...@@ -3802,35 +3804,37 @@ static int gfx_v8_0_cp_resume(struct amdgpu_device *adev) ...@@ -3802,35 +3804,37 @@ static int gfx_v8_0_cp_resume(struct amdgpu_device *adev)
if (!(adev->flags & AMD_IS_APU)) if (!(adev->flags & AMD_IS_APU))
gfx_v8_0_enable_gui_idle_interrupt(adev, false); gfx_v8_0_enable_gui_idle_interrupt(adev, false);
if (!adev->firmware.smu_load) { if (!amdgpu_powerplay) {
/* legacy firmware loading */ if (!adev->firmware.smu_load) {
r = gfx_v8_0_cp_gfx_load_microcode(adev); /* legacy firmware loading */
if (r) r = gfx_v8_0_cp_gfx_load_microcode(adev);
return r; if (r)
return r;
r = gfx_v8_0_cp_compute_load_microcode(adev);
if (r)
return r;
} else {
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_CE);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_PFP);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_ME);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev, r = gfx_v8_0_cp_compute_load_microcode(adev);
AMDGPU_UCODE_ID_CP_MEC1); if (r)
if (r) return r;
return -EINVAL; } else {
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_CE);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_PFP);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_ME);
if (r)
return -EINVAL;
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
AMDGPU_UCODE_ID_CP_MEC1);
if (r)
return -EINVAL;
}
} }
r = gfx_v8_0_cp_gfx_resume(adev); r = gfx_v8_0_cp_gfx_resume(adev);
......
...@@ -727,18 +727,20 @@ static int sdma_v3_0_start(struct amdgpu_device *adev) ...@@ -727,18 +727,20 @@ static int sdma_v3_0_start(struct amdgpu_device *adev)
{ {
int r, i; int r, i;
if (!adev->firmware.smu_load) { if (!amdgpu_powerplay) {
r = sdma_v3_0_load_microcode(adev); if (!adev->firmware.smu_load) {
if (r) r = sdma_v3_0_load_microcode(adev);
return r;
} else {
for (i = 0; i < adev->sdma.num_instances; i++) {
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
(i == 0) ?
AMDGPU_UCODE_ID_SDMA0 :
AMDGPU_UCODE_ID_SDMA1);
if (r) if (r)
return -EINVAL; return r;
} else {
for (i = 0; i < adev->sdma.num_instances; i++) {
r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
(i == 0) ?
AMDGPU_UCODE_ID_SDMA0 :
AMDGPU_UCODE_ID_SDMA1);
if (r)
return -EINVAL;
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment