On Wed, Sep 24, 2014 at 2:28 PM, Grygorii Strashko <grygorii.strashko@xxxxxx> wrote: > On 09/24/2014 02:17 PM, Linus Walleij wrote: >> So PCA cannot use gpiochip_set_chained_irqchip()? > > Yes. It can't - pca is i2c device. ? I don't get this statement. Why does the fact that it is an I2C device matter? We have several devices that are in fact on top of I2C (albeit as MFD cells) like gpio-tc3589x.c. >> Anyway I feel I should fix this as per above for all >> chips using that function, right? > > Pls note, the gpiochip_irqchip_add() is called before > gpiochip_set_chained_irqchip() in all places now. Yes, but the .map function isn't called until a client wants to use an IRQ. And that won't happen until after we exit the whole .probe() function. > Also seems, we should assume that > gpiochip_set_chained_irqchip() can be called > few times and it could be unsafe to use it for storing parent_irq. Well it happens in one single driver, and was done by me. Maybe I should either disallow that, as that means we're adding multiple parents (which is what you want, right?) or actually implement it in a way so that multiple parents can be handled by the helpers, by adding the parents to a list or something. > So maybe it would be enough to just adding field for parent_irq > in struct gpio_chip + fix for gpiochip_irq_map() to re-use it > (to fix simple cases :). Yes for the simple case. But maybe it's better to patch gpiochip_set_chained_irqchip() to handle also the complex case per above? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html