From 2e1a1080fcd884a429937b47e9a4eb7711296ef9 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 11 Feb 2022 19:14:58 +0100
Subject: [PATCH 163/166] mfd: ezx-pcap: Use generic_handle_irq_safe().

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>
Link: https://lore.kernel.org/r/20220211181500.1856198-6-bigeasy@linutronix.de
(cherry picked from commit a6efcd21ca31ee59e2daf22ec847e25c334b107f)
Signed-off-by: Clark Williams <williams@redhat.com>
---
 drivers/mfd/ezx-pcap.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Index: linux-5.15.32-rt39/drivers/mfd/ezx-pcap.c
===================================================================
@ linux-5.15.32-rt39/drivers/mfd/ezx-pcap.c:196 @ static void pcap_isr_work(struct work_st
 		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));
 }