linux/drivers/tty
Russell King 08bd4903c2 SERIAL: omap: fix MCR TCRTLR bit handling
The MCR TCRTLR bit can only be changed when ECB is set in the EFR.
Unfortunately, several places were trying to alter this bit while ECB
was clear:

- serial_omap_configure_xonxoff() was attempting to clear the bit after
  explicitly clearing the ECB bit.
- serial_omap_set_termios() was trying the same trick after setting the
  SCR, and when trying to change the TCR register when hardware flow
  control was enabled.

Fix this by ensuring that we always have ECB set whenever the TCRTLR bit
is changed.

Moreover, we start out by reading the EFR and MCR registers, which may
have indeterminent bit settings for the ECB and TCRTLR bits.  Ensure
that these bits always start off in a known state.

In order to avoid any undesired behaviour appearing through fixing this,
we also ensure that hardware assisted flow control is disabled while new
driver specific parts are not in place.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-11-04 11:54:31 +00:00
..
hvc Feature: 2012-10-12 22:20:28 +09:00
ipwireless Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
serial SERIAL: omap: fix MCR TCRTLR bit handling 2012-11-04 11:54:31 +00:00
vt KGDB/KDB fixes and cleanups 2012-10-13 11:16:58 +09:00
amiserial.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
bfin_jtag_comm.c TTY: use tty_port_link_device 2012-08-13 16:50:19 -07:00
cyclades.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
ehv_bytechan.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00
isicom.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
Kconfig tty/serial: put (EXPERIMENTAL) marking back on N_GSM and SERIAL_IFX6X60 2012-09-18 17:17:56 +01:00
Makefile tty/powerpc: introduce the ePAPR embedded hypervisor byte channel driver 2011-08-23 10:32:56 -07:00
moxa.c TTY: tty_alloc_driver() returns error pointers 2012-08-16 12:07:23 -07:00
moxa.h
mxser.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
mxser.h Fix common misspellings 2011-03-31 11:26:23 -03:00
n_gsm.c tty: n_gsm: Fix incorrect debug display 2012-09-17 04:45:30 -07:00
n_hdlc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
n_r3964.c tty: localise the lock 2012-08-10 12:55:47 -07:00
n_tracerouter.c n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tracesink.c n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tracesink.h n_tracerouter and n_tracesink ldisc additions. 2011-05-13 16:31:00 -07:00
n_tty.c Remove BUG_ON from n_tty_read() 2012-08-16 11:53:14 -07:00
nozomi.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00
pty.c pty: Fix locking bug on error path 2012-09-21 09:51:09 -07:00
rocket_int.h
rocket.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00
rocket.h
synclink_gt.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
synclink.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
synclinkmp.c serial: add a new helper function 2012-09-05 13:28:35 -07:00
sysrq.c sparc64: Add global PMU register dumping via sysrq. 2012-10-16 09:34:01 -07:00
tty_audit.c userns: Convert audit to work with user namespaces enabled 2012-09-18 01:00:26 -07:00
tty_buffer.c tty: hold lock across tty buffer finding and buffer filling 2012-04-09 12:12:45 -07:00
tty_io.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
tty_ioctl.c tty: Fix up PPC fallout from the termios move 2012-07-17 09:10:55 -07:00
tty_ldisc.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
tty_mutex.c tty: localise the lock 2012-08-10 12:55:47 -07:00
tty_port.c tty_register_device_attr updated for tty-next 2012-09-06 14:40:18 -07:00