drm/amd/pp: Move common dpm check functions to hardwaremanager.c
authorRex Zhu <Rex.Zhu@amd.com>
Thu, 22 Feb 2018 12:46:49 +0000 (20:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 27 Feb 2018 04:09:41 +0000 (23:09 -0500)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index 4b4876599746e6901b2948ac9b4879677f9a57d7..2aa84c728e81399f09c616153aac322a142d2308 100644 (file)
@@ -1011,10 +1011,6 @@ static void cz_reset_acp_boot_level(struct pp_hwmgr *hwmgr)
 
 static int cz_disable_dpm_tasks(struct pp_hwmgr *hwmgr)
 {
-       if (!smum_is_dpm_running(hwmgr)) {
-               pr_info("dpm has been disabled\n");
-               return 0;
-       }
        cz_disable_nb_dpm(hwmgr);
 
        cz_clear_voting_clients(hwmgr);
@@ -1026,11 +1022,6 @@ static int cz_disable_dpm_tasks(struct pp_hwmgr *hwmgr)
 
 static int cz_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
 {
-       if (smum_is_dpm_running(hwmgr)) {
-               pr_info("dpm has been enabled\n");
-               return 0;
-       }
-
        cz_program_voting_clients(hwmgr);
        if (cz_start_dpm(hwmgr))
                return -EINVAL;
index fdd2c05d25d5aa11f51c4cc2b68bd4d443d41f57..33480deb64b9b86f320788b133dee7b76af48fba 100644 (file)
@@ -79,6 +79,11 @@ int phm_enable_dynamic_state_management(struct pp_hwmgr *hwmgr)
        bool enabled;
        PHM_FUNC_CHECK(hwmgr);
 
+       if (smum_is_dpm_running(hwmgr)) {
+               pr_info("dpm has been enabled\n");
+               return 0;
+       }
+
        if (NULL != hwmgr->hwmgr_func->dynamic_state_management_enable)
                ret = hwmgr->hwmgr_func->dynamic_state_management_enable(hwmgr);
 
@@ -96,6 +101,11 @@ int phm_disable_dynamic_state_management(struct pp_hwmgr *hwmgr)
 
        PHM_FUNC_CHECK(hwmgr);
 
+       if (!smum_is_dpm_running(hwmgr)) {
+               pr_info("dpm has been disabled\n");
+               return 0;
+       }
+
        if (hwmgr->hwmgr_func->dynamic_state_management_disable)
                ret = hwmgr->hwmgr_func->dynamic_state_management_disable(hwmgr);
 
index 1d988ef1978e5ceb954a818cea6bbbac956b7f77..535d786b79aeda901d690b5b8d97ee2d6620c923 100644 (file)
@@ -1239,11 +1239,6 @@ static int smu7_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
        int tmp_result = 0;
        int result = 0;
 
-       tmp_result = (!smum_is_dpm_running(hwmgr)) ? 0 : -1;
-       PP_ASSERT_WITH_CODE(tmp_result == 0,
-                       "DPM is already running",
-                       );
-
        if (smu7_voltage_control(hwmgr)) {
                tmp_result = smu7_enable_voltage_control(hwmgr);
                PP_ASSERT_WITH_CODE(tmp_result == 0,
@@ -1406,11 +1401,6 @@ int smu7_disable_dpm_tasks(struct pp_hwmgr *hwmgr)
 {
        int tmp_result, result = 0;
 
-       tmp_result = (smum_is_dpm_running(hwmgr)) ? 0 : -1;
-       PP_ASSERT_WITH_CODE(tmp_result == 0,
-                       "DPM is not running right now, no need to disable DPM!",
-                       return 0);
-
        if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
                        PHM_PlatformCaps_ThermalController))
                PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
index 9b0fcb6eb8d2381a6783ea53471d0fc27586c34e..f5df20a22e971288910e711f96bde128e91a59e0 100644 (file)
@@ -2859,11 +2859,6 @@ static int vega10_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
                        (struct vega10_hwmgr *)(hwmgr->backend);
        int tmp_result, result = 0;
 
-       tmp_result = (!smum_is_dpm_running(hwmgr)) ? 0 : -1;
-       PP_ASSERT_WITH_CODE(!tmp_result,
-                       "DPM is already running right , skipping re-enablement!",
-                       return 0);
-
        if ((hwmgr->smu_version == 0x001c2c00) ||
                        (hwmgr->smu_version == 0x001c2d00))
                smum_send_msg_to_smc_with_parameter(hwmgr,
@@ -4687,11 +4682,6 @@ static int vega10_disable_dpm_tasks(struct pp_hwmgr *hwmgr)
 {
        int tmp_result, result = 0;
 
-       tmp_result = (smum_is_dpm_running(hwmgr)) ? 0 : -1;
-       PP_ASSERT_WITH_CODE(tmp_result == 0,
-                       "DPM is not running right now, no need to disable DPM!",
-                       return 0);
-
        if (PP_CAP(PHM_PlatformCaps_ThermalController))
                vega10_disable_thermal_protection(hwmgr);