tty/serial: at91: set ops in property init each time
authorLeilei Zhao <leilei.zhao@atmel.com>
Fri, 27 Feb 2015 08:07:17 +0000 (16:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Mar 2015 02:51:47 +0000 (03:51 +0100)
The property in device tree will be reading each time when tty is opened,
so the ops of serial port should be set after that instead of setting once
in probe. Otherwise, the ops of serial port is inconsistent with the state
of serial work manner. For example, the atmel serial driver can't work when
switching to PIO mode due to DMA channel is not available.

Signed-off-by: Leilei Zhao <leilei.zhao@atmel.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index a9b268841bb8319022e7dfa9f446d5cfdb463976..8fac877bc3d412da7f0b878bdc82d2132c36a19f 100644 (file)
@@ -1759,6 +1759,7 @@ static int atmel_startup(struct uart_port *port)
         * Initialize DMA (if necessary)
         */
        atmel_init_property(atmel_port, pdev);
+       atmel_set_ops(port);
 
        if (atmel_port->prepare_rx) {
                retval = atmel_port->prepare_rx(port);