arm64: debug: Treat the BRPs/WRPs as unsigned
IDAA64DFR0_EL1: BRPs and WRPs are unsigned values. Use the appropriate helpers to extract those fields. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reported-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:

committed by
Catalin Marinas

parent
4f0a606bce
commit
1944bf8e78
@@ -138,16 +138,18 @@ extern struct pmu perf_ops_bp;
|
|||||||
/* Determine number of BRP registers available. */
|
/* Determine number of BRP registers available. */
|
||||||
static inline int get_num_brps(void)
|
static inline int get_num_brps(void)
|
||||||
{
|
{
|
||||||
|
u64 dfr0 = read_system_reg(SYS_ID_AA64DFR0_EL1);
|
||||||
return 1 +
|
return 1 +
|
||||||
cpuid_feature_extract_field(read_system_reg(SYS_ID_AA64DFR0_EL1),
|
cpuid_feature_extract_unsigned_field(dfr0,
|
||||||
ID_AA64DFR0_BRPS_SHIFT);
|
ID_AA64DFR0_BRPS_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Determine number of WRP registers available. */
|
/* Determine number of WRP registers available. */
|
||||||
static inline int get_num_wrps(void)
|
static inline int get_num_wrps(void)
|
||||||
{
|
{
|
||||||
|
u64 dfr0 = read_system_reg(SYS_ID_AA64DFR0_EL1);
|
||||||
return 1 +
|
return 1 +
|
||||||
cpuid_feature_extract_field(read_system_reg(SYS_ID_AA64DFR0_EL1),
|
cpuid_feature_extract_unsigned_field(dfr0,
|
||||||
ID_AA64DFR0_WRPS_SHIFT);
|
ID_AA64DFR0_WRPS_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user