Lines Matching refs:perf_level

167 	u64 perf_level :3;  member
210 struct perf_level { struct
251 struct perf_level *perf_levels;
317 sizeof(struct perf_level), in sst_add_perf_profiles()
696 struct isst_perf_level_info perf_level; in isst_if_get_perf_level() local
699 if (copy_from_user(&perf_level, argp, sizeof(perf_level))) in isst_if_get_perf_level()
702 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id); in isst_if_get_perf_level()
706 perf_level.max_level = power_domain_info->max_level; in isst_if_get_perf_level()
707 perf_level.level_mask = power_domain_info->pp_header.allowed_level_mask; in isst_if_get_perf_level()
708 perf_level.feature_rev = power_domain_info->pp_header.feature_rev; in isst_if_get_perf_level()
709 _read_pp_info("current_level", perf_level.current_level, SST_PP_STATUS_OFFSET, in isst_if_get_perf_level()
711 _read_pp_info("locked", perf_level.locked, SST_PP_STATUS_OFFSET, in isst_if_get_perf_level()
713 _read_pp_info("feature_state", perf_level.feature_state, SST_PP_STATUS_OFFSET, in isst_if_get_perf_level()
715 perf_level.enabled = !!(power_domain_info->sst_header.cap_mask & BIT(1)); in isst_if_get_perf_level()
717 _read_bf_level_info("bf_support", perf_level.sst_bf_support, 0, 0, in isst_if_get_perf_level()
720 _read_tf_level_info("tf_support", perf_level.sst_tf_support, 0, 0, in isst_if_get_perf_level()
724 if (copy_to_user(argp, &perf_level, sizeof(perf_level))) in isst_if_get_perf_level()
736 struct isst_perf_level_control perf_level; in isst_if_set_perf_level() local
743 if (copy_from_user(&perf_level, argp, sizeof(perf_level))) in isst_if_set_perf_level()
746 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id); in isst_if_set_perf_level()
750 if (!(power_domain_info->pp_header.allowed_level_mask & BIT(perf_level.level))) in isst_if_set_perf_level()
757 if (perf_level.level == level) in isst_if_set_perf_level()
760 _write_pp_info("perf_level", perf_level.level, SST_PP_CONTROL_OFFSET, in isst_if_set_perf_level()
772 if (perf_level.level == level) in isst_if_set_perf_level()
778 if (perf_level.level != level) in isst_if_set_perf_level()
891 struct isst_perf_level_data_info perf_level; in isst_if_get_perf_level_info() local
895 if (copy_from_user(&perf_level, argp, sizeof(perf_level))) in isst_if_get_perf_level_info()
898 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id); in isst_if_get_perf_level_info()
902 if (perf_level.level > power_domain_info->max_level) in isst_if_get_perf_level_info()
905 if (!(power_domain_info->pp_header.level_en_mask & BIT(perf_level.level))) in isst_if_get_perf_level_info()
908 _read_pp_level_info("tdp_ratio", perf_level.tdp_ratio, perf_level.level, in isst_if_get_perf_level_info()
911 _read_pp_level_info("base_freq_mhz", perf_level.base_freq_mhz, perf_level.level, in isst_if_get_perf_level_info()
914 _read_pp_level_info("base_freq_avx2_mhz", perf_level.base_freq_avx2_mhz, perf_level.level, in isst_if_get_perf_level_info()
917 _read_pp_level_info("base_freq_avx512_mhz", perf_level.base_freq_avx512_mhz, in isst_if_get_perf_level_info()
918 perf_level.level, SST_PP_INFO_0_OFFSET, SST_PP_P1_AVX512_START, in isst_if_get_perf_level_info()
920 _read_pp_level_info("base_freq_amx_mhz", perf_level.base_freq_amx_mhz, perf_level.level, in isst_if_get_perf_level_info()
924 _read_pp_level_info("thermal_design_power_w", perf_level.thermal_design_power_w, in isst_if_get_perf_level_info()
925 perf_level.level, SST_PP_INFO_1_OFFSET, SST_PP_TDP_START, in isst_if_get_perf_level_info()
927 perf_level.thermal_design_power_w /= 8; /* units are in 1/8th watt */ in isst_if_get_perf_level_info()
928 _read_pp_level_info("tjunction_max_c", perf_level.tjunction_max_c, perf_level.level, in isst_if_get_perf_level_info()
931 _read_pp_level_info("max_memory_freq_mhz", perf_level.max_memory_freq_mhz, in isst_if_get_perf_level_info()
932 perf_level.level, SST_PP_INFO_1_OFFSET, SST_PP_MAX_MEMORY_FREQ_START, in isst_if_get_perf_level_info()
934 _read_pp_level_info("cooling_type", perf_level.cooling_type, perf_level.level, in isst_if_get_perf_level_info()
941 perf_level.trl_freq_mhz[i][j], perf_level.level, in isst_if_get_perf_level_info()
949 _read_pp_level_info("bucket*_core_count", perf_level.bucket_core_counts[i], in isst_if_get_perf_level_info()
950 perf_level.level, SST_PP_INFO_10_OFFSET, in isst_if_get_perf_level_info()
954 perf_level.max_buckets = TRL_MAX_BUCKETS; in isst_if_get_perf_level_info()
955 perf_level.max_trl_levels = TRL_MAX_LEVELS; in isst_if_get_perf_level_info()
957 _read_pp_level_info("p0_freq_mhz", perf_level.p0_freq_mhz, perf_level.level, in isst_if_get_perf_level_info()
960 _read_pp_level_info("p1_freq_mhz", perf_level.p1_freq_mhz, perf_level.level, in isst_if_get_perf_level_info()
963 _read_pp_level_info("pn_freq_mhz", perf_level.pn_freq_mhz, perf_level.level, in isst_if_get_perf_level_info()
966 _read_pp_level_info("pm_freq_mhz", perf_level.pm_freq_mhz, perf_level.level, in isst_if_get_perf_level_info()
969 _read_pp_level_info("p0_fabric_freq_mhz", perf_level.p0_fabric_freq_mhz, in isst_if_get_perf_level_info()
970 perf_level.level, SST_PP_INFO_11_OFFSET, in isst_if_get_perf_level_info()
973 _read_pp_level_info("p1_fabric_freq_mhz", perf_level.p1_fabric_freq_mhz, in isst_if_get_perf_level_info()
974 perf_level.level, SST_PP_INFO_11_OFFSET, in isst_if_get_perf_level_info()
977 _read_pp_level_info("pm_fabric_freq_mhz", perf_level.pm_fabric_freq_mhz, in isst_if_get_perf_level_info()
978 perf_level.level, SST_PP_INFO_11_OFFSET, in isst_if_get_perf_level_info()
982 if (copy_to_user(argp, &perf_level, sizeof(perf_level))) in isst_if_get_perf_level_info()