On Wed, Feb 15, 2023 at 12:09 PM Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx> wrote: > Am Mittwoch, 15. Februar 2023, 11:18:06 CET schrieb Linus Walleij: > > On Tue, Feb 14, 2023 at 11:52 AM <andy.shevchenko@xxxxxxxxx> wrote: > > > Tue, Feb 14, 2023 at 08:36:38AM +0100, Alexander Stein kirjoitti: > > > > Since recently, the kernel is nagging about mutable irq_chips: > > > > "not an immutable chip, please consider fixing it!" > > > > > > > > Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new > > > > helper functions and call the appropriate gpiolib functions. > > > > > > ... > > > > > > > The overall changes are based on commit f1138dacb7ff > > > > ("gpio: sch: make irq_chip immutable") > > > > > > Nice, but you forgot one crucial detail. You need to mark GPIO resuested > > > whenever it's locked as IRQ and otherwise when unlocked. > > > > +static const struct irq_chip vf610_irqchip = { > > (...) > > + GPIOCHIP_IRQ_RESOURCE_HELPERS, > > > > That's what this macro does ;) > > Does this mean the calls to gpiochip_disable_irq/gpiochip_enable_irq in v2/v3 > are not necessary? No I guess I just misunderstood Andy's comments about "mark GPIO requested". The callbacks to gpiolib are needed just like pointed out by Marc Z in his answer, these callbacks are indeed needed. Yours, Linus Walleij