| From 260683137ab5276113fc322fdbbc578024185fee Mon Sep 17 00:00:00 2001 |
| From: Nava kishore Manne <nava.manne@xilinx.com> |
| Date: Tue, 18 Dec 2018 13:18:42 +0100 |
| Subject: serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly |
| |
| From: Nava kishore Manne <nava.manne@xilinx.com> |
| |
| commit 260683137ab5276113fc322fdbbc578024185fee upstream. |
| |
| 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> |
| |
| --- |
| drivers/tty/serial/xilinx_uartps.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/tty/serial/xilinx_uartps.c |
| +++ b/drivers/tty/serial/xilinx_uartps.c |
| @@ -128,7 +128,7 @@ MODULE_PARM_DESC(rx_timeout, "Rx timeout |
| #define CDNS_UART_IXR_RXTRIG 0x00000001 /* RX FIFO trigger interrupt */ |
| #define CDNS_UART_IXR_RXFULL 0x00000004 /* RX FIFO full interrupt. */ |
| #define CDNS_UART_IXR_RXEMPTY 0x00000002 /* RX FIFO empty interrupt. */ |
| -#define CDNS_UART_IXR_MASK 0x00001FFF /* Valid bit mask */ |
| +#define CDNS_UART_IXR_RXMASK 0x000021e7 /* Valid RX bit mask */ |
| |
| /* |
| * Do not enable parity error interrupt for the following |
| @@ -362,7 +362,7 @@ static irqreturn_t cdns_uart_isr(int irq |
| cdns_uart_handle_tx(dev_id); |
| isrstatus &= ~CDNS_UART_IXR_TXEMPTY; |
| } |
| - if (isrstatus & CDNS_UART_IXR_MASK) |
| + if (isrstatus & CDNS_UART_IXR_RXMASK) |
| cdns_uart_handle_rx(dev_id, isrstatus); |
| |
| spin_unlock(&port->lock); |