Commit a1c30111 authored by Evan Quan's avatar Evan Quan Committed by Alex Deucher

drm/amd/pm: move bootup values retrieving to ->sw_init

Firsrt of all, the operations involved is to interact with
VBIOS. They are fully supported at ->sw_init phase.

Secondly, the new mechanism to upload pptable to SMU is
introduced. With the new mechanism, the pptable transferring
has to be via PSP. That requires the pptable ucode(and necessary
bootupp values retrieving) must be ready before ->hw_init phase of PSP.
Signed-off-by: default avatarEvan Quan <evan.quan@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6f3c9dbb
...@@ -1020,6 +1020,13 @@ static int smu_sw_init(void *handle) ...@@ -1020,6 +1020,13 @@ static int smu_sw_init(void *handle)
return ret; return ret;
} }
/* get boot_values from vbios to set revision, gfxclk, and etc. */
ret = smu_get_vbios_bootup_values(smu);
if (ret) {
dev_err(adev->dev, "Failed to get VBIOS boot clock values!\n");
return ret;
}
ret = smu_register_irq_handler(smu); ret = smu_register_irq_handler(smu);
if (ret) { if (ret) {
dev_err(adev->dev, "Failed to register smc irq handler!\n"); dev_err(adev->dev, "Failed to register smc irq handler!\n");
...@@ -1304,13 +1311,6 @@ static int smu_hw_init(void *handle) ...@@ -1304,13 +1311,6 @@ static int smu_hw_init(void *handle)
if (!smu->pm_enabled) if (!smu->pm_enabled)
return 0; return 0;
/* get boot_values from vbios to set revision, gfxclk, and etc. */
ret = smu_get_vbios_bootup_values(smu);
if (ret) {
dev_err(adev->dev, "Failed to get VBIOS boot clock values!\n");
return ret;
}
ret = smu_setup_pptable(smu); ret = smu_setup_pptable(smu);
if (ret) { if (ret) {
dev_err(adev->dev, "Failed to setup pptable!\n"); dev_err(adev->dev, "Failed to setup pptable!\n");
......
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