diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1023-drm-amd-powerplay-implement-power-down-asic-task-for.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1023-drm-amd-powerplay-implement-power-down-asic-task-for.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1023-drm-amd-powerplay-implement-power-down-asic-task-for.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1023-drm-amd-powerplay-implement-power-down-asic-task-for.patch new file mode 100644 index 00000000..eb7aef93 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1023-drm-amd-powerplay-implement-power-down-asic-task-for.patch @@ -0,0 +1,91 @@ +From 336bf15dc01d8a7c1fdc05fd932d020bb2dc73ec Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Tue, 29 Dec 2015 11:23:16 +0800 +Subject: [PATCH 1023/1050] drm/amd/powerplay: implement power down asic task + for CZ + +Change-Id: I46a6f320eaab6ce066edb53d7184b88879cd6cc5 + +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> + +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 55 ++++++++++++++++++++++++++ + 1 file changed, 55 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c +index 0b42eaf..3d08545 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c +@@ -925,6 +925,54 @@ static struct phm_master_table_header cz_setup_asic_master = { + cz_setup_asic_list + }; + ++static int cz_tf_power_up_display_clock_sys_pll(struct pp_hwmgr *hwmgr, ++ void *input, void *output, ++ void *storage, int result) ++{ ++ struct cz_hwmgr *hw_data = (struct cz_hwmgr *)(hwmgr->backend); ++ hw_data->disp_clk_bypass_pending = false; ++ hw_data->disp_clk_bypass = false; ++ ++ return 0; ++} ++ ++static int cz_tf_clear_nb_dpm_flag(struct pp_hwmgr *hwmgr, ++ void *input, void *output, ++ void *storage, int result) ++{ ++ struct cz_hwmgr *hw_data = (struct cz_hwmgr *)(hwmgr->backend); ++ hw_data->is_nb_dpm_enabled = false; ++ ++ return 0; ++} ++ ++static int cz_tf_reset_cc6_data(struct pp_hwmgr *hwmgr, ++ void *input, void *output, ++ void *storage, int result) ++{ ++ struct cz_hwmgr *hw_data = (struct cz_hwmgr *)(hwmgr->backend); ++ ++ hw_data->cc6_settings.cc6_setting_changed = false; ++ hw_data->cc6_settings.cpu_pstate_separation_time = 0; ++ hw_data->cc6_settings.cpu_cc6_disable = false; ++ hw_data->cc6_settings.cpu_pstate_disable = false; ++ ++ return 0; ++} ++ ++static struct phm_master_table_item cz_power_down_asic_list[] = { ++ {NULL, cz_tf_power_up_display_clock_sys_pll}, ++ {NULL, cz_tf_clear_nb_dpm_flag}, ++ {NULL, cz_tf_reset_cc6_data}, ++ {NULL, NULL} ++}; ++ ++static struct phm_master_table_header cz_power_down_asic_master = { ++ 0, ++ PHM_MasterTableFlag_None, ++ cz_power_down_asic_list ++}; ++ + static int cz_tf_program_voting_clients(struct pp_hwmgr *hwmgr, void *input, + void *output, void *storage, int result) + { +@@ -1130,6 +1178,13 @@ static int cz_hwmgr_backend_init(struct pp_hwmgr *hwmgr) + return result; + } + ++ result = phm_construct_table(hwmgr, &cz_power_down_asic_master, ++ &(hwmgr->power_down_asic)); ++ if (result != 0) { ++ printk(KERN_ERR "[ powerplay ] Fail to construct power down ASIC\n"); ++ return result; ++ } ++ + result = phm_construct_table(hwmgr, &cz_disable_dpm_master, + &(hwmgr->disable_dynamic_state_management)); + if (result != 0) { +-- +1.9.1 + |