From 024a81905a8fb869284a8f3071ea2c96a3146daa Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 2 Feb 2024 15:41:29 +0000 Subject: [PATCH] serial: sc16is7xx: Don't spin if no data received There are multiple causes of interrupts, errors being one, and only the receipt of data warrants continued polling. See: https://github.com/raspberrypi/linux/issues/2676 Signed-off-by: Phil Elwell --- drivers/tty/serial/sc16is7xx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index cc4a55f38c1c09..01c9e47dfc79e4 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -821,6 +821,8 @@ static bool sc16is7xx_port_irq(struct sc16is7xx_port *s, int portno) if (rxlen) sc16is7xx_handle_rx(port, rxlen, iir); + else + rc = false; break; /* CTSRTS interrupt comes only when CTS goes inactive */ case SC16IS7XX_IIR_CTSRTS_SRC: