aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/serial/omap-serial.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index fbce4c2e55cf..7180ffc847e8 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -898,31 +898,30 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
898 else 898 else
899 serial_out(up, UART_OMAP_MDR1, up->mdr1); 899 serial_out(up, UART_OMAP_MDR1, up->mdr1);
900 900
901 /* Hardware Flow Control Configuration */ 901 /* Enable access to TCR/TLR */
902 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
903 serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
904 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
905 serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
902 906
903 if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) { 907 serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG);
904 /* Enable access to TCR/TLR */
905 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
906 serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
907 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
908 serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
909 908
910 serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG); 909 /* Hardware Flow Control Configuration */
911 910
911 if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) {
912 /* Enable AUTORTS and AUTOCTS */ 912 /* Enable AUTORTS and AUTOCTS */
913 up->efr |= UART_EFR_CTS | UART_EFR_RTS; 913 up->efr |= UART_EFR_CTS | UART_EFR_RTS;
914 914
915 /* Ensure MCR RTS is asserted */ 915 /* Ensure MCR RTS is asserted */
916 up->mcr |= UART_MCR_RTS; 916 up->mcr |= UART_MCR_RTS;
917
918 /* Disable access to TCR/TLR */
919 serial_out(up, UART_MCR, up->mcr);
920 } else { 917 } else {
921 /* Disable AUTORTS and AUTOCTS */ 918 /* Disable AUTORTS and AUTOCTS */
922 up->efr &= ~(UART_EFR_CTS | UART_EFR_RTS); 919 up->efr &= ~(UART_EFR_CTS | UART_EFR_RTS);
923 } 920 }
924 921
925 if (up->port.flags & UPF_SOFT_FLOW) { 922 if (up->port.flags & UPF_SOFT_FLOW) {
923 /* Disable access to TCR/TLR */
924 serial_out(up, UART_MCR, up->mcr);
926 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); 925 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
927 serial_out(up, UART_EFR, up->efr); 926 serial_out(up, UART_EFR, up->efr);
928 927
@@ -961,14 +960,9 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios,
961 up->mcr |= UART_MCR_XONANY; 960 up->mcr |= UART_MCR_XONANY;
962 else 961 else
963 up->mcr &= ~UART_MCR_XONANY; 962 up->mcr &= ~UART_MCR_XONANY;
964
965 serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR);
966 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
967 serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_TRIG);
968 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
969 serial_out(up, UART_MCR, up->mcr);
970 } 963 }
971 964
965 serial_out(up, UART_MCR, up->mcr);
972 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); 966 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
973 serial_out(up, UART_EFR, up->efr); 967 serial_out(up, UART_EFR, up->efr);
974 serial_out(up, UART_LCR, up->lcr); 968 serial_out(up, UART_LCR, up->lcr);