/* * FP/SIMD support code initialisation. */ static int __init fpsimd_init(void) { if (elf_hwcap & HWCAP_FP) { fpsimd_pm_init(); fpsimd_hotplug_init(); } else { pr_notice("Floating-point is not implemented\n"); } if (!(elf_hwcap & HWCAP_ASIMD)) pr_notice("Advanced SIMD is not implemented\n"); return 0; }
/* * FP/SIMD support code initialisation. */ static int __init fpsimd_init(void) { u64 pfr = read_cpuid(ID_AA64PFR0_EL1); if (pfr & (0xf << 16)) { pr_notice("Floating-point is not implemented\n"); return 0; } elf_hwcap |= HWCAP_FP; if (pfr & (0xf << 20)) pr_notice("Advanced SIMD is not implemented\n"); else elf_hwcap |= HWCAP_ASIMD; fpsimd_pm_init(); fpsimd_hotplug_init(); return 0; }