[RFC PATCH 11/19] powerpc: gamecube/wii: flipper interrupt controller support
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Nov 27 08:12:28 EST 2009
On Thu, 2009-11-26 at 16:33 +0100, Albert Herranz wrote:
> Benjamin Herrenschmidt wrote:
> > On Sun, 2009-11-22 at 16:28 -0700, Grant Likely wrote:
> >>> +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)
> >
>
> I didn't know about 0 (I thought that was another valid interrupt).
0 is a valid hw number. It's not a valid linux "virq" number. In fact,
that's part of the reason why we generalized the whole virq thingy :-)
Because back then, Linus made the statement that 0 should never be a
valid IRQ number in linux. That also allowed us to make sure that 1..15
are never allocated to anything but a legacy 8259 to avoid all sorts of
problems with crackpot legacy x86 originated drivers who hard coded some
of these interrupts.
> I was used to -1 to tell that no IRQs were pending (at least from the
> ARCH=ppc days) :)
Yup, we changed that :-)
> > Or do you know you are getting lots of spurrious that you don't want to
> > account ?
> >
>
> No, this is not the case here.
Cheers,
Ben.
> > Cheers,
> > Ben.
> >
>
> Thanks,
> Albert
More information about the Linuxppc-dev
mailing list