arm64: mm: Add feature override support for LVA
[linux-2.6-microblaze.git] / arch / arm64 / include / asm / cpufeature.h
index 4f4dc54..a2ac31a 100644 (file)
@@ -906,7 +906,9 @@ static inline unsigned int get_vmid_bits(u64 mmfr1)
 s64 arm64_ftr_safe_value(const struct arm64_ftr_bits *ftrp, s64 new, s64 cur);
 struct arm64_ftr_reg *get_arm64_ftr_reg(u32 sys_id);
 
+extern struct arm64_ftr_override id_aa64mmfr0_override;
 extern struct arm64_ftr_override id_aa64mmfr1_override;
+extern struct arm64_ftr_override id_aa64mmfr2_override;
 extern struct arm64_ftr_override id_aa64pfr0_override;
 extern struct arm64_ftr_override id_aa64pfr1_override;
 extern struct arm64_ftr_override id_aa64zfr0_override;
@@ -1000,6 +1002,8 @@ static inline bool cpu_has_lva(void)
        u64 mmfr2;
 
        mmfr2 = read_sysreg_s(SYS_ID_AA64MMFR2_EL1);
+       mmfr2 &= ~id_aa64mmfr2_override.mask;
+       mmfr2 |= id_aa64mmfr2_override.val;
        return cpuid_feature_extract_unsigned_field(mmfr2,
                                                    ID_AA64MMFR2_EL1_VARange_SHIFT);
 }