On 10:03 Mon 14 Oct     , Linus Walleij wrote:
> On Fri, Oct 11, 2013 at 9:10 PM, Stephen Warren <[email protected]> wrote:
> > On 10/11/2013 02:39 AM, Linus Walleij wrote:
> 
> >> However that is not the whole story, is it? We have a gazillion
> >> drivers calling irq_create_mapping() in this function, so I would
> >> say that things are already a mess here.
> >
> > I expect things are a mess indeed:-)
> >
> > I believe that if a driver is only calling irq_create_mapping() inside
> > gpio_to_irq(), it's a bug. I think things can operate correctly in one
> > of two cases, at least with DT:
> >
> > 1) irq_create_mapping() is called from both gpio_to_irq() and the
> > of_xlate callback for IRQs.
> >
> > (I don't think this method would work in a board-file-based system where
> > of_xlate isn't called for IRQs...)
> >
> > or:
> >
> > 2) irq_create_mapping() is called for all IRQs when registering the IRQ
> > controller/domain.
> >
> > To me, (2) is much simpler, and avoids the issue (1) probably has with
> > only supporting direct IRQ usage (without something calling gpio_to_irq()).
> 
> Hm. Jean-Christophe says (1) is the way to go ... This is
> arch/arm/mach-at91/gpio.c I guess.

no this is in the new pinctrl+ gpio driver
in drivers/pinctrl/pinctrl-at91.c

the arch/arm/mach-at91/gpio.c is the old one for non-dt support that is going
to be drop
> 
> But this seems to call irq_create_mapping() for all IRQs on
> all gpiochips in at91_gpio_irq_setup() which is called by the board
> init code?
> 
> Maybe I'm not following this :-/

it's in at91_gpio_irq_domain_xlate
> 
> I'll take a look over "my" GPIO drivers and see how I can make
> those a bit more elegant so as to set a good example.
> 
> Yours,
> Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to