All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Clean up CP0 hwrena code in traps.c
@ 2009-05-13 22:57 David Daney
  2009-05-13 22:59 ` [PATCH 1/2] MIPS: Allow CPU specific overriding of CP0 hwrena impl bits David Daney
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: David Daney @ 2009-05-13 22:57 UTC (permalink / raw)
  To: Ralf Baechle, linux-mips

There is an ugly #ifdef CONFIG_CPU_CAVIUM_OCTEON in the middle of
traps.c.  We can get rid of it if we add a cpu feature for
implementation dependent hwrena bits.  The first patch adds the
feature macro and the second removes the #ifdef by setting the feature
for Octeon.

I will reply with the two patches.

David Daney (2):
  MIPS: Allow CPU specific overriding of CP0 hwrena impl bits.
  MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h

 arch/mips/include/asm/cpu-features.h               |    4 ++++
 .../asm/mach-cavium-octeon/cpu-feature-overrides.h |    1 +
 arch/mips/kernel/traps.c                           |    6 +-----
 3 files changed, 6 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] MIPS: Allow CPU specific overriding of CP0 hwrena impl bits.
  2009-05-13 22:57 [PATCH 0/2] Clean up CP0 hwrena code in traps.c David Daney
@ 2009-05-13 22:59 ` David Daney
  2009-05-13 22:59 ` [PATCH 2/2] MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h David Daney
  2009-06-16 10:31 ` [PATCH 0/2] Clean up CP0 hwrena code in traps.c Ralf Baechle
  2 siblings, 0 replies; 4+ messages in thread
From: David Daney @ 2009-05-13 22:59 UTC (permalink / raw)
  To: linux-mips, ralf; +Cc: David Daney

Some CPUs have implementation dependent rdhwr registers.  Allow them
to be enabled on a per CPU basis.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
 arch/mips/include/asm/cpu-features.h |    4 ++++
 arch/mips/kernel/traps.c             |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index 1cba4b2..8ab1d12 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -234,4 +234,8 @@
 #define cpu_scache_line_size()	cpu_data[0].scache.linesz
 #endif
 
+#ifndef cpu_hwrena_impl_bits
+#define cpu_hwrena_impl_bits		0
+#endif
+
 #endif /* __ASM_CPU_FEATURES_H */
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index c3cc42e..efcb509 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1541,7 +1541,7 @@ void __cpuinit per_cpu_trap_init(void)
 			 status_set);
 
 	if (cpu_has_mips_r2) {
-		unsigned int enable = 0x0000000f;
+		unsigned int enable = 0x0000000f | cpu_hwrena_impl_bits;
 
 		if (!noulri && cpu_has_userlocal)
 			enable |= (1 << 29);
-- 
1.6.0.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h
  2009-05-13 22:57 [PATCH 0/2] Clean up CP0 hwrena code in traps.c David Daney
  2009-05-13 22:59 ` [PATCH 1/2] MIPS: Allow CPU specific overriding of CP0 hwrena impl bits David Daney
@ 2009-05-13 22:59 ` David Daney
  2009-06-16 10:31 ` [PATCH 0/2] Clean up CP0 hwrena code in traps.c Ralf Baechle
  2 siblings, 0 replies; 4+ messages in thread
From: David Daney @ 2009-05-13 22:59 UTC (permalink / raw)
  To: linux-mips, ralf; +Cc: David Daney

We had an ugly #ifdef for Cavium Octeon hwrena bits in traps.c, remove
it to mach-cavium-octeon/cpu-feature-overrides.h

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
 .../asm/mach-cavium-octeon/cpu-feature-overrides.h |    1 +
 arch/mips/kernel/traps.c                           |    4 ----
 2 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
index bb291f4..3d83075 100644
--- a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
@@ -53,6 +53,7 @@
 #define cpu_has_userlocal	0
 #define cpu_has_vint		0
 #define cpu_has_veic		0
+#define cpu_hwrena_impl_bits	0xc0000000
 #define ARCH_HAS_READ_CURRENT_TIMER 1
 #define ARCH_HAS_IRQ_PER_CPU	1
 #define ARCH_HAS_SPINLOCK_PREFETCH 1
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index efcb509..295a584 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1549,10 +1549,6 @@ void __cpuinit per_cpu_trap_init(void)
 		write_c0_hwrena(enable);
 	}
 
-#ifdef CONFIG_CPU_CAVIUM_OCTEON
-	write_c0_hwrena(0xc000000f); /* Octeon has register 30 and 31 */
-#endif
-
 #ifdef CONFIG_MIPS_MT_SMTC
 	if (!secondaryTC) {
 #endif /* CONFIG_MIPS_MT_SMTC */
-- 
1.6.0.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/2] Clean up CP0 hwrena code in traps.c
  2009-05-13 22:57 [PATCH 0/2] Clean up CP0 hwrena code in traps.c David Daney
  2009-05-13 22:59 ` [PATCH 1/2] MIPS: Allow CPU specific overriding of CP0 hwrena impl bits David Daney
  2009-05-13 22:59 ` [PATCH 2/2] MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h David Daney
@ 2009-06-16 10:31 ` Ralf Baechle
  2 siblings, 0 replies; 4+ messages in thread
From: Ralf Baechle @ 2009-06-16 10:31 UTC (permalink / raw)
  To: David Daney; +Cc: linux-mips

On Wed, May 13, 2009 at 03:57:59PM -0700, David Daney wrote:

> There is an ugly #ifdef CONFIG_CPU_CAVIUM_OCTEON in the middle of
> traps.c.  We can get rid of it if we add a cpu feature for
> implementation dependent hwrena bits.  The first patch adds the
> feature macro and the second removes the #ifdef by setting the feature
> for Octeon.

I was wondering if maybe this should be a per-CPU thing but then again
hitting such a highly assymetric system is unlikely even in the embedded
world.

Thanks, queued for 2.6.31,

  Ralf

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-06-16 10:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-13 22:57 [PATCH 0/2] Clean up CP0 hwrena code in traps.c David Daney
2009-05-13 22:59 ` [PATCH 1/2] MIPS: Allow CPU specific overriding of CP0 hwrena impl bits David Daney
2009-05-13 22:59 ` [PATCH 2/2] MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h David Daney
2009-06-16 10:31 ` [PATCH 0/2] Clean up CP0 hwrena code in traps.c Ralf Baechle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.