From: Karthick Shanmugham <quic_kartshan@xxxxxxxxxxx> When mhi_irq_handler is a shared interrupt handler. It is the shared interrupt handlers responsibility to identify its own interrupt and exit quickly if it is not. If there is no pending event in the event ring handled, exit the interrupt context returning IRQ_NONE denoting the interrupt either doesn't belong to this event ring or not handled. Signed-off-by: Karthick Shanmugham <quic_kartshan@xxxxxxxxxxx> Signed-off-by: Vignesh Viswanathan <quic_viswanat@xxxxxxxxxxx> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@xxxxxxxxxxx> --- drivers/bus/mhi/host/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c index de804a701b85..f87eb0c2b01a 100644 --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c @@ -462,7 +462,7 @@ irqreturn_t mhi_irq_handler(int irq_number, void *dev) /* Only proceed if event ring has pending events */ if (ev_ring->rp == dev_rp) - return IRQ_HANDLED; + return IRQ_NONE; /* For client managed event ring, notify pending data */ if (mhi_event->cl_manage) { -- 2.34.1