mfd: ezx-pcap: Use generic_handle_irq_safe().
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 11 Feb 2022 18:14:58 +0000 (19:14 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 2 Mar 2022 21:28:50 +0000 (22:28 +0100)
Instead of manually disabling interrupts before invoking use
generic_handle_irq_safe() which can be invoked with enabled and disabled
interrupts.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20220211181500.1856198-6-bigeasy@linutronix.de
drivers/mfd/ezx-pcap.c

index 70fa18b..b14d3f9 100644 (file)
@@ -193,13 +193,11 @@ static void pcap_isr_work(struct work_struct *work)
                ezx_pcap_write(pcap, PCAP_REG_MSR, isr | msr);
                ezx_pcap_write(pcap, PCAP_REG_ISR, isr);
 
-               local_irq_disable();
                service = isr & ~msr;
                for (irq = pcap->irq_base; service; service >>= 1, irq++) {
                        if (service & 1)
-                               generic_handle_irq(irq);
+                               generic_handle_irq_safe(irq);
                }
-               local_irq_enable();
                ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr);
        } while (gpio_get_value(pdata->gpio));
 }