drm/amd/powerplay: add disable_smc_ctf callback in hwmgr.
authorRex Zhu <Rex.Zhu@amd.com>
Thu, 27 Apr 2017 07:46:35 +0000 (15:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 28 Apr 2017 21:33:15 +0000 (17:33 -0400)
export disablesmcctf to eventmgr.
need to disable temperature alert when s3/s4.
otherwise, when resume back,enable temperature
alert will fail.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h

index 23bba2c8b18e60d9a66c17f746cd54beb5ca18e4..fcc722ea76490a3d788c1a2b577423dd01033392 100644 (file)
@@ -501,3 +501,13 @@ int phm_get_max_high_clocks(struct pp_hwmgr *hwmgr, struct amd_pp_simple_clock_i
 
        return hwmgr->hwmgr_func->get_max_high_clocks(hwmgr, clocks);
 }
+
+int phm_disable_smc_firmware_ctf(struct pp_hwmgr *hwmgr)
+{
+       PHM_FUNC_CHECK(hwmgr);
+
+       if (hwmgr->hwmgr_func->disable_smc_firmware_ctf == NULL)
+               return -EINVAL;
+
+       return hwmgr->hwmgr_func->disable_smc_firmware_ctf(hwmgr);
+}
index 8f663ab56a802bfea2db78338a9b19286e623e52..4ad84530c88aa01b8ba2072c0ea232ea247eabb1 100644 (file)
@@ -4695,6 +4695,7 @@ static const struct pp_hwmgr_func smu7_hwmgr_funcs = {
        .release_firmware = smu7_release_firmware,
        .set_power_profile_state = smu7_set_power_profile_state,
        .avfs_control = smu7_avfs_control,
+       .disable_smc_firmware_ctf = smu7_thermal_disable_alert,
 };
 
 uint8_t smu7_get_sleep_divider_id_from_clock(uint32_t clock,
index 5345b50761f4e6c1a76b2e9fa1a8483d00372d55..a1ebe1014492058e07658b512ec4ac3bc6db2c1a 100644 (file)
@@ -431,6 +431,6 @@ extern int phm_display_clock_voltage_request(struct pp_hwmgr *hwmgr,
                struct pp_display_clock_request *clock);
 
 extern int phm_get_max_high_clocks(struct pp_hwmgr *hwmgr, struct amd_pp_simple_clock_info *clocks);
-
+extern int phm_disable_smc_firmware_ctf(struct pp_hwmgr *hwmgr);
 #endif /* _HARDWARE_MANAGER_H_ */
 
index 320225dd3328af69af146c2fc3c68a88135712c5..98d38c31f6a645761ebe20d614023393b001f5d8 100644 (file)
@@ -373,6 +373,7 @@ struct pp_hwmgr_func {
        int (*set_power_profile_state)(struct pp_hwmgr *hwmgr,
                        struct amd_pp_profile *request);
        int (*avfs_control)(struct pp_hwmgr *hwmgr, bool enable);
+       int (*disable_smc_firmware_ctf)(struct pp_hwmgr *hwmgr);
 };
 
 struct pp_table_func {