arm64: Define CPACR_EL1_FPEN similarly to other floating point controls
authorMark Brown <broonie@kernel.org>
Mon, 7 Feb 2022 15:20:30 +0000 (15:20 +0000)
committerWill Deacon <will@kernel.org>
Fri, 25 Feb 2022 14:28:18 +0000 (14:28 +0000)
The base floating point, SVE and SME all have enable controls for EL0 and
EL1 in CPACR_EL1 which have a similar layout and function. Currently the
basic floating point enable FPEN is defined differently to the SVE control,
specified as a single define in kvm_arm.h rather than in sysreg.h. Move the
define to sysreg.h and provide separate EL0 and EL1 control bits so code
managing the different floating point enables can look consistent.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20220207152109.197566-2-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/kvm_arm.h
arch/arm64/include/asm/sysreg.h

index 01d47c5886dc43a6925116e3ba38c0a52aaf5657..eec790842fe2301c15d6ff4173baa4b2ae625ded 100644 (file)
        ECN(SOFTSTP_CUR), ECN(WATCHPT_LOW), ECN(WATCHPT_CUR), \
        ECN(BKPT32), ECN(VECTOR32), ECN(BRK64)
 
-#define CPACR_EL1_FPEN         (3 << 20)
 #define CPACR_EL1_TTA          (1 << 28)
 #define CPACR_EL1_DEFAULT      (CPACR_EL1_FPEN | CPACR_EL1_ZEN_EL1EN)
 
index 898bee0004aee603d7e51717bbb4643dbd0e6d2b..1da4c43d597d0cdb29ce7273b8d10707747145dd 100644 (file)
 #define ZCR_ELx_LEN_SIZE       9
 #define ZCR_ELx_LEN_MASK       0x1ff
 
+#define CPACR_EL1_FPEN_EL1EN   (BIT(20)) /* enable EL1 access */
+#define CPACR_EL1_FPEN_EL0EN   (BIT(21)) /* enable EL0 access, if EL1EN set */
+#define CPACR_EL1_FPEN         (CPACR_EL1_FPEN_EL1EN | CPACR_EL1_FPEN_EL0EN)
+
 #define CPACR_EL1_ZEN_EL1EN    (BIT(16)) /* enable EL1 access */
 #define CPACR_EL1_ZEN_EL0EN    (BIT(17)) /* enable EL0 access, if EL1EN set */
 #define CPACR_EL1_ZEN          (CPACR_EL1_ZEN_EL1EN | CPACR_EL1_ZEN_EL0EN)