Lines Matching refs:f

134 static int __init feat_try_enable_unknown(struct dt_cpu_feature *f)  in feat_try_enable_unknown()  argument
136 if (f->hv_support == HV_SUPPORT_NONE) { in feat_try_enable_unknown()
137 } else if (f->hv_support & HV_SUPPORT_HFSCR) { in feat_try_enable_unknown()
139 hfscr |= 1UL << f->hfscr_bit_nr; in feat_try_enable_unknown()
146 if (f->os_support == OS_SUPPORT_NONE) { in feat_try_enable_unknown()
147 } else if (f->os_support & OS_SUPPORT_FSCR) { in feat_try_enable_unknown()
149 fscr |= 1UL << f->fscr_bit_nr; in feat_try_enable_unknown()
156 if ((f->usable_privilege & USABLE_PR) && (f->hwcap_bit_nr != -1)) { in feat_try_enable_unknown()
157 uint32_t word = f->hwcap_bit_nr / 32; in feat_try_enable_unknown()
158 uint32_t bit = f->hwcap_bit_nr % 32; in feat_try_enable_unknown()
165 pr_err("%s could not advertise to user (no hwcap bits)\n", f->name); in feat_try_enable_unknown()
171 static int __init feat_enable(struct dt_cpu_feature *f) in feat_enable() argument
173 if (f->hv_support != HV_SUPPORT_NONE) { in feat_enable()
174 if (f->hfscr_bit_nr != -1) { in feat_enable()
176 hfscr |= 1UL << f->hfscr_bit_nr; in feat_enable()
181 if (f->os_support != OS_SUPPORT_NONE) { in feat_enable()
182 if (f->fscr_bit_nr != -1) { in feat_enable()
184 fscr |= 1UL << f->fscr_bit_nr; in feat_enable()
189 if ((f->usable_privilege & USABLE_PR) && (f->hwcap_bit_nr != -1)) { in feat_enable()
190 uint32_t word = f->hwcap_bit_nr / 32; in feat_enable()
191 uint32_t bit = f->hwcap_bit_nr % 32; in feat_enable()
198 pr_err("CPU feature: %s could not advertise to user (no hwcap bits)\n", f->name); in feat_enable()
204 static int __init feat_disable(struct dt_cpu_feature *f) in feat_disable() argument
209 static int __init feat_enable_hv(struct dt_cpu_feature *f) in feat_enable_hv() argument
230 static int __init feat_enable_le(struct dt_cpu_feature *f) in feat_enable_le() argument
236 static int __init feat_enable_smt(struct dt_cpu_feature *f) in feat_enable_smt() argument
243 static int __init feat_enable_idle_nap(struct dt_cpu_feature *f) in feat_enable_idle_nap() argument
257 static int __init feat_enable_idle_stop(struct dt_cpu_feature *f) in feat_enable_idle_stop() argument
271 static int __init feat_enable_mmu_hash(struct dt_cpu_feature *f) in feat_enable_mmu_hash() argument
293 static int __init feat_enable_mmu_hash_v3(struct dt_cpu_feature *f) in feat_enable_mmu_hash_v3() argument
311 static int __init feat_enable_mmu_radix(struct dt_cpu_feature *f) in feat_enable_mmu_radix() argument
324 static int __init feat_enable_dscr(struct dt_cpu_feature *f) in feat_enable_dscr() argument
334 f->fscr_bit_nr = -1; in feat_enable_dscr()
336 feat_enable(f); in feat_enable_dscr()
367 static int __init feat_enable_mce_power8(struct dt_cpu_feature *f) in feat_enable_mce_power8() argument
375 static int __init feat_enable_pmu_power8(struct dt_cpu_feature *f) in feat_enable_pmu_power8() argument
404 static int __init feat_enable_mce_power9(struct dt_cpu_feature *f) in feat_enable_mce_power9() argument
412 static int __init feat_enable_pmu_power9(struct dt_cpu_feature *f) in feat_enable_pmu_power9() argument
437 static int __init feat_enable_pmu_power10(struct dt_cpu_feature *f) in feat_enable_pmu_power10() argument
453 static int __init feat_enable_mce_power10(struct dt_cpu_feature *f) in feat_enable_mce_power10() argument
461 static int __init feat_enable_mce_power11(struct dt_cpu_feature *f) in feat_enable_mce_power11() argument
469 static int __init feat_enable_tm(struct dt_cpu_feature *f) in feat_enable_tm() argument
472 feat_enable(f); in feat_enable_tm()
479 static int __init feat_enable_fp(struct dt_cpu_feature *f) in feat_enable_fp() argument
481 feat_enable(f); in feat_enable_fp()
487 static int __init feat_enable_vector(struct dt_cpu_feature *f) in feat_enable_vector() argument
490 feat_enable(f); in feat_enable_vector()
500 static int __init feat_enable_vsx(struct dt_cpu_feature *f) in feat_enable_vsx() argument
503 feat_enable(f); in feat_enable_vsx()
512 static int __init feat_enable_purr(struct dt_cpu_feature *f) in feat_enable_purr() argument
519 static int __init feat_enable_ebb(struct dt_cpu_feature *f) in feat_enable_ebb() argument
527 f->hwcap_bit_nr = -1; in feat_enable_ebb()
528 feat_enable(f); in feat_enable_ebb()
533 static int __init feat_enable_dbell(struct dt_cpu_feature *f) in feat_enable_dbell() argument
538 feat_enable(f); in feat_enable_dbell()
549 static int __init feat_enable_hvi(struct dt_cpu_feature *f) in feat_enable_hvi() argument
574 static int __init feat_enable_large_ci(struct dt_cpu_feature *f) in feat_enable_large_ci() argument
581 static int __init feat_enable_mma(struct dt_cpu_feature *f) in feat_enable_mma() argument
585 feat_enable(f); in feat_enable_mma()
595 int (*enable)(struct dt_cpu_feature *f);
710 static bool __init cpufeatures_process_feature(struct dt_cpu_feature *f) in cpufeatures_process_feature() argument
718 if (!strcmp(f->name, m->name)) { in cpufeatures_process_feature()
720 if (m->enable(f)) { in cpufeatures_process_feature()
726 f->name); in cpufeatures_process_feature()
731 if (!known && (!enable_unknown || !feat_try_enable_unknown(f))) { in cpufeatures_process_feature()
733 f->name); in cpufeatures_process_feature()
738 pr_debug("enabling: %s\n", f->name); in cpufeatures_process_feature()
740 pr_debug("enabling: %s (unknown)\n", f->name); in cpufeatures_process_feature()
892 struct dt_cpu_feature *f; in process_cpufeatures_node() local
895 f = &dt_cpu_features[i]; in process_cpufeatures_node()
897 f->node = node; in process_cpufeatures_node()
899 f->name = uname; in process_cpufeatures_node()
906 f->isa = be32_to_cpup(prop); in process_cpufeatures_node()
913 f->usable_privilege = be32_to_cpup(prop); in process_cpufeatures_node()
917 f->hv_support = be32_to_cpup(prop); in process_cpufeatures_node()
919 f->hv_support = HV_SUPPORT_NONE; in process_cpufeatures_node()
923 f->os_support = be32_to_cpup(prop); in process_cpufeatures_node()
925 f->os_support = OS_SUPPORT_NONE; in process_cpufeatures_node()
929 f->hfscr_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
931 f->hfscr_bit_nr = -1; in process_cpufeatures_node()
934 f->fscr_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
936 f->fscr_bit_nr = -1; in process_cpufeatures_node()
939 f->hwcap_bit_nr = be32_to_cpup(prop); in process_cpufeatures_node()
941 f->hwcap_bit_nr = -1; in process_cpufeatures_node()
943 if (f->usable_privilege & USABLE_HV) { in process_cpufeatures_node()
949 if (f->hv_support == HV_SUPPORT_NONE && f->hfscr_bit_nr != -1) { in process_cpufeatures_node()
954 if (f->hv_support == HV_SUPPORT_HFSCR) { in process_cpufeatures_node()
955 if (f->hfscr_bit_nr == -1) { in process_cpufeatures_node()
961 if (f->hv_support != HV_SUPPORT_NONE || f->hfscr_bit_nr != -1) { in process_cpufeatures_node()
967 if (f->usable_privilege & USABLE_OS) { in process_cpufeatures_node()
968 if (f->os_support == OS_SUPPORT_NONE && f->fscr_bit_nr != -1) { in process_cpufeatures_node()
973 if (f->os_support == OS_SUPPORT_FSCR) { in process_cpufeatures_node()
974 if (f->fscr_bit_nr == -1) { in process_cpufeatures_node()
980 if (f->os_support != OS_SUPPORT_NONE || f->fscr_bit_nr != -1) { in process_cpufeatures_node()
986 if (!(f->usable_privilege & USABLE_PR)) { in process_cpufeatures_node()
987 if (f->hwcap_bit_nr != -1) { in process_cpufeatures_node()
995 if (cpufeatures_process_feature(f)) in process_cpufeatures_node()
996 f->enabled = 1; in process_cpufeatures_node()
998 f->disabled = 1; in process_cpufeatures_node()
1004 static void __init cpufeatures_deps_enable(struct dt_cpu_feature *f) in cpufeatures_deps_enable() argument
1011 if (f->enabled || f->disabled) in cpufeatures_deps_enable()
1014 prop = of_get_flat_dt_prop(f->node, "dependencies", &len); in cpufeatures_deps_enable()
1016 pr_warn("%s: missing dependencies property", f->name); in cpufeatures_deps_enable()
1032 f->disabled = 1; in cpufeatures_deps_enable()
1039 if (cpufeatures_process_feature(f)) in cpufeatures_deps_enable()
1040 f->enabled = 1; in cpufeatures_deps_enable()
1042 f->disabled = 1; in cpufeatures_deps_enable()
1103 struct dt_cpu_feature *f = &dt_cpu_features[i]; in dt_cpu_ftrs_scan_callback() local
1105 cpufeatures_deps_enable(f); in dt_cpu_ftrs_scan_callback()