|
@@ -898,31 +898,30 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
|
|
|
else
|
|
|
serial_out(up, UART_OMAP_MDR1, up->mdr1);
|
|
|
|
|
|
- /* Hardware Flow Control Configuration */
|
|
|
+ /* Enable access to TCR/TLR */
|
|
|
+ serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
|
|
|
+ serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
|
|
|
+ serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
|
|
|
+ serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
|
|
|
|
|
|
- if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) {
|
|
|
- /* Enable access to TCR/TLR */
|
|
|
- serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
|
|
|
- serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
|
|
|
- serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
|
|
|
- serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
|
|
|
+ serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG);
|
|
|
|
|
|
- serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG);
|
|
|
+ /* Hardware Flow Control Configuration */
|
|
|
|
|
|
+ if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) {
|
|
|
/* Enable AUTORTS and AUTOCTS */
|
|
|
up->efr |= UART_EFR_CTS | UART_EFR_RTS;
|
|
|
|
|
|
/* Ensure MCR RTS is asserted */
|
|
|
up->mcr |= UART_MCR_RTS;
|
|
|
-
|
|
|
- /* Disable access to TCR/TLR */
|
|
|
- serial_out(up, UART_MCR, up->mcr);
|
|
|
} else {
|
|
|
/* Disable AUTORTS and AUTOCTS */
|
|
|
up->efr &= ~(UART_EFR_CTS | UART_EFR_RTS);
|
|
|
}
|
|
|
|
|
|
if (up->port.flags & UPF_SOFT_FLOW) {
|
|
|
+ /* 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);
|
|
|
|
|
@@ -961,14 +960,9 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
|
|
|
up->mcr |= UART_MCR_XONANY;
|
|
|
else
|
|
|
up->mcr &= ~UART_MCR_XONANY;
|
|
|
-
|
|
|
- serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
|
|
|
- serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
|
|
|
- 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_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);
|