Browse Source

Add HWCAP_NEON to the ARM hwcap.h file

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Catalin Marinas 16 năm trước cách đây
mục cha
commit
2bedbdf414

+ 1 - 0
arch/arm/include/asm/hwcap.h

@@ -16,6 +16,7 @@
 #define HWCAP_IWMMXT	512
 #define HWCAP_IWMMXT	512
 #define HWCAP_CRUNCH	1024
 #define HWCAP_CRUNCH	1024
 #define HWCAP_THUMBEE	2048
 #define HWCAP_THUMBEE	2048
+#define HWCAP_NEON	4096
 
 
 #if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 #if defined(__KERNEL__) && !defined(__ASSEMBLY__)
 /*
 /*

+ 1 - 0
arch/arm/kernel/setup.c

@@ -773,6 +773,7 @@ static const char *hwcap_str[] = {
 	"iwmmxt",
 	"iwmmxt",
 	"crunch",
 	"crunch",
 	"thumbee",
 	"thumbee",
+	"neon",
 	NULL
 	NULL
 };
 };
 
 

+ 9 - 0
arch/arm/vfp/vfpmodule.c

@@ -371,6 +371,15 @@ static int __init vfp_init(void)
 		 * in place; report VFP support to userspace.
 		 * in place; report VFP support to userspace.
 		 */
 		 */
 		elf_hwcap |= HWCAP_VFP;
 		elf_hwcap |= HWCAP_VFP;
+#ifdef CONFIG_NEON
+		/*
+		 * Check for the presence of the Advanced SIMD
+		 * load/store instructions, integer and single
+		 * precision floating point operations.
+		 */
+		if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100)
+			elf_hwcap |= HWCAP_NEON;
+#endif
 	}
 	}
 	return 0;
 	return 0;
 }
 }