From 10eafd3e56fde46869d8f46d19c2dc80bdd23bba Mon Sep 17 00:00:00 2001 From: Evan Quan Date: Mon, 8 Jun 2020 18:04:42 +0800 Subject: [PATCH] drm/amd/powerplay: move maximum sustainable clock retrieving to .hw_init Since DAL settings come between .hw_init and .late_init of SMU. And DAL needs to know the maximum sustainable clocks. Signed-off-by: Evan Quan Reported-and-Tested-by: Flora Cui Acked-by: Alex Deucher Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/powerplay/amdgpu_smu.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c index 725ac90..6beae3b 100644 --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c @@ -819,12 +819,6 @@ static int smu_late_init(void *handle) return ret; } - ret = smu_init_max_sustainable_clocks(smu); - if (ret) { - dev_err(adev->dev, "Failed to init max sustainable clocks!\n"); - return ret; - } - ret = smu_populate_umd_state_clk(smu); if (ret) { dev_err(adev->dev, "Failed to populate UMD state clocks!\n"); @@ -1364,6 +1358,19 @@ static int smu_hw_init(void *handle) return ret; } + /* + * Move maximum sustainable clock retrieving here considering + * 1. It is not needed on resume(from S3). + * 2. DAL settings come between .hw_init and .late_init of SMU. + * And DAL needs to know the maximum sustainable clocks. Thus + * it cannot be put in .late_init(). + */ + ret = smu_init_max_sustainable_clocks(smu); + if (ret) { + dev_err(adev->dev, "Failed to init max sustainable clocks!\n"); + return ret; + } + adev->pm.dpm_enabled = true; dev_info(adev->dev, "SMU is initialized successfully!\n"); -- 2.7.4