kernel-fxtec-pro1x/drivers/tty/serial
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
..
8250 serial: set correct baud_base for EXSYS EX-41092 Dual 16950 2012-09-26 13:35:12 -07:00
cpm_uart Powerpc 8xx CPM_UART setting MAXIDL register proportionaly to baud rate 2012-09-26 13:39:39 -07:00
jsm tty: move the termios object into the tty 2012-07-16 13:00:41 -07:00
21285.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
68328serial.c TTY: use tty_port_link_device 2012-08-13 16:50:19 -07:00
altera_jtaguart.c
altera_uart.c tty: serial: altera_uart: Use platform_{get,set}_drvdata 2012-09-05 12:33:39 -07:00
amba-pl010.c drivers/tty/serial/amba-pl0{10,11}.c: use clk_prepare_enable and clk_disable_unprepare 2012-09-05 12:33:39 -07:00
amba-pl011.c serial: pl011: handle corruption at high clock speeds 2012-09-26 13:41:05 -07:00
apbuart.c
apbuart.h
ar933x_uart.c
atmel_serial.c tty/serial: atmel_serial: fix RS485 half-duplex problem 2012-04-09 10:30:39 -07:00
bcm63xx_uart.c
bfin_sport_uart.c
bfin_sport_uart.h
bfin_uart.c tty: move the termios object into the tty 2012-07-16 13:00:41 -07:00
clps711x.c ARM: clps711x: Using a single definition for the PHYS and VIRT registers offset 2012-05-11 16:18:01 +02:00
crisv10.c TTY: use tty_port_link_device 2012-08-13 16:50:19 -07:00
crisv10.h
dz.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dz.h
efm32-uart.c
icom.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
icom.h
ifx6x60.c Merge 3.6-rc3 into tty-next 2012-08-27 07:13:33 -07:00
ifx6x60.h
imx.c serial: imx: remove null check of sport in suspend/resume function 2012-09-21 09:53:16 -07:00
ioc3_serial.c TTY: serial: move the dereference below the NULL test 2012-09-10 16:33:02 -07:00
ioc4_serial.c TTY: serial: move the dereference below the NULL test 2012-09-10 16:33:02 -07:00
ip22zilog.c
ip22zilog.h
Kconfig tty/serial: put (EXPERIMENTAL) marking back on N_GSM and SERIAL_IFX6X60 2012-09-18 17:17:56 +01:00
kgdboc.c
lantiq.c SERIAL: MIPS: lantiq: implement OF support 2012-05-21 14:31:54 +01:00
lpc32xx_hs.c serial: Add driver for LPC32xx High Speed UARTs 2012-06-12 15:48:01 -07:00
m32r_sio.c m32r_sio: remove dependency on struct serial_uart_config 2012-09-05 13:15:07 -07:00
m32r_sio.h
m32r_sio_reg.h
Makefile serial: New serial driver SCCNXP 2012-09-05 13:21:46 -07:00
max310x.c tty: serial: max310x: Remove explicit use of devm_kfree 2012-09-05 12:33:40 -07:00
max3100.c tty: serial: max3100: Fix error case 2012-09-17 04:45:29 -07:00
mcf.c
mfd.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
mpc52xx_uart.c tty: serial: mpc5xxx: add support for mark/space parity 2012-09-05 12:41:57 -07:00
mpsc.c
mrst_max3110.c
mrst_max3110.h
msm_serial.c msm_serial: fix clock rate on DMA-based uarts 2012-09-10 16:33:36 -07:00
msm_serial.h
msm_serial_hs.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
msm_smd_tty.c TTY: use tty_port_register_device 2012-08-13 16:50:19 -07:00
mux.c
mxs-auart.c serial: mxs-auart: put the device in the error path 2012-09-11 12:21:33 -07:00
netx-serial.c
nwpserial.c
of_serial.c serial/of-serial: Add LPC3220 standard UART compatible string 2012-07-26 13:37:02 -07:00
omap-serial.c serial: omap: fix the reciever line error case 2012-09-26 13:33:37 -07:00
pch_uart.c pch_uart: check kzalloc result in dma_handle_tx() 2012-08-16 12:10:16 -07:00
pmac_zilog.c pmac_zilog,kdb: Fix console poll hook to return instead of loop 2012-08-16 12:20:20 -07:00
pmac_zilog.h
pnx8xxx_uart.c
pxa.c serial: pxa: add spin lock for console write 2012-06-15 15:04:49 -07:00
sa1100.c ARM: 7342/2: sa1100: prepare for sparse irq conversion 2012-03-25 23:57:20 +01:00
samsung.c serial: samsung: Add poll_get_char & poll_put_char 2012-09-26 13:40:12 -07:00
samsung.h
sb1250-duart.c SERIAL: MIPS Swarm sb1250-duart.c driver needs module.h 2012-05-15 17:48:50 +02:00
sc26xx.c serial: Add note about migration to driver SCCNXP 2012-09-05 13:24:40 -07:00
sccnxp.c serial: sccnxp: Make 'default' choice in switch last 2012-09-26 13:41:05 -07:00
serial_core.c serial_core: Fix race in uart_handle_dcd_change 2012-09-21 09:51:09 -07:00
serial_ks8695.c
serial_txx9.c serial: fix serial_txx9.c build warning/typo 2012-06-12 15:41:18 -07:00
sh-sci.c serial: sh-sci: fix compilation breakage, when DMA is enabled 2012-08-01 13:48:54 +09:00
sh-sci.h serial: sh-sci: use serial_port_in/out vs sci_in/out. 2012-03-30 19:50:15 +09:00
sirfsoc_uart.c drivers/tty/serial/sirfsoc_uart.c: drop frees of devm_ alloc'd data 2012-09-05 12:41:57 -07:00
sirfsoc_uart.h
sn_console.c Miscellaneous Itanium patches 2012-03-23 17:19:37 -07:00
suncore.c
sunhv.c Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
sunsab.c Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
sunsab.h
sunsu.c serial: diminish usage of struct serial_uart_config 2012-09-05 13:15:07 -07:00
sunzilog.c serial/sunzilog: fix keyboard on SUN SPARCstation 2012-04-04 00:37:10 -07:00
sunzilog.h
timbuart.c
timbuart.h
uartlite.c uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op 2012-07-19 10:39:42 -04:00
ucc_uart.c
vr41xx_siu.c
vt8500_serial.c tty: serial: vt8500: fix annotations for probe/remove 2012-03-12 10:21:55 -07:00
xilinx_uartps.c
zs.c SERIAL: MIPS DECstation zs.c driver needs module.h 2012-05-15 17:48:50 +02:00
zs.h