Lines Matching refs:f

154 static int __init feat_try_enable_unknown(struct dt_cpu_feature *f)  in feat_try_enable_unknown()  argument
156 if (f->hv_support == HV_SUPPORT_NONE) { in feat_try_enable_unknown()
157 } else if (f->hv_support & HV_SUPPORT_HFSCR) { in feat_try_enable_unknown()
159 hfscr |= 1UL << f->hfscr_bit_nr; in feat_try_enable_unknown()
166 if (f->os_support == OS_SUPPORT_NONE) { in feat_try_enable_unknown()
167 } else if (f->os_support & OS_SUPPORT_FSCR) { in feat_try_enable_unknown()
169 fscr |= 1UL << f->fscr_bit_nr; in feat_try_enable_unknown()
176 if ((f->usable_privilege & USABLE_PR) && (f->hwcap_bit_nr != -1)) { in feat_try_enable_unknown()
177 uint32_t word = f->hwcap_bit_nr / 32; in feat_try_enable_unknown()
178 uint32_t bit = f->hwcap_bit_nr % 32; in feat_try_enable_unknown()
185 pr_err("%s could not advertise to user (no hwcap bits)\n", f->name); in feat_try_enable_unknown()
191 static int __init feat_enable(struct dt_cpu_feature *f) in feat_enable() argument
193 if (f->hv_support != HV_SUPPORT_NONE) { in feat_enable()
194 if (f->hfscr_bit_nr != -1) { in feat_enable()
196 hfscr |= 1UL << f->hfscr_bit_nr; in feat_enable()
201 if (f->os_support != OS_SUPPORT_NONE) { in feat_enable()
202 if (f->fscr_bit_nr != -1) { in feat_enable()
204 fscr |= 1UL << f->fscr_bit_nr; in feat_enable()
209 if ((f->usable_privilege & USABLE_PR) && (f->hwcap_bit_nr != -1)) { in feat_enable()
210 uint32_t word = f->hwcap_bit_nr / 32; in feat_enable()
211 uint32_t bit = f->hwcap_bit_nr % 32; in feat_enable()
218 pr_err("CPU feature: %s could not advertise to user (no hwcap bits)\n", f->name); in feat_enable()
224 static int __init feat_disable(struct dt_cpu_feature *f) in feat_disable() argument
229 static int __init feat_enable_hv(struct dt_cpu_feature *f) in feat_enable_hv() argument
249 static int __init feat_enable_le(struct dt_cpu_feature *f) in feat_enable_le() argument
255 static int __init feat_enable_smt(struct dt_cpu_feature *f) in feat_enable_smt() argument
262 static int __init feat_enable_idle_nap(struct dt_cpu_feature *f) in feat_enable_idle_nap() argument
276 static int __init feat_enable_align_dsisr(struct dt_cpu_feature *f) in feat_enable_align_dsisr() argument
283 static int __init feat_enable_idle_stop(struct dt_cpu_feature *f) in feat_enable_idle_stop() argument
297 static int __init feat_enable_mmu_hash(struct dt_cpu_feature *f) in feat_enable_mmu_hash() argument
316 static int __init feat_enable_mmu_hash_v3(struct dt_cpu_feature *f) in feat_enable_mmu_hash_v3() argument
332 static int __init feat_enable_mmu_radix(struct dt_cpu_feature *f) in feat_enable_mmu_radix() argument
345 static int __init feat_enable_dscr(struct dt_cpu_feature *f) in feat_enable_dscr() argument
355 f->fscr_bit_nr = -1; in feat_enable_dscr()
357 feat_enable(f); in feat_enable_dscr()
388 static int __init feat_enable_mce_power8(struct dt_cpu_feature *f) in feat_enable_mce_power8() argument
396 static int __init feat_enable_pmu_power8(struct dt_cpu_feature *f) in feat_enable_pmu_power8() argument
426 static int __init feat_enable_mce_power9(struct dt_cpu_feature *f) in feat_enable_mce_power9() argument
434 static int __init feat_enable_pmu_power9(struct dt_cpu_feature *f) in feat_enable_pmu_power9() argument
459 static int __init feat_enable_pmu_power10(struct dt_cpu_feature *f) in feat_enable_pmu_power10() argument
476 static int __init feat_enable_mce_power10(struct dt_cpu_feature *f) in feat_enable_mce_power10() argument
484 static int __init feat_enable_tm(struct dt_cpu_feature *f) in feat_enable_tm() argument
487 feat_enable(f); in feat_enable_tm()
494 static int __init feat_enable_fp(struct dt_cpu_feature *f) in feat_enable_fp() argument
496 feat_enable(f); in feat_enable_fp()
502 static int __init feat_enable_vector(struct dt_cpu_feature *f) in feat_enable_vector() argument
505 feat_enable(f); in feat_enable_vector()
515 static int __init feat_enable_vsx(struct dt_cpu_feature *f) in feat_enable_vsx() argument
518 feat_enable(f); in feat_enable_vsx()
527 static int __init feat_enable_purr(struct dt_cpu_feature *f) in feat_enable_purr() argument
534 static int __init feat_enable_ebb(struct dt_cpu_feature *f) in feat_enable_ebb() argument
542 f->hwcap_bit_nr = -1; in feat_enable_ebb()
543 feat_enable(f); in feat_enable_ebb()
548 static int __init feat_enable_dbell(struct dt_cpu_feature *f) in feat_enable_dbell() argument
553 feat_enable(f); in feat_enable_dbell()
564 static int __init feat_enable_hvi(struct dt_cpu_feature *f) in feat_enable_hvi() argument
589 static int __init feat_enable_large_ci(struct dt_cpu_feature *f) in feat_enable_large_ci() argument
596 static int __init feat_enable_mma(struct dt_cpu_feature *f) in feat_enable_mma() argument
600 feat_enable(f); in feat_enable_mma()
610 int (*enable)(struct dt_cpu_feature *f);
723 static bool __init cpufeatures_process_feature(struct dt_cpu_feature *f) in cpufeatures_process_feature() argument
731 if (!strcmp(f->name, m->name)) { in cpufeatures_process_feature()
733 if (m->enable(f)) { in cpufeatures_process_feature()
739 f->name); in cpufeatures_process_feature()
744 if (!known && (!enable_unknown || !feat_try_enable_unknown(f))) { in cpufeatures_process_feature()
746 f->name); in cpufeatures_process_feature()
751 pr_debug("enabling: %s\n", f->name); in cpufeatures_process_feature()
753 pr_debug("enabling: %s (unknown)\n", f->name); in cpufeatures_process_feature()
899 struct dt_cpu_feature *f; in process_cpufeatures_node() local
902 f = &dt_cpu_features[i]; in process_cpufeatures_node()
904 f->node = node; in process_cpufeatures_node()
906 f->name = uname; in process_cpufeatures_node()
913 f->isa = be32_to_cpup(prop); in process_cpufeatures_node()
920 f->usable_privilege = be32_to_cpup(prop); in process_cpufeatures_node()
924 f->hv_support = be32_to_cpup(prop); in process_cpufeatures_node()
926 f->hv_support = HV_SUPPORT_NONE; in process_cpufeatures_node()
930 f->os_support = be32_to_cpup(prop); in process_cpufeatures_node()
932 f->os_support = OS_SUPPORT_NONE; in process_cpufeatures_node()
936 f->hfscr_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
938 f->hfscr_bit_nr = -1; in process_cpufeatures_node()
941 f->fscr_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
943 f->fscr_bit_nr = -1; in process_cpufeatures_node()
946 f->hwcap_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
948 f->hwcap_bit_nr = -1; in process_cpufeatures_node()
950 if (f->usable_privilege & USABLE_HV) { in process_cpufeatures_node()
956 if (f->hv_support == HV_SUPPORT_NONE && f->hfscr_bit_nr != -1) { in process_cpufeatures_node()
961 if (f->hv_support == HV_SUPPORT_HFSCR) { in process_cpufeatures_node()
962 if (f->hfscr_bit_nr == -1) { in process_cpufeatures_node()
968 if (f->hv_support != HV_SUPPORT_NONE || f->hfscr_bit_nr != -1) { in process_cpufeatures_node()
974 if (f->usable_privilege & USABLE_OS) { in process_cpufeatures_node()
975 if (f->os_support == OS_SUPPORT_NONE && f->fscr_bit_nr != -1) { in process_cpufeatures_node()
980 if (f->os_support == OS_SUPPORT_FSCR) { in process_cpufeatures_node()
981 if (f->fscr_bit_nr == -1) { in process_cpufeatures_node()
987 if (f->os_support != OS_SUPPORT_NONE || f->fscr_bit_nr != -1) { in process_cpufeatures_node()
993 if (!(f->usable_privilege & USABLE_PR)) { in process_cpufeatures_node()
994 if (f->hwcap_bit_nr != -1) { in process_cpufeatures_node()
1002 if (cpufeatures_process_feature(f)) in process_cpufeatures_node()
1003 f->enabled = 1; in process_cpufeatures_node()
1005 f->disabled = 1; in process_cpufeatures_node()
1011 static void __init cpufeatures_deps_enable(struct dt_cpu_feature *f) in cpufeatures_deps_enable() argument
1018 if (f->enabled || f->disabled) in cpufeatures_deps_enable()
1021 prop = of_get_flat_dt_prop(f->node, "dependencies", &len); in cpufeatures_deps_enable()
1023 pr_warn("%s: missing dependencies property", f->name); in cpufeatures_deps_enable()
1039 f->disabled = 1; in cpufeatures_deps_enable()
1046 if (cpufeatures_process_feature(f)) in cpufeatures_deps_enable()
1047 f->enabled = 1; in cpufeatures_deps_enable()
1049 f->disabled = 1; in cpufeatures_deps_enable()
1112 struct dt_cpu_feature *f = &dt_cpu_features[i]; in dt_cpu_ftrs_scan_callback() local
1114 cpufeatures_deps_enable(f); in dt_cpu_ftrs_scan_callback()