mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
ARM: 9272/1: vfp: Add hwcap for FEAT_AA32I8MM
Int8 matrix multiplication (FEAT_AA32I8MM) is a feature present in AArch32 state for Armv8 and is represented by ISAR6.I8MM identification register. This feature denotes the presence of VSMMLA, VSUDOT, VUMMLA, VUSMMLA and VUSDOT instructions and hence adding a hwcap will enable the userspace to check it before trying to use those instructions. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
23b6d4ad6e
commit
956ca3a4eb
@ -33,6 +33,7 @@
|
||||
#define HWCAP_ASIMDDP (1 << 24)
|
||||
#define HWCAP_ASIMDFHM (1 << 25)
|
||||
#define HWCAP_ASIMDBF16 (1 << 26)
|
||||
#define HWCAP_I8MM (1 << 27)
|
||||
|
||||
/*
|
||||
* HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2
|
||||
|
@ -1254,6 +1254,7 @@ static const char *hwcap_str[] = {
|
||||
"asimddp",
|
||||
"asimdfhm",
|
||||
"asimdbf16",
|
||||
"i8mm",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -857,6 +857,12 @@ static int __init vfp_init(void)
|
||||
*/
|
||||
if (cpuid_feature_extract_field(isar6, 20) == 0x1)
|
||||
elf_hwcap |= HWCAP_ASIMDBF16;
|
||||
/*
|
||||
* Check for the presence of Advanced SIMD and floating point
|
||||
* Int8 matrix multiplication instructions instructions.
|
||||
*/
|
||||
if (cpuid_feature_extract_field(isar6, 24) == 0x1)
|
||||
elf_hwcap |= HWCAP_I8MM;
|
||||
|
||||
/* Extract the architecture version on pre-cpuid scheme */
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user