Thread (181 messages) 181 messages, 8 authors, 2009-11-28

Re: [RFC PATCH 11/19] powerpc: gamecube/wii: flipper interrupt controller support

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2009-11-26 23:38:20

On Fri, 2009-11-27 at 00:00 +0100, Segher Boessenkool wrote:
quoted
quoted
quoted
+unsigned int flipper_pic_get_irq(void)
+{
+       void __iomem *io_base = flipper_irq_host->host_data;
+       int irq;
+       u32 irq_status;
+
+       irq_status = in_be32(io_base + FLIPPER_ICR) &
+                    in_be32(io_base + FLIPPER_IMR);
+       if (irq_status == 0)
+               return -1;      /* no more IRQs pending */
NO_IRQ_IGNORE
Why no just 0 ? (aka NO_IRQ)

Or do you know you are getting lots of spurrious that you don't  
want to
account ?
IRQ #0 is a valid IRQ here (graphics error IIRC), it should be
remapped I suppose?
All interrupts are remapped. _get_irq() should call the appropriate
revmap function to remap the HW number into a linux number. 0 is never a
valid linux number and means "no interrupt".

In the above case, it would seem to me that what he gets is a bitfield
so 0 means no interrupt. Hence the code should be:

	if (irq_status == 0)
		return 0;
	
Then, find first bit and return the linear revmap... Just look at what
the old pmac_pic does, same stuff basically.

Cheers,
Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help