Add macros for the bit-fields in the pm_status register.
Signed-off-by: Kevin Corry <[EMAIL PROTECTED]>
---
arch/powerpc/perfmon/perfmon_cell.c | 6 ++++--
include/asm-powerpc/cell-pmu.h | 4 ++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/perfmon/perfmon_cell.c
b/arch/powerpc/perfmon/perfmon_cell.c
index 0a554fc..e0a3976 100644
--- a/arch/powerpc/perfmon/perfmon_cell.c
+++ b/arch/powerpc/perfmon/perfmon_cell.c
@@ -511,11 +511,13 @@ static void pfm_cell_irq_handler(struct pt_regs *regs,
struct pfm_context *ctx)
*/
ctx_arch->last_read_updated = 1;
- if (last_read_pm_status & 0xFF000000)
+ if (last_read_pm_status & CBE_PM_ALL_OVERFLOW_INTR)
/* At least one counter overflowed. */
pfm_interrupt_handler(instruction_pointer(regs), regs);
- if (last_read_pm_status & 0x00E00000)
+ if (last_read_pm_status & (CBE_PM_INTERVAL_INTR |
+ CBE_PM_TRACE_BUFFER_FULL_INTR |
+ CBE_PM_TRACE_BUFFER_UNDERFLOW_INTR))
/* Trace buffer or interval timer overflow. */
handle_trace_buffer_interrupts(instruction_pointer(regs),
regs, ctx, last_read_pm_status);
diff --git a/include/asm-powerpc/cell-pmu.h b/include/asm-powerpc/cell-pmu.h
index 57b2e2f..981db26 100644
--- a/include/asm-powerpc/cell-pmu.h
+++ b/include/asm-powerpc/cell-pmu.h
@@ -62,6 +62,10 @@
/* Macros for the pm_status register. */
#define CBE_PM_CTR_OVERFLOW_INTR(ctr) (1 << (31 - ((ctr) & 7)))
#define CBE_PM_OVERFLOW_CTRS(pm_status) (((pm_status) >> 24) & 0xff)
+#define CBE_PM_ALL_OVERFLOW_INTR 0xff000000
+#define CBE_PM_INTERVAL_INTR 0x00800000
+#define CBE_PM_TRACE_BUFFER_FULL_INTR 0x00400000
+#define CBE_PM_TRACE_BUFFER_UNDERFLOW_INTR 0x00200000
enum pm_reg_name {
group_control,
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/