drm/amd/powerplay: fix force dpm level failed on CZ
authorRex Zhu <Rex.Zhu@amd.com>
Wed, 2 Aug 2017 09:43:01 +0000 (17:43 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Aug 2017 18:46:09 +0000 (14:46 -0400)
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c

index 0b74da3dca8b5d83e2af51347a4afb5b77e43a40..22b7d12ffff8f6d83c51b354e336b564bd45422e 100644 (file)
@@ -1240,13 +1240,18 @@ static int cz_phm_force_dpm_highest(struct pp_hwmgr *hwmgr)
 {
        struct cz_hwmgr *cz_hwmgr = (struct cz_hwmgr *)(hwmgr->backend);
 
-       if (cz_hwmgr->sclk_dpm.soft_min_clk !=
-                               cz_hwmgr->sclk_dpm.soft_max_clk)
-               smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
-                                               PPSMC_MSG_SetSclkSoftMin,
-                                               cz_get_sclk_level(hwmgr,
-                                               cz_hwmgr->sclk_dpm.soft_max_clk,
-                                               PPSMC_MSG_SetSclkSoftMin));
+       smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+                                       PPSMC_MSG_SetSclkSoftMin,
+                                       cz_get_sclk_level(hwmgr,
+                                       cz_hwmgr->sclk_dpm.soft_max_clk,
+                                       PPSMC_MSG_SetSclkSoftMin));
+
+       smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+                               PPSMC_MSG_SetSclkSoftMax,
+                               cz_get_sclk_level(hwmgr,
+                               cz_hwmgr->sclk_dpm.soft_max_clk,
+                               PPSMC_MSG_SetSclkSoftMax));
+
        return 0;
 }
 
@@ -1292,17 +1297,17 @@ static int cz_phm_force_dpm_lowest(struct pp_hwmgr *hwmgr)
 {
        struct cz_hwmgr *cz_hwmgr = (struct cz_hwmgr *)(hwmgr->backend);
 
-       if (cz_hwmgr->sclk_dpm.soft_min_clk !=
-                               cz_hwmgr->sclk_dpm.soft_max_clk) {
-               cz_hwmgr->sclk_dpm.soft_max_clk =
-                       cz_hwmgr->sclk_dpm.soft_min_clk;
+       smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+                       PPSMC_MSG_SetSclkSoftMax,
+                       cz_get_sclk_level(hwmgr,
+                       cz_hwmgr->sclk_dpm.soft_min_clk,
+                       PPSMC_MSG_SetSclkSoftMax));
 
-               smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
-                               PPSMC_MSG_SetSclkSoftMax,
+       smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+                               PPSMC_MSG_SetSclkSoftMin,
                                cz_get_sclk_level(hwmgr,
-                               cz_hwmgr->sclk_dpm.soft_max_clk,
-                               PPSMC_MSG_SetSclkSoftMax));
-       }
+                               cz_hwmgr->sclk_dpm.soft_min_clk,
+                               PPSMC_MSG_SetSclkSoftMin));
 
        return 0;
 }