[PATCH 2/3] ARM: Orion: Bind the orion bridge interrupt controller through DT
Jason Cooper
jason at lakedaemon.net
Wed Jan 9 20:47:34 EST 2013
Sebastian,
On Tue, Dec 11, 2012 at 11:55:35AM -0700, Jason Gunthorpe wrote:
> On Tue, Dec 11, 2012 at 08:13:33AM +0100, Andrew Lunn wrote:
> > On Mon, Dec 10, 2012 at 11:58:13PM -0700, Jason Gunthorpe wrote:
> > > > > + bridge_irq = irq_of_parse_and_map(np, 0);
> > > > > + /* FIXME: irq_of_parse_and_map returns 0 on error, but on Dove the
> > > > > + * bridge IRQ is 0.
> > > > > + if (!bridge_irq)
> > > > > + return -ENODEV;*/
> > > > > +
> > > > > + return orion_bridge_irq_init(bridge_irq, -1, base, np);
> > > >
> > > > So does this mean for Dove it will currently always fail?
> > >
> > > I guess that is hard to read without syntax hi-lighting, the 'if' is
> > > also commented out.
> > >
> > > I was hopefull it would work as is, but looking deeper at
> > > irq_of_parse_and_map and its call tree makes me doubtfull now..
> > >
> > > Fixing irq_of_parse_and_map is way to big a job for me :(
> >
> > Hi Jason
> >
> > https://lwn.net/Articles/470820/
> >
> > I don't think its fixable.
>
> Oh right. That.
>
> Looking at this some more, I think it should work, but not for very
> good reasons.. irq_of_parse_and_map will return 0 on dove. It returns
> 0 because it is going through its error paths because it saw a 0 deep
> inside, but it still returns 0.
>
> orion_bridge_irq_init will work with 0 as a bridge_irq, we know this
> because the timer code was using those code paths for a long time
>
> > We need to see how other machine remap 0 to some other value and
> > implement that for Dove.
>
> It looks like it is straightforward to adjust Dove's
> get_irqnr_and_base to add 1 to all the interrupt numbers, adjust
> irqs.h to add 1, and adjust the irq setup. There would be no
> performance penalty to doing this, but testing would be need to be
> sure 100% of changes were made. If the above works it would be better
> to do that sort of change after, or maybe after the non-DT code is
> purged...
>
> Kirkwood is already OK WRT the 0 IRQ, it is handled internally to
> get_irqnr_and_base.
>
> So, I will suggest to please test on dove as-is...
Did you have a chance to test this on dove?
thx,
Jason.
More information about the linux-arm-kernel
mailing list