Lines Matching defs:perf_level

160  * @perf_level:		A SST-PP level that SW intends to switch to
171 u64 perf_level :3;
207 * struct perf_level - Used to store perf level and mmio offset
214 struct perf_level {
256 struct perf_level *perf_levels;
336 pd_info->perf_levels = devm_kcalloc(dev, levels, sizeof(struct perf_level), GFP_KERNEL);
848 struct isst_perf_level_info perf_level;
853 if (copy_from_user(&perf_level, argp, sizeof(perf_level)))
856 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id);
860 perf_level.max_level = power_domain_info->max_level;
861 perf_level.level_mask = power_domain_info->pp_header.level_en_mask;
862 perf_level.feature_rev = power_domain_info->pp_header.feature_rev;
863 _read_pp_info("current_level", perf_level.current_level, SST_PP_STATUS_OFFSET,
865 _read_pp_info("locked", perf_level.locked, SST_PP_STATUS_OFFSET,
867 _read_pp_info("feature_state", perf_level.feature_state, SST_PP_STATUS_OFFSET,
869 perf_level.enabled = !!(power_domain_info->sst_header.cap_mask & BIT(1));
871 level_mask = perf_level.level_mask;
872 perf_level.sst_bf_support = 0;
883 perf_level.sst_bf_support |= BIT(level);
886 perf_level.sst_tf_support = 0;
897 perf_level.sst_tf_support |= BIT(level);
900 if (copy_to_user(argp, &perf_level, sizeof(perf_level)))
912 struct isst_perf_level_control perf_level;
919 if (copy_from_user(&perf_level, argp, sizeof(perf_level)))
922 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id);
929 if (!(power_domain_info->pp_header.allowed_level_mask & BIT(perf_level.level)))
936 if (perf_level.level == level)
939 _write_pp_info("perf_level", perf_level.level, SST_PP_CONTROL_OFFSET,
951 if (perf_level.level == level)
957 if (perf_level.level != level)
1073 struct isst_perf_level_data_info perf_level;
1077 if (copy_from_user(&perf_level, argp, sizeof(perf_level)))
1080 power_domain_info = get_instance(perf_level.socket_id, perf_level.power_domain_id);
1084 if (perf_level.level > power_domain_info->max_level)
1087 if (!(power_domain_info->pp_header.level_en_mask & BIT(perf_level.level)))
1090 _read_pp_level_info("tdp_ratio", perf_level.tdp_ratio, perf_level.level,
1093 _read_pp_level_info("base_freq_mhz", perf_level.base_freq_mhz, perf_level.level,
1096 _read_pp_level_info("base_freq_avx2_mhz", perf_level.base_freq_avx2_mhz, perf_level.level,
1099 _read_pp_level_info("base_freq_avx512_mhz", perf_level.base_freq_avx512_mhz,
1100 perf_level.level, SST_PP_INFO_0_OFFSET, SST_PP_P1_AVX512_START,
1102 _read_pp_level_info("base_freq_amx_mhz", perf_level.base_freq_amx_mhz, perf_level.level,
1106 _read_pp_level_info("thermal_design_power_w", perf_level.thermal_design_power_w,
1107 perf_level.level, SST_PP_INFO_1_OFFSET, SST_PP_TDP_START,
1109 perf_level.thermal_design_power_w /= 8; /* units are in 1/8th watt */
1110 _read_pp_level_info("tjunction_max_c", perf_level.tjunction_max_c, perf_level.level,
1113 _read_pp_level_info("max_memory_freq_mhz", perf_level.max_memory_freq_mhz,
1114 perf_level.level, SST_PP_INFO_1_OFFSET, SST_PP_MAX_MEMORY_FREQ_START,
1116 _read_pp_level_info("cooling_type", perf_level.cooling_type, perf_level.level,
1123 perf_level.trl_freq_mhz[i][j], perf_level.level,
1131 _read_pp_level_info("bucket*_core_count", perf_level.bucket_core_counts[i],
1132 perf_level.level, SST_PP_INFO_10_OFFSET,
1136 perf_level.max_buckets = TRL_MAX_BUCKETS;
1137 perf_level.max_trl_levels = TRL_MAX_LEVELS;
1139 _read_pp_level_info("p0_freq_mhz", perf_level.p0_freq_mhz, perf_level.level,
1142 _read_pp_level_info("p1_freq_mhz", perf_level.p1_freq_mhz, perf_level.level,
1145 _read_pp_level_info("pn_freq_mhz", perf_level.pn_freq_mhz, perf_level.level,
1148 _read_pp_level_info("pm_freq_mhz", perf_level.pm_freq_mhz, perf_level.level,
1151 _read_pp_level_info("p0_fabric_freq_mhz", perf_level.p0_fabric_freq_mhz,
1152 perf_level.level, SST_PP_INFO_11_OFFSET,
1155 _read_pp_level_info("p1_fabric_freq_mhz", perf_level.p1_fabric_freq_mhz,
1156 perf_level.level, SST_PP_INFO_11_OFFSET,
1159 _read_pp_level_info("pm_fabric_freq_mhz", perf_level.pm_fabric_freq_mhz,
1160 perf_level.level, SST_PP_INFO_11_OFFSET,
1164 if (copy_to_user(argp, &perf_level, sizeof(perf_level)))