diff options
author | Peter Hurley <peter@hurleysoftware.com> | 2016-04-09 22:14:35 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-04-30 09:26:55 -0700 |
commit | b74fdd23d8fb4e349185ed9d963da8fc2b6eb34c (patch) | |
tree | a4b648006e775c9cdcc61ff89b5409eb065f2c5b /drivers/tty/serial | |
parent | ed183ee689058775b24021272c3a01d356fe8e2e (diff) | |
download | lwn-b74fdd23d8fb4e349185ed9d963da8fc2b6eb34c.tar.gz lwn-b74fdd23d8fb4e349185ed9d963da8fc2b6eb34c.zip |
serial: omap8250: Simplify rx dma completion interface
Extract the operation (restarting new rx dma) performed when error
argument is true.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial')
-rw-r--r-- | drivers/tty/serial/8250/8250_omap.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c index ca2a85011916..27702d5e8811 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -744,7 +744,7 @@ static void omap_8250_unthrottle(struct uart_port *port) #ifdef CONFIG_SERIAL_8250_DMA static int omap_8250_rx_dma(struct uart_8250_port *p, unsigned int iir); -static void __dma_rx_do_complete(struct uart_8250_port *p, bool error) +static void __dma_rx_do_complete(struct uart_8250_port *p) { struct omap8250_priv *priv = p->port.private_data; struct uart_8250_dma *dma = p->dma; @@ -772,15 +772,13 @@ static void __dma_rx_do_complete(struct uart_8250_port *p, bool error) unlock: spin_unlock_irqrestore(&priv->rx_dma_lock, flags); - if (!error) - omap_8250_rx_dma(p, 0); - tty_flip_buffer_push(tty_port); } static void __dma_rx_complete(void *param) { - __dma_rx_do_complete(param, false); + __dma_rx_do_complete(param); + omap_8250_rx_dma(param, 0); } static void omap_8250_rx_dma_flush(struct uart_8250_port *p) @@ -803,7 +801,7 @@ static void omap_8250_rx_dma_flush(struct uart_8250_port *p) spin_unlock_irqrestore(&priv->rx_dma_lock, flags); - __dma_rx_do_complete(p, true); + __dma_rx_do_complete(p); } static int omap_8250_rx_dma(struct uart_8250_port *p, unsigned int iir) |