drm/amd/powerplay: fix mclk can't switch on Tonga
authorRex Zhu <Rex.Zhu@amd.com>
Fri, 6 Oct 2017 04:17:16 +0000 (12:17 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 6 Oct 2017 21:43:51 +0000 (17:43 -0400)
regression issue caused by
commit 47047263c52779f1f3393c32e3e53661b53a372e
("drm/amd/powerplay: delete eventmgr related files.")

Reviewed-by: Evan Quan <evan.quan@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/hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c

index 35e80c969737fa0646a1b045c8cecaf1ed23630d..ce59e0e67cb22d632b27c3dce86708bd19a7fa4a 100644 (file)
@@ -292,7 +292,6 @@ int hwmgr_hw_fini(struct pp_instance *handle)
 
        phm_stop_thermal_controller(hwmgr);
        psm_set_boot_states(hwmgr);
-       phm_display_configuration_changed(hwmgr);
        psm_adjust_power_state_dynamic(hwmgr, false, NULL);
        phm_disable_dynamic_state_management(hwmgr);
        phm_disable_clock_power_gatings(hwmgr);
index 167cdc321db282754c788b48973480e567e36a47..ffa44bbb218e4e59004a97e6b148d66f48ae1af4 100644 (file)
@@ -224,6 +224,8 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
        if (skip)
                return 0;
 
+       phm_display_configuration_changed(hwmgr);
+
        if (new_ps != NULL)
                requested = new_ps;
        else
@@ -232,7 +234,6 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
        pcurrent = hwmgr->current_ps;
 
        phm_apply_state_adjust_rules(hwmgr, requested, pcurrent);
-
        if (pcurrent == NULL || (0 != phm_check_states_equal(hwmgr,
                        &pcurrent->hardware, &requested->hardware, &equal)))
                equal = false;
@@ -241,6 +242,9 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
                phm_set_power_state(hwmgr, &pcurrent->hardware, &requested->hardware);
                memcpy(hwmgr->current_ps, hwmgr->request_ps, hwmgr->ps_size);
        }
+
+       phm_notify_smc_display_config_after_ps_adjustment(hwmgr);
+
        return 0;
 }