From: Peter Meerwald <p.meerwald@xxxxxxxxxxxxxxxxxx> needed later on for ARM NEON optimization Signed-off-by: Peter Meerwald <p.meerwald at bct-electronic.com> --- src/pulsecore/cpu-arm.c | 12 ++++++++++++ src/pulsecore/cpu-arm.h | 5 ++++- 2 files changed, 16 insertions(+), 1 deletions(-) diff --git a/src/pulsecore/cpu-arm.c b/src/pulsecore/cpu-arm.c index 8ed5847..e955765 100644 --- a/src/pulsecore/cpu-arm.c +++ b/src/pulsecore/cpu-arm.c @@ -104,6 +104,18 @@ pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags) { pa_xfree(line); } + /* get the CPU part number */ + if ((line = get_cpuinfo_line(cpuinfo, "CPU part"))) { + arch = strtoul(line, NULL, 0); + if (arch == 0xc08) + *flags |= PA_CPU_ARM_CORTEX_A8; + else if (arch == 0xc09) + *flags |= PA_CPU_ARM_CORTEX_A9; + else if (arch == 0xc0f) + *flags |= PA_CPU_ARM_CORTEX_A15; + + pa_xfree(line); + } /* get the CPU features */ if ((line = get_cpuinfo_line(cpuinfo, "Features"))) { const char *state = NULL; diff --git a/src/pulsecore/cpu-arm.h b/src/pulsecore/cpu-arm.h index 4117fce..598da2e 100644 --- a/src/pulsecore/cpu-arm.h +++ b/src/pulsecore/cpu-arm.h @@ -32,7 +32,10 @@ typedef enum pa_cpu_arm_flag { PA_CPU_ARM_VFP = (1 << 2), PA_CPU_ARM_EDSP = (1 << 3), PA_CPU_ARM_NEON = (1 << 4), - PA_CPU_ARM_VFPV3 = (1 << 5) + PA_CPU_ARM_VFPV3 = (1 << 5), + PA_CPU_ARM_CORTEX_A8 = (1 << 6), + PA_CPU_ARM_CORTEX_A9 = (1 << 7), + PA_CPU_ARM_CORTEX_A15 = (1 << 8), } pa_cpu_arm_flag_t; pa_bool_t pa_cpu_init_arm(pa_cpu_arm_flag_t *flags); -- 1.7.5.4