- pa_log_info ("CPU flags: %s%s%s%s%s%s",
- (flags & PA_CPU_ARM_V6) ? "V6 " : "",
- (flags & PA_CPU_ARM_V7) ? "V7 " : "",
- (flags & PA_CPU_ARM_VFP) ? "VFP " : "",
- (flags & PA_CPU_ARM_EDSP) ? "EDSP " : "",
- (flags & PA_CPU_ARM_NEON) ? "NEON " : "",
- (flags & PA_CPU_ARM_VFPV3) ? "VFPV3 " : "");
+ pa_log_info("CPU flags: %s%s%s%s%s%s%s",
+ (*flags & PA_CPU_ARM_V6) ? "V6 " : "",
+ (*flags & PA_CPU_ARM_V7) ? "V7 " : "",
+ (*flags & PA_CPU_ARM_VFP) ? "VFP " : "",
+ (*flags & PA_CPU_ARM_EDSP) ? "EDSP " : "",
+ (*flags & PA_CPU_ARM_NEON) ? "NEON " : "",
+ (*flags & PA_CPU_ARM_VFPV3) ? "VFPV3 " : "",
+ (*flags & PA_CPU_ARM_CORTEX_A8) ? "Cortex-A8 " : "");
+#endif
+}
+
+bool pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) {
+#if defined (__arm__)
+#if defined (__linux__)
+ pa_cpu_get_arm_flags(flags);
+
+ if (*flags & PA_CPU_ARM_V6)
+ pa_volume_func_init_arm(*flags);
+
+#ifdef HAVE_NEON
+ if (*flags & PA_CPU_ARM_NEON) {
+ pa_convert_func_init_neon(*flags);
+ pa_mix_func_init_neon(*flags);
+ pa_remap_func_init_neon(*flags);
+ }
+#endif
+
+ return true;
+