diff options
author | Vignesh Raghavendra <vigneshr@ti.com> | 2020-03-19 16:33:43 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-03-24 12:25:11 +0100 |
commit | c6689dfd877991f5415628c3ad04d4df9c1cf646 (patch) | |
tree | 96d0bfda71fd7d914ae3d9facb4669f9d1db3464 /drivers/tty | |
parent | 7229b84c20d200853a827b4a807ad4954158cf12 (diff) | |
download | linux-c6689dfd877991f5415628c3ad04d4df9c1cf646.tar.gz linux-c6689dfd877991f5415628c3ad04d4df9c1cf646.tar.bz2 linux-c6689dfd877991f5415628c3ad04d4df9c1cf646.zip |
serial: 8250: 8250_omap: Work around errata causing spurious IRQs with DMA
As per Advisory 27 of AM437x Silicon errata document, Spurious UART
interrupts may occur when DMA mode (FCR.DMA_MODE) is enabled. The
Interrupt Controller flags that a UART interrupt has occurred; however,
the associated IT_PENDING bit remains set to 1, indicating that no
interrupt is pending. Acknowledge the spurious interrupts for every
occurrence as workaround.
Errata is applicable to all TI SoCs with this IP.
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Link: https://lore.kernel.org/r/20200319110344.21348-6-vigneshr@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/serial/8250/8250_omap.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index fb709e08fc66..9293a3e94f07 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -1051,7 +1051,7 @@ static int omap_8250_dma_handle_irq(struct uart_port *port) iir = serial_port_in(port, UART_IIR); if (iir & UART_IIR_NO_INT) { serial8250_rpm_put(up); - return 0; + return IRQ_HANDLED; } spin_lock_irqsave(&port->lock, flags); |