kernel_optimize_test/drivers/tty
Linus Walleij c5dd553b9f serial: pl011: handle corruption at high clock speeds
This works around a few glitches in the ST version of the PL011
serial driver when using very high baud rates, as we do in the
Ux500: 3, 3.25, 4 and 4.05 Mbps.

Problem Observed/rootcause:

When using high baud-rates, and the baudrate*8 is getting close to
the provided clock frequency (so a division factor close to 1), when
using bursts of characters (so they are abutted), then it seems as if
there is not enough time to detect the beginning of the start-bit which
is a timing reference for the entire character, and thus the sampling
moment of character bits is moving towards the end of each bit, instead
of the middle.

Fix:
Increase slightly the RX baud rate of the UART above the theoretical
baudrate by 5%. This will definitely give more margin time to the
UART_RX to correctly sample the data at the middle of the bit period.

Also fix the ages old copy-paste error in the very stressed comment,
it's referencing the registers used in the PL010 driver rather than
the PL011 ones.

Signed-off-by: Guillaume Jaunet <guillaume.jaunet@stericsson.com>
Signed-off-by: Christophe Arnal <christophe.arnal@stericsson.com>
Signed-off-by: Matthias Locher <matthias.locher@stericsson.com>
Signed-off-by: Rajanikanth HV <rajanikanth.hv@stericsson.com>
Cc: stable <stable@vger.kernel.org>
Cc: Bibek Basu <bibek.basu@stericsson.com>
Cc: Par-Gunnar Hjalmdahl <par-gunnar.hjalmdahl@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-26 13:41:05 -07:00
..
hvc tty/serial: remove CONFIG_EXPERIMENTAL dependencies 2012-09-18 16:19:27 +01:00
ipwireless tty: ipwireless: check ppp register worked 2012-09-17 04:45:30 -07:00
serial serial: pl011: handle corruption at high clock speeds 2012-09-26 13:41:05 -07:00
vt tty vt: Fix line garbage in virtual console on command line edition 2012-09-10 16:35:46 -07: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
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
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_tracesink.c
n_tracesink.h
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 sysrq: use SEND_SIG_FORCED instead of force_sig() 2012-04-05 15:25:50 -07:00
tty_audit.c
tty_buffer.c tty: hold lock across tty buffer finding and buffer filling 2012-04-09 12:12:45 -07:00
tty_io.c tty_register_device_attr updated for tty-next 2012-09-06 14:40:18 -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 tty: localise the lock 2012-08-10 12:55:47 -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