OSDN Git Service

serial: omap8250: Simplify rx dma completion interface
authorPeter Hurley <peter@hurleysoftware.com>
Sun, 10 Apr 2016 05:14:35 +0000 (22:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 30 Apr 2016 16:26:55 +0000 (09:26 -0700)
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>
drivers/tty/serial/8250/8250_omap.c

index ca2a850..27702d5 100644 (file)
@@ -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)