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 f25e7ec8941..650d90be0f9 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -582,7 +582,6 @@ static int __init vfp_init(void) | |||
582 | elf_hwcap |= HWCAP_VFPv3D16; | 582 | elf_hwcap |= HWCAP_VFPv3D16; |
583 | } | 583 | } |
584 | #endif | 584 | #endif |
585 | #ifdef CONFIG_NEON | ||
586 | /* | 585 | /* |
587 | * Check for the presence of the Advanced SIMD | 586 | * Check for the presence of the Advanced SIMD |
588 | * load/store instructions, integer and single | 587 | * load/store instructions, integer and single |
@@ -590,10 +589,13 @@ static int __init vfp_init(void) | |||
590 | * for NEON if the hardware has the MVFR registers. | 589 | * for NEON if the hardware has the MVFR registers. |
591 | */ | 590 | */ |
592 | if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) { | 591 | if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) { |
592 | #ifdef CONFIG_NEON | ||
593 | if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100) | 593 | if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100) |
594 | elf_hwcap |= HWCAP_NEON; | 594 | elf_hwcap |= HWCAP_NEON; |
595 | } | ||
596 | #endif | 595 | #endif |
596 | if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000) | ||
597 | elf_hwcap |= HWCAP_VFPv4; | ||
598 | } | ||
597 | } | 599 | } |
598 | return 0; | 600 | return 0; |
599 | } | 601 | } |