Lines Matching refs:info

196     struct psr_socket_info *info = socket_info + socket;  in free_socket_resources()  local
205 for ( i = 0; i < ARRAY_SIZE(info->features); i++ ) in free_socket_resources()
207 xfree(info->features[i]); in free_socket_resources()
208 info->features[i] = NULL; in free_socket_resources()
211 info->feat_init = false; in free_socket_resources()
213 memset(info->cos_ref, 0, MAX_COS_REG_CNT * sizeof(unsigned int)); in free_socket_resources()
215 bitmap_zero(info->dom_set, DOMID_IDLE + 1); in free_socket_resources()
278 struct psr_socket_info *info, in cat_init_feature() argument
339 info->features[type] = feat; in cat_init_feature()
583 static unsigned int get_max_cos_max(const struct psr_socket_info *info) in get_max_cos_max() argument
587 for ( i = 0; i < ARRAY_SIZE(info->features); i++ ) in get_max_cos_max()
589 const struct feat_node *feat = info->features[i]; in get_max_cos_max()
605 const struct psr_socket_info *info = socket_info + socket; in psr_assoc_init() local
606 unsigned int cos_max = get_max_cos_max(info); in psr_assoc_init()
608 if ( info->feat_init ) in psr_assoc_init()
647 struct psr_socket_info *info = socket_info + socket; in psr_ctxt_switch_to() local
650 if ( likely(test_bit(d->domain_id, info->dom_set)) && in psr_ctxt_switch_to()
681 const struct psr_socket_info *info = get_socket_info(socket); in psr_get_info() local
687 if ( IS_ERR(info) ) in psr_get_info()
688 return PTR_ERR(info); in psr_get_info()
691 if ( feat_type >= ARRAY_SIZE(info->features) ) in psr_get_info()
694 feat = info->features[feat_type]; in psr_get_info()
713 const struct psr_socket_info *info = get_socket_info(socket); in psr_get_val() local
720 if ( IS_ERR(info) ) in psr_get_val()
721 return PTR_ERR(info); in psr_get_val()
724 if ( feat_type >= ARRAY_SIZE(info->features) ) in psr_get_val()
727 feat = info->features[feat_type]; in psr_get_val()
782 const struct psr_socket_info *info, in gather_val_array() argument
791 for ( i = 0; i < ARRAY_SIZE(info->features); i++ ) in gather_val_array()
794 const struct feat_node *feat = info->features[i]; in gather_val_array()
851 const struct psr_socket_info *info, in insert_val_into_array() argument
869 feat = info->features[feat_type]; in insert_val_into_array()
952 const struct psr_socket_info *info) in find_cos() argument
955 const unsigned int *ref = info->cos_ref; in find_cos()
959 feat = info->features[feat_type]; in find_cos()
974 for ( i = 0; i < ARRAY_SIZE(info->features); i++ ) in find_cos()
978 feat = info->features[i]; in find_cos()
1018 const struct psr_socket_info *info, in fits_cos_max() argument
1023 for ( i = 0; i < ARRAY_SIZE(info->features); i++ ) in fits_cos_max()
1025 const struct feat_node *feat = info->features[i]; in fits_cos_max()
1061 static int pick_avail_cos(const struct psr_socket_info *info, in pick_avail_cos() argument
1068 const unsigned int *ref = info->cos_ref; in pick_avail_cos()
1071 feat = info->features[feat_type]; in pick_avail_cos()
1081 fits_cos_max(val, array_len, info, old_cos) ) in pick_avail_cos()
1093 if ( !fits_cos_max(val, array_len, info, cos) ) in pick_avail_cos()
1120 const struct cos_write_info *info = data; in do_write_psr_msrs() local
1121 unsigned int i, index, cos = info->cos; in do_write_psr_msrs()
1139 ASSERT(info->array_len >= index + cos_num); in do_write_psr_msrs()
1143 if ( feat->cos_reg_val[cos * cos_num + j] != info->val[index] ) in do_write_psr_msrs()
1145 feat->cos_reg_val[cos * cos_num + j] = info->val[index]; in do_write_psr_msrs()
1146 props->write_msr(cos, info->val[index], props->type[j]); in do_write_psr_msrs()
1156 struct psr_socket_info *info = get_socket_info(socket); in write_psr_msrs() local
1164 if ( cos > info->features[feat_type]->cos_max ) in write_psr_msrs()
1188 struct psr_socket_info *info = get_socket_info(socket); in psr_set_val() local
1191 if ( IS_ERR(info) ) in psr_set_val()
1192 return PTR_ERR(info); in psr_set_val()
1199 if ( feat_type >= ARRAY_SIZE(info->features) || in psr_set_val()
1200 !info->features[feat_type] ) in psr_set_val()
1216 if ( !test_and_set_bit(d->domain_id, info->dom_set) ) in psr_set_val()
1224 ref = info->cos_ref; in psr_set_val()
1237 if ( (ret = gather_val_array(val_array, array_len, info, old_cos)) != 0 ) in psr_set_val()
1240 if ( (ret = insert_val_into_array(val_array, array_len, info, in psr_set_val()
1244 spin_lock(&info->ref_lock); in psr_set_val()
1251 cos = find_cos(val_array, array_len, feat_type, info); in psr_set_val()
1269 cos = pick_avail_cos(info, val_array, array_len, old_cos, feat_type); in psr_set_val()
1294 spin_unlock(&info->ref_lock); in psr_set_val()
1309 spin_unlock(&info->ref_lock); in psr_set_val()
1328 struct psr_socket_info *info = socket_info + socket; in psr_free_cos() local
1330 clear_bit(d->domain_id, info->dom_set); in psr_free_cos()
1337 spin_lock(&info->ref_lock); in psr_free_cos()
1338 ASSERT(info->cos_ref[cos]); in psr_free_cos()
1339 info->cos_ref[cos]--; in psr_free_cos()
1340 spin_unlock(&info->ref_lock); in psr_free_cos()
1408 struct psr_socket_info *info; in psr_cpu_init() local
1423 info = socket_info + socket; in psr_cpu_init()
1424 if ( info->feat_init ) in psr_cpu_init()
1427 spin_lock_init(&info->ref_lock); in psr_cpu_init()
1438 !cat_init_feature(&regs, feat, info, FEAT_TYPE_L3_CDP) ) in psr_cpu_init()
1444 if ( !cat_init_feature(&regs, feat, info, FEAT_TYPE_L3_CAT) ) in psr_cpu_init()
1458 if ( !cat_init_feature(&regs, feat, info, FEAT_TYPE_L2_CAT) ) in psr_cpu_init()
1464 info->feat_init = true; in psr_cpu_init()