Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly

This patch Correct the RX interrupt mask value to handle the
RX interrupts properly.

Fixes: c8dbdc842d30 ("serial: xuartps: Rewrite the interrupt handling logic")
Signed-off-by: Nava kishore Manne <nava.manne@xilinx.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Nava kishore Manne and committed by
Greg Kroah-Hartman
26068313 32cf21ac

+2 -2
+2 -2
drivers/tty/serial/xilinx_uartps.c
··· 123 123 #define CDNS_UART_IXR_RXTRIG 0x00000001 /* RX FIFO trigger interrupt */ 124 124 #define CDNS_UART_IXR_RXFULL 0x00000004 /* RX FIFO full interrupt. */ 125 125 #define CDNS_UART_IXR_RXEMPTY 0x00000002 /* RX FIFO empty interrupt. */ 126 - #define CDNS_UART_IXR_MASK 0x00001FFF /* Valid bit mask */ 126 + #define CDNS_UART_IXR_RXMASK 0x000021e7 /* Valid RX bit mask */ 127 127 128 128 /* 129 129 * Do not enable parity error interrupt for the following ··· 364 364 cdns_uart_handle_tx(dev_id); 365 365 isrstatus &= ~CDNS_UART_IXR_TXEMPTY; 366 366 } 367 - if (isrstatus & CDNS_UART_IXR_MASK) 367 + if (isrstatus & CDNS_UART_IXR_RXMASK) 368 368 cdns_uart_handle_rx(dev_id, isrstatus); 369 369 370 370 spin_unlock(&port->lock);