serial: 8250: Initialize default dma handlers when setting defaults
authorPeter Hurley <peter@hurleysoftware.com>
Tue, 24 Feb 2015 19:25:11 +0000 (14:25 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Mar 2015 17:18:20 +0000 (18:18 +0100)
Prepare for 8250 split; move default dma tx/rx handler initialization
into serial8250_set_defaults(), which allows default dma ops to
remain unexported from the base port operations module after the split.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_core.c

index 2030201daf97d590298afa5c49afd98a8ebe86b3..423a77903cef2aab4a4715c727e435fd320e814d 100644 (file)
@@ -3160,6 +3160,14 @@ static void serial8250_set_defaults(struct uart_8250_port *up)
        }
 
        set_io_from_upio(port);
+
+       /* default dma handlers */
+       if (up->dma) {
+               if (!up->dma->tx_dma)
+                       up->dma->tx_dma = serial8250_tx_dma;
+               if (!up->dma->rx_dma)
+                       up->dma->rx_dma = serial8250_rx_dma;
+       }
 }
 
 static void __init serial8250_isa_init_ports(void)
@@ -3741,6 +3749,7 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
                uart->port.unthrottle   = up->port.unthrottle;
                uart->port.rs485_config = up->port.rs485_config;
                uart->port.rs485        = up->port.rs485;
+               uart->dma               = up->dma;
 
                /* Take tx_loadsz from fifosize if it wasn't set separately */
                if (uart->port.fifosize && !uart->tx_loadsz)
@@ -3781,13 +3790,6 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
                        uart->dl_read = up->dl_read;
                if (up->dl_write)
                        uart->dl_write = up->dl_write;
-               if (up->dma) {
-                       uart->dma = up->dma;
-                       if (!uart->dma->tx_dma)
-                               uart->dma->tx_dma = serial8250_tx_dma;
-                       if (!uart->dma->rx_dma)
-                               uart->dma->rx_dma = serial8250_rx_dma;
-               }
 
                if (serial8250_isa_config != NULL)
                        serial8250_isa_config(0, &uart->port,