Subject: [POWERPC 01/18] perfmon2: make pm_interval register read/write

From: [email-masked]
Date: Tue, 18 Dec 2007 18:48:53 +0100

The pm_interval register in the Cell PMU is read/write, but was implemented in
the kernel as write-only. Previously, the written value was saved in a "shadow"
copy so calls to cbe_read_pm() could return the value.

Perfmon2 needs to be able to read the current values of pm_interval, so change
cbe_read_pm() to read the actual register instead of the "shadow" copy. There
is currently no code in the kernel that tries to read the pm_interval register
with cbe_read_pm() (expecting to receive the "shadow" value), so this should
not break any existing code.

Signed-off-by: Kevin Corry <[email-masked]>
Signed-off-by: Carl Love <[email-masked]>
Signed-off-by: Arnd Bergmann <[email-masked]>
---
 arch/powerpc/platforms/cell/pmu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Index: linux-2.6-new/arch/powerpc/platforms/cell/pmu.c
===================================================================
--- linux-2.6-new.orig/arch/powerpc/platforms/cell/pmu.c
+++ linux-2.6-new/arch/powerpc/platforms/cell/pmu.c
@@ -213,7 +213,7 @@ u32 cbe_read_pm(u32 cpu, enum pm_reg_nam
 		break;
 
 	case pm_interval:
-		READ_SHADOW_REG(val, pm_interval);
+		READ_MMIO_UPPER32(val, pm_interval);
 		break;
 
 	case pm_start_stop:

--