|
@@ -582,7 +582,6 @@ static int __init vfp_init(void)
|
|
|
elf_hwcap |= HWCAP_VFPv3D16;
|
|
|
}
|
|
|
#endif
|
|
|
-#ifdef CONFIG_NEON
|
|
|
/*
|
|
|
* Check for the presence of the Advanced SIMD
|
|
|
* load/store instructions, integer and single
|
|
@@ -590,10 +589,13 @@ static int __init vfp_init(void)
|
|
|
* for NEON if the hardware has the MVFR registers.
|
|
|
*/
|
|
|
if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) {
|
|
|
+#ifdef CONFIG_NEON
|
|
|
if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100)
|
|
|
elf_hwcap |= HWCAP_NEON;
|
|
|
- }
|
|
|
#endif
|
|
|
+ if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000)
|
|
|
+ elf_hwcap |= HWCAP_VFPv4;
|
|
|
+ }
|
|
|
}
|
|
|
return 0;
|
|
|
}
|