Lines Matching full:cpu
9 int isst_write_pm_config(int cpu, int cp_state) in isst_write_pm_config() argument
19 ret = isst_send_mbox_command(cpu, WRITE_PM_CONFIG, PM_FEATURE, 0, req, in isst_write_pm_config()
24 debug_printf("cpu:%d WRITE_PM_CONFIG resp:%x\n", cpu, resp); in isst_write_pm_config()
29 int isst_read_pm_config(int cpu, int *cp_state, int *cp_cap) in isst_read_pm_config() argument
34 ret = isst_send_mbox_command(cpu, READ_PM_CONFIG, PM_FEATURE, 0, 0, in isst_read_pm_config()
39 debug_printf("cpu:%d READ_PM_CONFIG resp:%x\n", cpu, resp); in isst_read_pm_config()
47 int isst_get_ctdp_levels(int cpu, struct isst_pkg_ctdp *pkg_dev) in isst_get_ctdp_levels() argument
52 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_ctdp_levels()
63 debug_printf("cpu:%d CONFIG_TDP_GET_LEVELS_INFO resp:%x\n", cpu, resp); in isst_get_ctdp_levels()
74 int isst_get_ctdp_control(int cpu, int config_index, in isst_get_ctdp_control() argument
81 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_ctdp_control()
92 ret = isst_read_pm_config(cpu, &cp_state, &cp_cap); in isst_get_ctdp_control()
94 debug_printf("cpu:%d pm_config is not supported \n", cpu); in isst_get_ctdp_control()
96 debug_printf("cpu:%d pm_config SST-CP state:%d cap:%d \n", cpu, cp_state, cp_cap); in isst_get_ctdp_control()
102 …"cpu:%d CONFIG_TDP_GET_TDP_CONTROL resp:%x fact_support:%d pbf_support: %d fact_enabled:%d pbf_ena… in isst_get_ctdp_control()
103 cpu, resp, ctdp_level->fact_support, ctdp_level->pbf_support, in isst_get_ctdp_control()
109 int isst_get_tdp_info(int cpu, int config_index, in isst_get_tdp_info() argument
115 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_GET_TDP_INFO, in isst_get_tdp_info()
126 "cpu:%d ctdp:%d CONFIG_TDP_GET_TDP_INFO resp:%x tdp_ratio:%d pkg_tdp:%d\n", in isst_get_tdp_info()
127 cpu, config_index, resp, ctdp_level->tdp_ratio, in isst_get_tdp_info()
132 int isst_get_pwr_info(int cpu, int config_index, in isst_get_pwr_info() argument
138 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_GET_PWR_INFO, in isst_get_pwr_info()
147 "cpu:%d ctdp:%d CONFIG_TDP_GET_PWR_INFO resp:%x pkg_max_power:%d pkg_min_power:%d\n", in isst_get_pwr_info()
148 cpu, config_index, resp, ctdp_level->pkg_max_power, in isst_get_pwr_info()
154 void isst_get_uncore_p0_p1_info(int cpu, int config_index, in isst_get_uncore_p0_p1_info() argument
159 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_uncore_p0_p1_info()
171 "cpu:%d ctdp:%d CONFIG_TDP_GET_UNCORE_P0_P1_INFO resp:%x uncore p0:%d uncore p1:%d\n", in isst_get_uncore_p0_p1_info()
172 cpu, config_index, resp, ctdp_level->uncore_p0, in isst_get_uncore_p0_p1_info()
176 void isst_get_p1_info(int cpu, int config_index, in isst_get_p1_info() argument
181 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_GET_P1_INFO, 0, in isst_get_p1_info()
194 "cpu:%d ctdp:%d CONFIG_TDP_GET_P1_INFO resp:%x sse_p1:%d avx2_p1:%d avx512_p1:%d\n", in isst_get_p1_info()
195 cpu, config_index, resp, ctdp_level->sse_p1, in isst_get_p1_info()
199 void isst_get_uncore_mem_freq(int cpu, int config_index, in isst_get_uncore_mem_freq() argument
205 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_GET_MEM_FREQ, in isst_get_uncore_mem_freq()
228 "cpu:%d ctdp:%d CONFIG_TDP_GET_MEM_FREQ resp:%x uncore mem_freq:%d\n", in isst_get_uncore_mem_freq()
229 cpu, config_index, resp, ctdp_level->mem_freq); in isst_get_uncore_mem_freq()
232 int isst_get_tjmax_info(int cpu, int config_index, in isst_get_tjmax_info() argument
238 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_GET_TJMAX_INFO, in isst_get_tjmax_info()
246 "cpu:%d ctdp:%d CONFIG_TDP_GET_TJMAX_INFO resp:%x t_proc_hot:%d\n", in isst_get_tjmax_info()
247 cpu, config_index, resp, ctdp_level->t_proc_hot); in isst_get_tjmax_info()
252 int isst_get_coremask_info(int cpu, int config_index, in isst_get_coremask_info() argument
263 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_coremask_info()
270 "cpu:%d ctdp:%d mask:%d CONFIG_TDP_GET_CORE_MASK resp:%x\n", in isst_get_coremask_info()
271 cpu, config_index, i, resp); in isst_get_coremask_info()
274 set_cpu_mask_from_punit_coremask(cpu, mask, in isst_get_coremask_info()
279 debug_printf("cpu:%d ctdp:%d mask:%d cpu count:%d\n", cpu, in isst_get_coremask_info()
286 int isst_get_get_trl_from_msr(int cpu, int *trl) in isst_get_get_trl_from_msr() argument
291 ret = isst_send_msr_command(cpu, 0x1AD, 0, &msr_trl); in isst_get_get_trl_from_msr()
307 int isst_get_get_trl(int cpu, int level, int avx_level, int *trl) in isst_get_get_trl() argument
313 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_get_trl()
320 "cpu:%d CONFIG_TDP_GET_TURBO_LIMIT_RATIOS req:%x resp:%x\n", in isst_get_get_trl()
321 cpu, req, resp); in isst_get_get_trl()
329 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_get_trl()
335 debug_printf("cpu:%d CONFIG_TDP_GET_TURBO_LIMIT req:%x resp:%x\n", cpu, in isst_get_get_trl()
346 int isst_get_trl_bucket_info(int cpu, unsigned long long *buckets_info) in isst_get_trl_bucket_info() argument
350 debug_printf("cpu:%d bucket info via MSR\n", cpu); in isst_get_trl_bucket_info()
354 ret = isst_send_msr_command(cpu, 0x1ae, 0, buckets_info); in isst_get_trl_bucket_info()
358 debug_printf("cpu:%d bucket info via MSR successful 0x%llx\n", cpu, in isst_get_trl_bucket_info()
364 int isst_set_tdp_level_msr(int cpu, int tdp_level) in isst_set_tdp_level_msr() argument
369 debug_printf("cpu: tdp_level via MSR %d\n", cpu, tdp_level); in isst_set_tdp_level_msr()
371 if (isst_get_config_tdp_lock_status(cpu)) { in isst_set_tdp_level_msr()
379 ret = isst_send_msr_command(cpu, 0x64b, 1, &level); in isst_set_tdp_level_msr()
383 debug_printf("cpu: tdp_level via MSR successful %d\n", cpu, tdp_level); in isst_set_tdp_level_msr()
388 int isst_set_tdp_level(int cpu, int tdp_level) in isst_set_tdp_level() argument
394 if (isst_get_config_tdp_lock_status(cpu)) { in isst_set_tdp_level()
400 ret = isst_send_mbox_command(cpu, CONFIG_TDP, CONFIG_TDP_SET_LEVEL, 0, in isst_set_tdp_level()
410 int isst_get_pbf_info(int cpu, int level, struct isst_pbf_info *pbf_info) in isst_get_pbf_info() argument
417 ret = isst_get_ctdp_levels(cpu, &pkg_dev); in isst_get_pbf_info()
428 ret = isst_get_ctdp_control(cpu, level, &ctdp_level); in isst_get_pbf_info()
439 max_punit_core = get_max_punit_core_id(get_physical_package_id(cpu), get_physical_die_id(cpu)); in isst_get_pbf_info()
446 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_pbf_info()
453 "cpu:%d CONFIG_TDP_PBF_GET_CORE_MASK_INFO resp:%x\n", in isst_get_pbf_info()
454 cpu, resp); in isst_get_pbf_info()
457 set_cpu_mask_from_punit_coremask(cpu, mask, in isst_get_pbf_info()
464 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_pbf_info()
470 debug_printf("cpu:%d CONFIG_TDP_PBF_GET_P1HI_P1LO_INFO resp:%x\n", cpu, in isst_get_pbf_info()
478 cpu, CONFIG_TDP, CONFIG_TDP_PBF_GET_TDP_INFO, 0, req, &resp); in isst_get_pbf_info()
482 debug_printf("cpu:%d CONFIG_TDP_PBF_GET_TDP_INFO resp:%x\n", cpu, resp); in isst_get_pbf_info()
488 cpu, CONFIG_TDP, CONFIG_TDP_PBF_GET_TJ_MAX_INFO, 0, req, &resp); in isst_get_pbf_info()
492 debug_printf("cpu:%d CONFIG_TDP_PBF_GET_TJ_MAX_INFO resp:%x\n", cpu, in isst_get_pbf_info()
505 int isst_set_pbf_fact_status(int cpu, int pbf, int enable) in isst_set_pbf_fact_status() argument
513 ret = isst_get_ctdp_levels(cpu, &pkg_dev); in isst_set_pbf_fact_status()
515 debug_printf("cpu:%d No support for dynamic ISST\n", cpu); in isst_set_pbf_fact_status()
519 ret = isst_get_ctdp_control(cpu, current_level, &ctdp_level); in isst_set_pbf_fact_status()
545 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_set_pbf_fact_status()
550 debug_printf("cpu:%d CONFIG_TDP_SET_TDP_CONTROL pbf/fact:%d req:%x\n", in isst_set_pbf_fact_status()
551 cpu, pbf, req); in isst_set_pbf_fact_status()
556 int isst_get_fact_bucket_info(int cpu, int level, in isst_get_fact_bucket_info() argument
566 cpu, CONFIG_TDP, in isst_get_fact_bucket_info()
573 "cpu:%d CONFIG_TDP_GET_FACT_HP_TURBO_LIMIT_NUMCORES index:%d level:%d resp:%x\n", in isst_get_fact_bucket_info()
574 cpu, i, level, resp); in isst_get_fact_bucket_info()
587 cpu, CONFIG_TDP, in isst_get_fact_bucket_info()
594 "cpu:%d CONFIG_TDP_GET_FACT_HP_TURBO_LIMIT_RATIOS index:%d level:%d avx:%d resp:%x\n", in isst_get_fact_bucket_info()
595 cpu, i, level, k, resp); in isst_get_fact_bucket_info()
621 int isst_get_fact_info(int cpu, int level, int fact_bucket, struct isst_fact_info *fact_info) in isst_get_fact_info() argument
628 ret = isst_get_ctdp_levels(cpu, &pkg_dev); in isst_get_fact_info()
639 ret = isst_get_ctdp_control(cpu, level, &ctdp_level); in isst_get_fact_info()
648 ret = isst_send_mbox_command(cpu, CONFIG_TDP, in isst_get_fact_info()
654 debug_printf("cpu:%d CONFIG_TDP_GET_FACT_LP_CLIPPING_RATIO resp:%x\n", in isst_get_fact_info()
655 cpu, resp); in isst_get_fact_info()
661 ret = isst_get_fact_bucket_info(cpu, level, fact_info->bucket_info); in isst_get_fact_info()
683 int isst_get_trl(int cpu, unsigned long long *trl) in isst_get_trl() argument
687 ret = isst_send_msr_command(cpu, 0x1AD, 0, trl); in isst_get_trl()
694 int isst_set_trl(int cpu, unsigned long long trl) in isst_set_trl() argument
701 ret = isst_send_msr_command(cpu, 0x1AD, 1, &trl); in isst_set_trl()
708 int isst_set_trl_from_current_tdp(int cpu, unsigned long long trl) in isst_set_trl_from_current_tdp() argument
720 ret = isst_get_ctdp_levels(cpu, &pkg_dev); in isst_set_trl_from_current_tdp()
724 ret = isst_get_get_trl(cpu, pkg_dev.current_level, 0, trl); in isst_set_trl_from_current_tdp()
735 ret = isst_send_msr_command(cpu, 0x1AD, 1, &msr_trl); in isst_set_trl_from_current_tdp()
743 int isst_get_config_tdp_lock_status(int cpu) in isst_get_config_tdp_lock_status() argument
748 ret = isst_send_msr_command(cpu, 0x64b, 0, &tdp_control); in isst_get_config_tdp_lock_status()
757 void isst_get_process_ctdp_complete(int cpu, struct isst_pkg_ctdp *pkg_dev) in isst_get_process_ctdp_complete() argument
774 int isst_get_process_ctdp(int cpu, int tdp_level, struct isst_pkg_ctdp *pkg_dev) in isst_get_process_ctdp() argument
781 ret = isst_get_ctdp_levels(cpu, pkg_dev); in isst_get_process_ctdp()
785 debug_printf("cpu: %d ctdp enable:%d current level: %d levels:%d\n", in isst_get_process_ctdp()
786 cpu, pkg_dev->enabled, pkg_dev->current_level, in isst_get_process_ctdp()
803 debug_printf("cpu:%d Get Information for TDP level:%d\n", cpu, in isst_get_process_ctdp()
808 ctdp_level->control_cpu = cpu; in isst_get_process_ctdp()
809 ctdp_level->pkg_id = get_physical_package_id(cpu); in isst_get_process_ctdp()
810 ctdp_level->die_id = get_physical_die_id(cpu); in isst_get_process_ctdp()
812 ret = isst_get_ctdp_control(cpu, i, ctdp_level); in isst_get_process_ctdp()
821 ret = isst_get_pbf_info(cpu, i, &ctdp_level->pbf_info); in isst_get_process_ctdp()
827 ret = isst_get_fact_info(cpu, i, 0xff, in isst_get_process_ctdp()
836 freq = get_cpufreq_base_freq(cpu); in isst_get_process_ctdp()
842 isst_get_get_trl_from_msr(cpu, ctdp_level->trl_sse_active_cores); in isst_get_process_ctdp()
843 isst_get_trl_bucket_info(cpu, &ctdp_level->buckets_info); in isst_get_process_ctdp()
847 ret = isst_get_tdp_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
851 ret = isst_get_pwr_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
855 ret = isst_get_tjmax_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
861 ret = isst_get_coremask_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
865 ret = isst_get_trl_bucket_info(cpu, &ctdp_level->buckets_info); in isst_get_process_ctdp()
869 ret = isst_get_get_trl(cpu, i, 0, in isst_get_process_ctdp()
874 ret = isst_get_get_trl(cpu, i, 1, in isst_get_process_ctdp()
879 ret = isst_get_get_trl(cpu, i, 2, in isst_get_process_ctdp()
884 isst_get_uncore_p0_p1_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
885 isst_get_p1_info(cpu, i, ctdp_level); in isst_get_process_ctdp()
886 isst_get_uncore_mem_freq(cpu, i, ctdp_level); in isst_get_process_ctdp()
890 …_message(0, "Invalid level, Can't get TDP control information at specified levels on cpu", 1, cpu); in isst_get_process_ctdp()
895 int isst_clos_get_clos_information(int cpu, int *enable, int *type) in isst_clos_get_clos_information() argument
900 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PM_QOS_CONFIG, 0, 0, in isst_clos_get_clos_information()
905 debug_printf("cpu:%d CLOS_PM_QOS_CONFIG resp:%x\n", cpu, resp); in isst_clos_get_clos_information()
920 int isst_pm_qos_config(int cpu, int enable_clos, int priority_type) in isst_pm_qos_config() argument
929 ret = isst_get_ctdp_levels(cpu, &pkg_dev); in isst_pm_qos_config()
935 ret = isst_get_ctdp_control(cpu, pkg_dev.current_level, in isst_pm_qos_config()
944 ret = isst_write_pm_config(cpu, 0); in isst_pm_qos_config()
948 ret = isst_write_pm_config(cpu, 1); in isst_pm_qos_config()
953 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PM_QOS_CONFIG, 0, 0, in isst_pm_qos_config()
960 debug_printf("cpu:%d CLOS_PM_QOS_CONFIG resp:%x\n", cpu, resp); in isst_pm_qos_config()
977 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PM_QOS_CONFIG, in isst_pm_qos_config()
982 debug_printf("cpu:%d CLOS_PM_QOS_CONFIG priority type:%d req:%x\n", cpu, in isst_pm_qos_config()
988 int isst_pm_get_clos(int cpu, int clos, struct isst_clos_config *clos_config) in isst_pm_get_clos() argument
993 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PM_CLOS, clos, 0, in isst_pm_get_clos()
998 clos_config->pkg_id = get_physical_package_id(cpu); in isst_pm_get_clos()
999 clos_config->die_id = get_physical_die_id(cpu); in isst_pm_get_clos()
1010 int isst_set_clos(int cpu, int clos, struct isst_clos_config *clos_config) in isst_set_clos() argument
1024 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PM_CLOS, param, req, in isst_set_clos()
1029 debug_printf("cpu:%d CLOS_PM_CLOS param:%x req:%x\n", cpu, param, req); in isst_set_clos()
1034 int isst_clos_get_assoc_status(int cpu, int *clos_id) in isst_clos_get_assoc_status() argument
1040 core_id = find_phy_core_num(cpu); in isst_clos_get_assoc_status()
1043 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PQR_ASSOC, param, 0, in isst_clos_get_assoc_status()
1048 debug_printf("cpu:%d CLOS_PQR_ASSOC param:%x resp:%x\n", cpu, param, in isst_clos_get_assoc_status()
1055 int isst_clos_associate(int cpu, int clos_id) in isst_clos_associate() argument
1062 core_id = find_phy_core_num(cpu); in isst_clos_associate()
1065 ret = isst_send_mbox_command(cpu, CONFIG_CLOS, CLOS_PQR_ASSOC, param, in isst_clos_associate()
1070 debug_printf("cpu:%d CLOS_PQR_ASSOC param:%x req:%x\n", cpu, param, in isst_clos_associate()