summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
diff options
context:
space:
mode:
authorKevin Wang2019-05-08 08:37:08 +0200
committerAlex Deucher2019-06-22 01:59:30 +0200
commite36182490dec3d2947dbf3c3d979051b8706845c (patch)
tree1432a697405e214ed99e0ac5fef2318016bd33b5 /drivers/gpu/drm/amd/powerplay/smu_v11_0.c
parentamd/powerplay: update the vcn pg (diff)
downloadkernel-qcow2-linux-e36182490dec3d2947dbf3c3d979051b8706845c.tar.gz
kernel-qcow2-linux-e36182490dec3d2947dbf3c3d979051b8706845c.tar.xz
kernel-qcow2-linux-e36182490dec3d2947dbf3c3d979051b8706845c.zip
drm/amd/powerplay: fix dpm freq unit error (10KHz -> Mhz)
the interface smu_v11_0_get_current_clk_freq should be return 10Khz not Mhz unit to adapt vega20 and navi10 asic at the same time. Signed-off-by: Kevin Wang <kevin1.wang@amd.com> Acked-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/smu_v11_0.c')
-rw-r--r--drivers/gpu/drm/amd/powerplay/smu_v11_0.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
index ec7862ea299d..29f868f0ef3c 100644
--- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
+++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
@@ -1098,16 +1098,17 @@ static int smu_v11_0_get_current_clk_freq(struct smu_context *smu,
/* if don't has GetDpmClockFreq Message, try get current clock by SmuMetrics_t */
if (smu_msg_get_index(smu, SMU_MSG_GetDpmClockFreq) == 0)
- return smu_get_current_clk_freq_by_table(smu, clk_id, value);
-
- ret = smu_send_smc_msg_with_param(smu, SMU_MSG_GetDpmClockFreq,
- (smu_clk_get_index(smu, clk_id) << 16));
- if (ret)
- return ret;
+ ret = smu_get_current_clk_freq_by_table(smu, clk_id, &freq);
+ else {
+ ret = smu_send_smc_msg_with_param(smu, SMU_MSG_GetDpmClockFreq,
+ (smu_clk_get_index(smu, clk_id) << 16));
+ if (ret)
+ return ret;
- ret = smu_read_smc_arg(smu, &freq);
- if (ret)
- return ret;
+ ret = smu_read_smc_arg(smu, &freq);
+ if (ret)
+ return ret;
+ }
freq *= 100;
*value = freq;