On Wed, May 10, 2023 at 10:59 PM Chris Packham <Chris.Packham@xxxxxxxxxxxxxxxxxxx> wrote: > The coupling of gpiochip_irq_mask()/gpiochip_irq_unmask() with > gpiochip_disable_irq()/gpiochip_enable_irq() goes back to the same > commit a8173820f441 ("gpio: gpiolib: Allow GPIO IRQs to lazy disable"). > It's not immediately obvious to me why the coupling is needed. That is just a refactoring of what existed before. The use case is here: drivers/media/cec/platform/cec-gpio/cec-gpio.c The driver needs to switch, at runtime, between actively driving a GPIO line with gpiod_set_value(), and setting the same line into input mode and listening for signalling triggering IRQs on it, and then back to output mode and driving the line again. It's a bidirectional GPIO line. This use case yields a high need of control. > I was > hoping that someone seeing my patch would confirm that it's not needed > or say why it's needed suggest an alternative approach. Which IRQ-enabled gpiochip is this? Has it been converted to be immutable? I think that could be part of the problem. Yours, Linus Walleij