SERIAL: omap: simplify
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 6 Oct 2012 08:08:20 +0000 (09:08 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 4 Nov 2012 12:29:33 +0000 (12:29 +0000)
We have the sequence:
- LCR mode B
- write EFR with ECB clear
- LCR mode normal
- if s/w flow
- LCR mode B
- write EFR with ECB clear
...
- LCR mode B
- write EFR with ECB clear
- LCR mode normal

This can be simplified to:
- if s/w flow
- LCR mode B
- write EFR with ECB clear
...
- LCR mode B
- write EFR with ECB clear
- LCR mode normal

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/tty/serial/omap-serial.c

index 6d588e20c648b2c59a239d191913ecc458f1070a..fbce4c2e55cf78e39c4576465360968dc40ae429 100644 (file)
@@ -917,19 +917,11 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
 
                /* Disable access to TCR/TLR */
                serial_out(up, UART_MCR, up->mcr);
-               serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
-               serial_out(up, UART_EFR, up->efr);
-               serial_out(up, UART_LCR, cval);
        } else {
                /* Disable AUTORTS and AUTOCTS */
                up->efr &= ~(UART_EFR_CTS | UART_EFR_RTS);
-
-               serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
-               serial_out(up, UART_EFR, up->efr);
-               serial_out(up, UART_LCR, cval);
        }
 
-       /* Software Flow Control Configuration */
        if (up->port.flags & UPF_SOFT_FLOW) {
                serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
                serial_out(up, UART_EFR, up->efr);
@@ -975,11 +967,12 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
                serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG);
                serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
                serial_out(up, UART_MCR, up->mcr);
-               serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
-               serial_out(up, UART_EFR, up->efr);
-               serial_out(up, UART_LCR, up->lcr);
        }
 
+       serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
+       serial_out(up, UART_EFR, up->efr);
+       serial_out(up, UART_LCR, up->lcr);
+
        serial_omap_set_mctrl(&up->port, up->port.mctrl);
 
        spin_unlock_irqrestore(&up->port.lock, flags);
This page took 0.0425410000000001 seconds and 5 git commands to generate.