Hi Linus, thank you for the answer. I made more tests and think that this patch shouldn't be applied. It removes duplicated interrupts, but sometimes they increase the performance: a new interrupt may come during handling a spurious one, and a spurious one will become valid (resulting in a kind of polling). I see the number of my touchscreen interrupts reduced from 200 to 130 per second with this patch. It may be a bigger problem for users, than duplicated interrupts. Sorry. Kind regards, Dmitry On Thu, Feb 6, 2025 at 12:26 PM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > On Wed, Jan 22, 2025 at 1:05 PM Dmitry Mastykin <mastichi@xxxxxxxxx> wrote: > > > irq_mask()/irq_unmask() are not called for nested interrupts. So level > > interrupts are never masked, chip's interrupt output is not cleared on > > INTCAP or GPIO read, the irq handler is uselessly called again. Nested > > irq handler is not called again, because interrupt reason is cleared by > > its first call. > > /proc/interrupts shows that number of chip's irqs is greater than > > number of nested irqs. > > > > This patch adds masking and unmasking level interrupts inside irq handler. > > > > Signed-off-by: Dmitry Mastykin <mastichi@xxxxxxxxx> > > Patch tentatively applied as non-urgent fix. > > If this is urgent, I need a Fixes: tags and we should also tag it > for stable, is this a big problem for users? I don't have the big picture > here. > > Adding Sebastian, if he's still using this expander. > > Yours, > Linus Walleij