drm/amdgpu/poweprlay: export program display gap function to eventmgr
authorRex Zhu <Rex.Zhu@amd.com>
Fri, 16 Oct 2015 06:55:03 +0000 (14:55 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 21 Dec 2015 21:42:19 +0000 (16:42 -0500)
This allows the eventmgr to properly update the displaygap on
certain power events.

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

index aec9f6d..620119f 100644 (file)
@@ -167,3 +167,30 @@ int phm_enable_clock_power_gatings(struct pp_hwmgr *hwmgr)
        }
        return 0;
 }
+
+int phm_display_configuration_changed(struct pp_hwmgr *hwmgr)
+{
+       if (hwmgr == NULL)
+               return -EINVAL;
+
+       if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+                                PHM_PlatformCaps_TablelessHardwareInterface)) {
+               if (NULL != hwmgr->hwmgr_func->display_config_changed)
+                       hwmgr->hwmgr_func->display_config_changed(hwmgr);
+       } else
+               return phm_dispatch_table(hwmgr, &hwmgr->display_configuration_changed, NULL, NULL);
+    return 0;
+}
+
+int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hwmgr)
+{
+       if (hwmgr == NULL)
+               return -EINVAL;
+
+       if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+                                PHM_PlatformCaps_TablelessHardwareInterface))
+               if (NULL != hwmgr->hwmgr_func->display_config_changed)
+                       hwmgr->hwmgr_func->notify_smc_display_config_after_ps_adjustment(hwmgr);
+
+    return 0;
+}
index 9795b9a..1d29760 100644 (file)
@@ -328,4 +328,6 @@ extern int phm_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
                             const struct pp_power_state *current_ps);
 
 extern int phm_force_dpm_levels(struct pp_hwmgr *hwmgr, enum amd_dpm_forced_level level);
+extern int phm_display_configuration_changed(struct pp_hwmgr *hwmgr);
+extern int phm_notify_smc_display_config_after_ps_adjustment(struct pp_hwmgr *hwmgr);
 #endif /* _HARDWARE_MANAGER_H_ */