SERIAL: omap: don't read back LCR/MCR/EFR

There's really no reason to read back these registers while setting
the termios modes, provided we keep our cached copies up to date.
Remove these readbacks.

This has the benefit that we know that the EFR_ECB and MCR_TCRTLR
bits will always be clear, so we don't need to keep masking these
bits throughout the code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index 4888bd1..6d588e2 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -912,8 +912,11 @@
 		/* 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 | UART_MCR_RTS);
+		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);
@@ -928,10 +931,8 @@
 
 	/* Software Flow Control Configuration */
 	if (up->port.flags & UPF_SOFT_FLOW) {
-		up->lcr = serial_in(up, UART_LCR);
 		serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
-		up->efr = serial_in(up, UART_EFR);
-		serial_out(up, UART_EFR, up->efr & ~UART_EFR_ECB);
+		serial_out(up, UART_EFR, up->efr);
 
 		serial_out(up, UART_XON1, termios->c_cc[VSTART]);
 		serial_out(up, UART_XOFF1, termios->c_cc[VSTOP]);
@@ -958,8 +959,6 @@
 		serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
 		serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
 
-		up->mcr = serial_in(up, UART_MCR);
-
 		/*
 		 * IXANY Flag:
 		 * Enable any character to restart output.
@@ -975,7 +974,7 @@
 		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 & ~UART_MCR_TCRTLR);
+		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);