summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorHuang Rui2018-12-04 15:00:22 +0100
committerAlex Deucher2019-03-19 21:03:54 +0100
commita7ebb6d2fde4d478f48036aaa92859eff36271ea (patch)
treee57f495ae47cfa98ac7cc665dbaa8349c41b8294 /drivers/gpu/drm/amd
parentdrm/amd/powerplay: add interface to write pptable (v2) (diff)
downloadkernel-qcow2-linux-a7ebb6d2fde4d478f48036aaa92859eff36271ea.tar.gz
kernel-qcow2-linux-a7ebb6d2fde4d478f48036aaa92859eff36271ea.tar.xz
kernel-qcow2-linux-a7ebb6d2fde4d478f48036aaa92859eff36271ea.zip
drm/amd/powerplay: add interface to set min dcef deep sleep (v2)
This patch adds interface to set min dcef deep sleep for smu. It's to set min deep sleep dce fclk with bootup value from vbios via SetMinDeepSleepDcefclk MSG. v2: add detailed info to describe this function Signed-off-by: Huang Rui <ray.huang@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/powerplay/amdgpu_smu.c8
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
index 747b6b7a7675..5e22b154fff1 100644
--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
@@ -200,6 +200,14 @@ static int smu_smc_table_hw_init(struct smu_context *smu)
if (ret)
return ret;
+ /*
+ * Set min deep sleep dce fclk with bootup value from vbios via
+ * SetMinDeepSleepDcefclk MSG.
+ */
+ ret = smu_set_min_dcef_deep_sleep(smu);
+ if (ret)
+ return ret;
+
return 0;
}
diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
index e7e9fecbb086..90e80cd6f0fa 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
@@ -46,6 +46,7 @@ struct smu_funcs
int (*populate_smc_pptable)(struct smu_context *smu);
int (*check_fw_version)(struct smu_context *smu);
int (*write_pptable)(struct smu_context *smu);
+ int (*set_min_dcef_deep_sleep)(struct smu_context *smu);
};
#define smu_init_microcode(smu) \
@@ -72,6 +73,8 @@ struct smu_funcs
((smu)->funcs->check_fw_version ? (smu)->funcs->check_fw_version((smu)) : 0)
#define smu_write_pptable(smu) \
((smu)->funcs->write_pptable ? (smu)->funcs->write_pptable((smu)) : 0)
+#define smu_set_min_dcef_deep_sleep(smu) \
+ ((smu)->funcs->set_min_dcef_deep_sleep ? (smu)->funcs->set_min_dcef_deep_sleep((smu)) : 0)
extern const struct amd_ip_funcs smu_ip_funcs;