Thread (17 messages) 17 messages, 4 authors, 2016-01-21

Re: [PATCH 6/6] MIPS: ath79: irq: Move the CPU IRQ driver to drivers/irqchip

From: Marc Zyngier <hidden>
Date: 2016-01-21 08:52:24
Also in: lkml

On 20/01/16 19:46, Alban wrote:
On Wed, 20 Jan 2016 12:49:48 +0000
Marc Zyngier [off-list ref] wrote:
quoted
On Tue, 17 Nov 2015 20:34:56 +0100
Alban Bedel [off-list ref] wrote:
quoted
Signed-off-by: Alban Bedel <albeu@free.fr>
---
 arch/mips/ath79/irq.c                    | 81
++------------------------ arch/mips/include/asm/mach-ath79/ath79.h
|  1 + drivers/irqchip/Makefile                 |  1 +
 drivers/irqchip/irq-ath79-cpu.c          | 97
++++++++++++++++++++++++++++++++ 4 files changed, 105
insertions(+), 75 deletions(-) create mode 100644
drivers/irqchip/irq-ath79-cpu.c
 
 [...]
quoted
quoted
+asmlinkage void plat_irq_dispatch(void)
+{
+	unsigned long pending;
+	int irq;
+
+	pending = read_c0_status() & read_c0_cause() & ST0_IM;
+
+	if (!pending) {
+		spurious_interrupt();
+		return;
+	}
+
+	pending >>= CAUSEB_IP;
+	while (pending) {
+		irq = fls(pending) - 1;
+		if (irq < ARRAY_SIZE(irq_wb_chan) && irq_wb_chan[irq] != -1)
+			ath79_ddr_wb_flush(irq_wb_chan[irq]);
+		do_IRQ(MIPS_CPU_IRQ_BASE + irq);
I'm rather unfamiliar with the MIPS IRQ handling, but I'm vaguely
surprised by the lack of domain. How do you unsure that the IRQ space
used here doesn't clash with the one created in your "misc" irqchip?
This driver extend the irq-mips-cpu driver which take care of setting up
a legacy domain starting from MIPS_CPU_IRQ_BASE for these interrupts. I
don't find this very nice either, but this patch is about moving the
code out of arch/mips, so I tried to minimize unrelated changes.
As long as there is an underlying domain reserving the CPU range, then
this is fine.

So for this patch:

Acked-by: Marc Zyngier <redacted>

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help