summaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2016-04-10 07:14:35 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-30 18:26:55 +0200
commitb74fdd23d8fb4e349185ed9d963da8fc2b6eb34c (patch)
treea4b648006e775c9cdcc61ff89b5409eb065f2c5b /drivers/tty
parentserial: omap8250: Drop rx buffer sync (diff)
downloadlinux-b74fdd23d8fb4e349185ed9d963da8fc2b6eb34c.tar.xz
linux-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')
-rw-r--r--drivers/tty/serial/8250/8250_omap.c10
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)