From 613e51df0bcc6bd46f13f8fcb88b1ba5d494a2e4 Mon Sep 17 00:00:00 2001 From: Evan Quan Date: Thu, 4 Jun 2020 11:42:08 +0800 Subject: [PATCH] drm/amd/powerplay: sort those operations performed in hw setup Those common operations(for all ASICs) are placed first and followed by ASIC specific ones. While the display related are placed at the last. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 61 +++++++++++++++--------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c index 2b0e4582..17e246b 100644 --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c @@ -1134,6 +1134,21 @@ static int smu_smc_table_hw_init(struct smu_context *smu, if (ret) return ret; + /* + * Set PMSTATUSLOG table bo address with SetToolsDramAddr MSG for tools. + */ + ret = smu_set_tool_table_location(smu); + if (ret) + return ret; + + /* + * Use msg SetSystemVirtualDramAddr and DramLogSetDramAddr can notify + * pool location. + */ + ret = smu_notify_memory_pool_location(smu); + if (ret) + return ret; + /* smu_dump_pptable(smu); */ /* * Copy pptable bo in the vram to smc with SMU MSGs such as @@ -1147,6 +1162,7 @@ static int smu_smc_table_hw_init(struct smu_context *smu, ret = smu_run_btc(smu); if (ret) return ret; + ret = smu_feature_set_allowed_mask(smu); if (ret) return ret; @@ -1155,6 +1171,21 @@ static int smu_smc_table_hw_init(struct smu_context *smu, if (ret) return ret; + if (!smu_is_dpm_running(smu)) + pr_info("dpm has been disabled\n"); + + ret = smu_override_pcie_parameters(smu); + if (ret) + return ret; + + ret = smu_enable_thermal_alert(smu); + if (ret) + return ret; + + ret = smu_i2c_eeprom_init(smu, &adev->pm.smu_i2c); + if (ret) + return ret; + ret = smu_disable_umc_cdr_12gbps_workaround(smu); if (ret) { pr_err("Workaround failed to disable UMC CDR feature on 12Gbps SKU!\n"); @@ -1185,36 +1216,6 @@ static int smu_smc_table_hw_init(struct smu_context *smu, if (ret) return ret; - ret = smu_override_pcie_parameters(smu); - if (ret) - return ret; - - /* - * Set PMSTATUSLOG table bo address with SetToolsDramAddr MSG for tools. - */ - ret = smu_set_tool_table_location(smu); - if (ret) - return ret; - - if (!smu_is_dpm_running(smu)) - pr_info("dpm has been disabled\n"); - - /* - * Use msg SetSystemVirtualDramAddr and DramLogSetDramAddr can notify - * pool location. - */ - ret = smu_notify_memory_pool_location(smu); - if (ret) - return ret; - - ret = smu_enable_thermal_alert(smu); - if (ret) - return ret; - - ret = smu_i2c_eeprom_init(smu, &adev->pm.smu_i2c); - if (ret) - return ret; - return ret; } -- 2.7.4