OSDN Git Service

drm/amd/powerplay: fix message of SetHardMinByFreq failed when feature is disabled
authorKevin Wang <kevin1.wang@amd.com>
Tue, 13 Aug 2019 02:25:25 +0000 (10:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Aug 2019 15:51:29 +0000 (10:51 -0500)
the direct send message to smc to set hard clokc will failed
when smc clock dpm feature is disabled.
so use function of smu_set_hard_freq_range to replace it.
the function will check feature enablement.

eg: when uclk (mclk) dpm feature is disabled on navi10
[  300.675901] amdgpu: [powerplay] failed send message: SetHardMinByFreq(28)
   param: 0x00020064 response 0xfffffffb

Signed-off-by: Kevin Wang <kevin1.wang@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/smu_v11_0.c

index 8bbcf03..ecf52f7 100644 (file)
@@ -1274,7 +1274,6 @@ smu_v11_0_display_clock_voltage_request(struct smu_context *smu,
        int ret = 0;
        enum smu_clk_type clk_select = 0;
        uint32_t clk_freq = clock_req->clock_freq_in_khz / 1000;
-       int clk_id;
 
        if (!smu->pm_enabled)
                return -EINVAL;
@@ -1309,16 +1308,8 @@ smu_v11_0_display_clock_voltage_request(struct smu_context *smu,
                if (clk_select == SMU_UCLK && smu->disable_uclk_switch)
                        return 0;
 
-               clk_id = smu_clk_get_index(smu, clk_select);
-               if (clk_id < 0) {
-                       ret = -EINVAL;
-                       goto failed;
-               }
-
-
                mutex_lock(&smu->mutex);
-               ret = smu_send_smc_msg_with_param(smu, SMU_MSG_SetHardMinByFreq,
-                       (clk_id << 16) | clk_freq);
+               ret = smu_set_hard_freq_range(smu, clk_select, clk_freq, 0);
                mutex_unlock(&smu->mutex);
 
                if(clk_select == SMU_UCLK)