MIPS: perf: Add cpu feature bit for PCI (performance counter interrupt)
The PCI (Program Counter Interrupt) bit in the "cause" register is mandatory for MIPS32R2 cores, but has also been added to some R1 cores (BMIPS5000). This change adds a cpu feature bit to make it easier to check for and use this feature. Signed-off-by: Al Cooper <alcooperx@gmail.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/4106/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -1194,8 +1194,11 @@ __cpuinit void cpu_probe(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (cpu_has_mips_r2)
|
||||
if (cpu_has_mips_r2) {
|
||||
c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1;
|
||||
/* R2 has Performance Counter Interrupt indicator */
|
||||
c->options |= MIPS_CPU_PCI;
|
||||
}
|
||||
else
|
||||
c->srsets = 1;
|
||||
|
||||
|
@@ -1158,7 +1158,7 @@ static int mipsxx_pmu_handle_shared_irq(void)
|
||||
int handled = IRQ_NONE;
|
||||
struct pt_regs *regs;
|
||||
|
||||
if (cpu_has_mips_r2 && !(read_c0_cause() & (1 << 26)))
|
||||
if (cpu_has_perf_cntr_intr_bit && !(read_c0_cause() & CAUSEF_PCI))
|
||||
return handled;
|
||||
/*
|
||||
* First we pause the local counters, so that when we are locked
|
||||
|
Reference in New Issue
Block a user