All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] MIPS: BCM63XX: small fixes from the BCM6368 patches
@ 2012-07-13  8:46 Jonas Gorski
  2012-07-13  8:46 ` [PATCH 1/3] MIPS: BCM63XX: add external irq support for BCM6345 Jonas Gorski
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jonas Gorski @ 2012-07-13  8:46 UTC (permalink / raw)
  To: linux-mips; +Cc: Ralf Baechle, Florian Fainelli, Maxime Bizon, Kevin Cernekee

"MIPS: BCM63XX: add external irq support for non 6348 CPUs" and
"MIPS: BCM63XX: add support for bcm6368 CPU" received an update,
but the update never made it into the tree.

Since they can't be updated now, but there were real fixes in them
I decided to split them up into sensible patches and add a proper
commit log for them.

Maxime Bizon (3):
  MIPS: BCM63XX: add external irq support for BCM6345
  MIPS: BCM63XX: don't write to the chipid register on reboot
  MIPS: BCM63XX: use a switch for external irq config

 arch/mips/bcm63xx/irq.c                           |   22 ++++++++++++++++----
 arch/mips/bcm63xx/setup.c                         |    6 +++++
 arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h |    1 +
 3 files changed, 24 insertions(+), 5 deletions(-)

-- 
1.7.2.5

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

* [PATCH 1/3] MIPS: BCM63XX: add external irq support for BCM6345
  2012-07-13  8:46 [PATCH 0/3] MIPS: BCM63XX: small fixes from the BCM6368 patches Jonas Gorski
@ 2012-07-13  8:46 ` Jonas Gorski
  2012-07-13  8:46 ` [PATCH 2/3] MIPS: BCM63XX: don't write to the chipid register on reboot Jonas Gorski
  2012-07-13  8:46 ` [PATCH 3/3] MIPS: BCM63XX: use a switch for external irq config Jonas Gorski
  2 siblings, 0 replies; 4+ messages in thread
From: Jonas Gorski @ 2012-07-13  8:46 UTC (permalink / raw)
  To: linux-mips; +Cc: Ralf Baechle, Florian Fainelli, Maxime Bizon, Kevin Cernekee

From: Maxime Bizon <mbizon@freebox.fr>

Add the missing definitions for BCM6345.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 arch/mips/bcm63xx/irq.c                           |    8 ++++++--
 arch/mips/bcm63xx/setup.c                         |    3 +++
 arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h |    1 +
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c
index 18e051a..d40169f 100644
--- a/arch/mips/bcm63xx/irq.c
+++ b/arch/mips/bcm63xx/irq.c
@@ -56,8 +56,8 @@ static void __internal_irq_unmask_64(unsigned int irq) __maybe_unused;
 #define is_ext_irq_cascaded	0
 #define ext_irq_start		0
 #define ext_irq_end		0
-#define ext_irq_count		0
-#define ext_irq_cfg_reg1	0
+#define ext_irq_count		4
+#define ext_irq_cfg_reg1	PERF_EXTIRQ_CFG_REG_6345
 #define ext_irq_cfg_reg2	0
 #endif
 #ifdef CONFIG_BCM63XX_CPU_6348
@@ -143,11 +143,15 @@ static void bcm63xx_init_irq(void)
 		irq_stat_addr += PERF_IRQSTAT_6338_REG;
 		irq_mask_addr += PERF_IRQMASK_6338_REG;
 		irq_bits = 32;
+		ext_irq_count = 4;
+		ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6338;
 		break;
 	case BCM6345_CPU_ID:
 		irq_stat_addr += PERF_IRQSTAT_6345_REG;
 		irq_mask_addr += PERF_IRQMASK_6345_REG;
 		irq_bits = 32;
+		ext_irq_count = 4;
+		ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6345;
 		break;
 	case BCM6348_CPU_ID:
 		irq_stat_addr += PERF_IRQSTAT_6348_REG;
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index 0e74a13..bd83836 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -74,6 +74,9 @@ void bcm63xx_machine_reboot(void)
 	case BCM6338_CPU_ID:
 		perf_regs[0] = PERF_EXTIRQ_CFG_REG_6338;
 		break;
+	case BCM6345_CPU_ID:
+		perf_regs[0] = PERF_EXTIRQ_CFG_REG_6345;
+		break;
 	case BCM6348_CPU_ID:
 		perf_regs[0] = PERF_EXTIRQ_CFG_REG_6348;
 		break;
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
index 4ccc2a7..75f162d 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -161,6 +161,7 @@
 /* External Interrupt Configuration register */
 #define PERF_EXTIRQ_CFG_REG_6328	0x18
 #define PERF_EXTIRQ_CFG_REG_6338	0x14
+#define PERF_EXTIRQ_CFG_REG_6345	0x14
 #define PERF_EXTIRQ_CFG_REG_6348	0x14
 #define PERF_EXTIRQ_CFG_REG_6358	0x14
 #define PERF_EXTIRQ_CFG_REG_6368	0x18
-- 
1.7.2.5

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

* [PATCH 2/3] MIPS: BCM63XX: don't write to the chipid register on reboot
  2012-07-13  8:46 [PATCH 0/3] MIPS: BCM63XX: small fixes from the BCM6368 patches Jonas Gorski
  2012-07-13  8:46 ` [PATCH 1/3] MIPS: BCM63XX: add external irq support for BCM6345 Jonas Gorski
@ 2012-07-13  8:46 ` Jonas Gorski
  2012-07-13  8:46 ` [PATCH 3/3] MIPS: BCM63XX: use a switch for external irq config Jonas Gorski
  2 siblings, 0 replies; 4+ messages in thread
From: Jonas Gorski @ 2012-07-13  8:46 UTC (permalink / raw)
  To: linux-mips; +Cc: Ralf Baechle, Florian Fainelli, Maxime Bizon, Kevin Cernekee

From: Maxime Bizon <mbizon@freebox.fr>

While harmless, it is bad style to do so.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 arch/mips/bcm63xx/setup.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index bd83836..314231b 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -86,6 +86,9 @@ void bcm63xx_machine_reboot(void)
 	}
 
 	for (i = 0; i < 2; i++) {
+		if (!perf_regs[i])
+			break;
+
 		reg = bcm_perf_readl(perf_regs[i]);
 		if (BCMCPU_IS_6348()) {
 			reg &= ~EXTIRQ_CFG_MASK_ALL_6348;
-- 
1.7.2.5

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

* [PATCH 3/3] MIPS: BCM63XX: use a switch for external irq config
  2012-07-13  8:46 [PATCH 0/3] MIPS: BCM63XX: small fixes from the BCM6368 patches Jonas Gorski
  2012-07-13  8:46 ` [PATCH 1/3] MIPS: BCM63XX: add external irq support for BCM6345 Jonas Gorski
  2012-07-13  8:46 ` [PATCH 2/3] MIPS: BCM63XX: don't write to the chipid register on reboot Jonas Gorski
@ 2012-07-13  8:46 ` Jonas Gorski
  2 siblings, 0 replies; 4+ messages in thread
From: Jonas Gorski @ 2012-07-13  8:46 UTC (permalink / raw)
  To: linux-mips; +Cc: Ralf Baechle, Florian Fainelli, Maxime Bizon, Kevin Cernekee

From: Maxime Bizon <mbizon@freebox.fr>

Makes the code a bit more readable and easier to add support for
new chips.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 arch/mips/bcm63xx/irq.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c
index d40169f..da24c2b 100644
--- a/arch/mips/bcm63xx/irq.c
+++ b/arch/mips/bcm63xx/irq.c
@@ -438,7 +438,8 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d,
 	reg = bcm_perf_readl(regaddr);
 	irq %= 4;
 
-	if (BCMCPU_IS_6348()) {
+	switch (bcm63xx_get_cpu_id()) {
+	case BCM6348_CPU_ID:
 		if (levelsense)
 			reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq);
 		else
@@ -451,9 +452,13 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d,
 			reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq);
 		else
 			reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq);
-	}
+		break;
 
-	if (BCMCPU_IS_6338() || BCMCPU_IS_6358() || BCMCPU_IS_6368()) {
+	case BCM6328_CPU_ID:
+	case BCM6338_CPU_ID:
+	case BCM6345_CPU_ID:
+	case BCM6358_CPU_ID:
+	case BCM6368_CPU_ID:
 		if (levelsense)
 			reg |= EXTIRQ_CFG_LEVELSENSE(irq);
 		else
@@ -466,6 +471,9 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d,
 			reg |= EXTIRQ_CFG_BOTHEDGE(irq);
 		else
 			reg &= ~EXTIRQ_CFG_BOTHEDGE(irq);
+		break;
+	default:
+		BUG();
 	}
 
 	bcm_perf_writel(reg, regaddr);
-- 
1.7.2.5

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

end of thread, other threads:[~2012-07-13  8:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-13  8:46 [PATCH 0/3] MIPS: BCM63XX: small fixes from the BCM6368 patches Jonas Gorski
2012-07-13  8:46 ` [PATCH 1/3] MIPS: BCM63XX: add external irq support for BCM6345 Jonas Gorski
2012-07-13  8:46 ` [PATCH 2/3] MIPS: BCM63XX: don't write to the chipid register on reboot Jonas Gorski
2012-07-13  8:46 ` [PATCH 3/3] MIPS: BCM63XX: use a switch for external irq config Jonas Gorski

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.