On Tue, Sep 16, 2008 at 08:37:55AM -0400, Jon Smirl wrote: > On Tue, Sep 16, 2008 at 8:17 AM, Anton Vorontsov > <[EMAIL PROTECTED]> wrote: > > Hi Jon, > > > > On Sun, Sep 14, 2008 at 11:06:23PM -0400, Jon Smirl wrote: > >> I have demultiplexing the GPIO interrupts working well enough to make > >> my hardware work. But now I've discovered that these interrupts can't > >> do what I need. > >> > >> Anton, Grant - are either of you interested in this code? It's not > >> finished but the main ideas are in place. > > > > I think there is a small issue that ruins the whole approach.. :-/ > > > >> --- a/arch/powerpc/include/asm/gpio.h > >> +++ b/arch/powerpc/include/asm/gpio.h > >> @@ -38,17 +38,14 @@ static inline int gpio_cansleep(unsigned int gpio) > >> return __gpio_cansleep(gpio); > >> } > >> > >> -/* > >> - * Not implemented, yet. > >> - */ > >> -static inline int gpio_to_irq(unsigned int gpio) > >> +static inline unsigned int gpio_to_irq(unsigned int gpio) > >> { > >> - return -ENOSYS; > >> + return gpio; > > > > "GPIO 0" is valid gpio, but "IRQ 0" isn't valid virq. So you > > can't do 1:1 mapping. :-( > > I changed the GPIO numbers inside of Linux to match the virqs. > > ofchip->gc.base = IRQ_GPIO_WKUP(0);
Well, I didn't say that it will not work, what I'm trying to say is that I don't quite like the idea of 1:1 mapping for all gpio chips. It is error prone, i.e. gpio_to_irq() can't fail, so you can't tell if gpio to irq translation really happened or not. Plus we might decide to not do 1:1 mapping for other gpio chips. I think that this translation should go via gpiolib's callback (there is no .to_irq callback, but we should implement one). In the callback you can still do 1:1 mapping, but this mapping will work only for this particular gpio chip, and not for others. -- Anton Vorontsov email: [EMAIL PROTECTED] irc://irc.freenode.net/bd2 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev