diff options
Diffstat (limited to 'arch/arm/vfp')
-rw-r--r-- | arch/arm/vfp/vfpmodule.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 0a96f71f0abd..79bcb4316930 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -597,7 +597,6 @@ static int __init vfp_init(void) | |||
597 | elf_hwcap |= HWCAP_VFPv3D16; | 597 | elf_hwcap |= HWCAP_VFPv3D16; |
598 | } | 598 | } |
599 | #endif | 599 | #endif |
600 | #ifdef CONFIG_NEON | ||
601 | /* | 600 | /* |
602 | * Check for the presence of the Advanced SIMD | 601 | * Check for the presence of the Advanced SIMD |
603 | * load/store instructions, integer and single | 602 | * load/store instructions, integer and single |
@@ -605,10 +604,13 @@ static int __init vfp_init(void) | |||
605 | * for NEON if the hardware has the MVFR registers. | 604 | * for NEON if the hardware has the MVFR registers. |
606 | */ | 605 | */ |
607 | if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) { | 606 | if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) { |
607 | #ifdef CONFIG_NEON | ||
608 | if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100) | 608 | if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100) |
609 | elf_hwcap |= HWCAP_NEON; | 609 | elf_hwcap |= HWCAP_NEON; |
610 | } | ||
611 | #endif | 610 | #endif |
611 | if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000) | ||
612 | elf_hwcap |= HWCAP_VFPv4; | ||
613 | } | ||
612 | } | 614 | } |
613 | return 0; | 615 | return 0; |
614 | } | 616 | } |