diff options
| author | Chandrakala Chavva <cchavva@caviumnetworks.com> | 2011-02-17 13:57:52 -0800 | 
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2011-05-19 09:55:49 +0100 | 
| commit | 7716e6548abed1582a7759666e79d5c612a906c7 (patch) | |
| tree | ebd12144faf525408ed82f6415804b02ee712440 | |
| parent | b32ee693eb106172f89639acff88dc8fee8ba3e2 (diff) | |
| download | olio-linux-3.10-7716e6548abed1582a7759666e79d5c612a906c7.tar.xz olio-linux-3.10-7716e6548abed1582a7759666e79d5c612a906c7.zip  | |
Octeon: Fix interrupt irq settings for performance counters.
Octeon uses different interrupt irq for timer and performance counters.
Set CvmCtl[IPPCI] to correct irq value very early.
Signed-off-by: Chandrakala Chavva <cchavva@caviumnetworks.com>
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
Cc: Chandrakala Chavva <cchavva@caviumnetworks.com>
Patchwork: https://patchwork.linux-mips.org/patch/2085/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| -rw-r--r-- | arch/mips/cavium-octeon/setup.c | 7 | ||||
| -rw-r--r-- | arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h | 5 | 
2 files changed, 5 insertions, 7 deletions
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c index 0707fae3f0e..2d9028f1474 100644 --- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c @@ -288,7 +288,6 @@ void octeon_user_io_init(void)  	union octeon_cvmemctl cvmmemctl;  	union cvmx_iob_fau_timeout fau_timeout;  	union cvmx_pow_nw_tim nm_tim; -	uint64_t cvmctl;  	/* Get the current settings for CP0_CVMMEMCTL_REG */  	cvmmemctl.u64 = read_c0_cvmmemctl(); @@ -392,12 +391,6 @@ void octeon_user_io_init(void)  			  CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE,  			  CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE * 128); -	/* Move the performance counter interrupts to IRQ 6 */ -	cvmctl = read_c0_cvmctl(); -	cvmctl &= ~(7 << 7); -	cvmctl |= 6 << 7; -	write_c0_cvmctl(cvmctl); -  	/* Set a default for the hardware timeouts */  	fau_timeout.u64 = 0;  	fau_timeout.s.tout_val = 0xfff; diff --git a/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h index 0b2b5eb22e9..dedef7d2b01 100644 --- a/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h +++ b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h @@ -63,6 +63,11 @@  	# CN30XX Disable instruction prefetching  	or  v0, v0, 0x2000  skip: +	# First clear off CvmCtl[IPPCI] bit and move the performance +	# counters interrupt to IRQ 6 +	li	v1, ~(7 << 7) +	and	v0, v0, v1 +	ori	v0, v0, (6 << 7)  	# Write the cavium control register  	dmtc0   v0, CP0_CVMCTL_REG  	sync  |