Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce98a677 authored by Suzuki K. Poulose's avatar Suzuki K. Poulose Committed by Catalin Marinas
Browse files

arm64: Handle width of a cpuid feature



Introduce a helper to extract cpuid feature for any given
width.

Signed-off-by: default avatarSuzuki K. Poulose <suzuki.poulose@arm.com>
Tested-by: default avatarDave Martin <Dave.Martin@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 12d11817
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -76,10 +76,16 @@ static inline void cpus_set_cap(unsigned int num)
		__set_bit(num, cpu_hwcaps);
}

static inline int __attribute_const__ cpuid_feature_extract_field(u64 features,
								  int field)
static inline int __attribute_const__
cpuid_feature_extract_field_width(u64 features, int field, int width)
{
	return (s64)(features << (64 - 4 - field)) >> (64 - 4);
	return (s64)(features << (64 - width - field)) >> (64 - width);
}

static inline int __attribute_const__
cpuid_feature_extract_field(u64 features, int field)
{
	return cpuid_feature_extract_field_width(features, field, 4);
}

static inline bool id_aa64mmfr0_mixed_endian_el0(u64 mmfr0)