linux/drivers/tty/serial
Anirudha Sarangi c8dbdc842d serial: xuartps: Rewrite the interrupt handling logic
The existing interrupt handling logic has following issues.
- Upon a parity error with default configuration, the control
  never comes out of the ISR thereby hanging Linux.
- The error handling logic around framing and parity error are buggy.
  There are chances that the errors will never be captured.
This patch ensures that the status registers are cleared on all cases so
that a hang situation never arises.

Signed-off-by: Anirudha Sarangi <anirudh@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
[stelford@cadence.com: cherry picked from
https://github.com/Xilinx/linux-xlnx commit
ac297e20d399850d7a8e373b6eccf2e183c15165 with manual conflict resolution]
Signed-off-by: Scott Telford <stelford@cadence.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-27 12:54:41 +02:00
..
8250 tty/serial/8250: Touch NMI watchdog in wait_for_xmitr 2016-09-22 11:45:08 +02:00
cpm_uart
jsm tty: serial: jsm_tty: constify uart_ops structures 2016-09-02 15:01:16 +02:00
21285.c
altera_jtaguart.c serial: altera: constify uart_ops structures 2016-09-02 15:01:16 +02:00
altera_uart.c serial: altera: constify uart_ops structures 2016-09-02 15:01:16 +02:00
amba-pl010.c
amba-pl011.c tty: amba-pl011: uart_amba_port is not available with earlycon function 2016-09-22 11:45:08 +02:00
amba-pl011.h tty: amba-pl011: clean up LCR register offsets 2015-12-13 19:59:48 -08:00
apbuart.c
apbuart.h
ar933x_uart.c tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
arc_uart.c serial/arc: constify uart_ops structures 2016-09-01 21:05:41 +02:00
atmel_serial.c tty/serial: atmel: fix fractional baud rate computation 2016-09-27 12:54:03 +02:00
bcm63xx_uart.c serial/bcm63xx_uart: constify uart_ops structures 2016-09-02 15:01:16 +02:00
bfin_sport_uart.c
bfin_sport_uart.h
bfin_uart.c serial:bfin-uart:Remove 'struct timeval' 2015-12-13 19:59:48 -08:00
clps711x.c serial: clps711x: Changing the compatibility string to match with the smallest supported chip 2016-07-06 17:38:16 +02:00
crisv10.c tty: Replace ASYNC_INITIALIZED bit and update atomically 2016-04-30 09:26:55 -07:00
crisv10.h
digicolor-usart.c tty/serial: digicolor: Fix bad usage of IS_ERR_VALUE 2016-02-14 17:39:36 -08:00
dz.c
dz.h
earlycon-arm-semihost.c tty/serial: mark __init early_smh_setup() static 2016-09-02 15:03:35 +02:00
earlycon.c serial: earlycon: Extend earlycon command line option to support 64-bit addresses 2016-09-02 15:03:35 +02:00
efm32-uart.c
etraxfs-uart.c
fsl_lpuart.c tty: serial: fsl_lpuart: use GFP_ATOMIC under spin lock 2016-09-15 12:35:49 +02:00
icom.c
icom.h
ifx6x60.c TTY: serial/ifx6x60, initialize more 2016-04-30 09:26:55 -07:00
ifx6x60.h
imx.c serial: imx: Replace dmaengine old API 2016-09-15 12:35:49 +02:00
ioc3_serial.c
ioc4_serial.c
ip22zilog.c
ip22zilog.h
Kconfig serial: Make SERIAL_MPS2_UART depend on ARCH_MPS2 2016-06-25 10:40:33 -07:00
kgdb_nmi.c
kgdboc.c
lantiq.c
lpc32xx_hs.c
m32r_sio.c serial: m32r_sio: make it explicitly non-modular 2016-06-25 14:00:06 -07:00
m32r_sio_reg.h
Makefile TTY and Serial driver update for 4.7-rc1 2016-05-20 20:57:27 -07:00
max310x.c serial: max310x: Set IRQF_TRIGGER_FALLING flag when dev.of_node is not NULL 2016-09-15 12:35:49 +02:00
max3100.c tty: serial: constify uart_ops structures 2016-09-02 15:01:16 +02:00
mcf.c
men_z135_uart.c tty: serial: constify uart_ops structures 2016-09-02 15:01:16 +02:00
meson_uart.c tty: serial: meson: Implement earlycon support 2016-04-30 09:26:55 -07:00
mpc52xx_uart.c tty: serial: constify psc_ops structs 2016-02-06 22:31:47 -08:00
mps2-uart.c serial: mps2-uart: make driver explicitly non-modular 2016-06-25 14:01:57 -07:00
mpsc.c TTY: serial/mpsc, remove unused fields 2016-02-06 22:16:21 -08:00
msm_serial.c tty: serial: msm: fix definition of msm_stop_dma 2016-06-25 10:23:54 -07:00
mux.c
mvebu-uart.c serial: mvebu-uart: free the IRQ in ->shutdown() 2016-06-25 14:00:06 -07:00
mxs-auart.c serial: mxs-auart: Fix missing clk_disable_unprepare() on error in mxs_get_clks() 2016-09-22 11:45:08 +02:00
netx-serial.c
omap-serial.c Merge 4.5-rc4 into tty-next 2016-02-14 14:36:04 -08:00
pch_uart.c tty: serial: constify uart_ops structures 2016-09-02 15:01:16 +02:00
pic32_uart.c serial: pic32_uart: Fix double free of 'sport->irq_fault_name'. 2016-06-25 13:50:53 -07:00
pic32_uart.h serial: pic32_uart: Add PIC32 UART driver 2016-05-13 14:01:56 +02:00
pmac_zilog.c TTY: serial, handle platform_get_irq retval properly 2016-06-25 09:01:52 -07:00
pmac_zilog.h
pnx8xxx_uart.c
pxa.c serial: pxa: make it explicitly non-modular 2016-06-25 14:00:06 -07:00
rp2.c
sa1100.c
samsung.c serial: samsung: Register cpufreq notifier only on S3C24xx 2016-08-31 15:39:58 +02:00
samsung.h serial: samsung: Register cpufreq notifier only on S3C24xx 2016-08-31 15:39:58 +02:00
sb1250-duart.c
sc16is7xx.c sc16is7xx: make sure device is in suspend once probed 2016-08-31 16:05:26 +02:00
sccnxp.c
serial-tegra.c TTY: serial, handle platform_get_irq retval properly 2016-06-25 09:01:52 -07:00
serial_core.c serial: core: fix potential NULL pointer dereference 2016-09-15 12:35:49 +02:00
serial_ks8695.c serial: Fix ASYNC_* => UPF_* flags misuse 2016-01-28 14:17:42 -08:00
serial_mctrl_gpio.c serial: mctrl_gpio: enable API usage only for initialized mctrl_gpios struct 2016-06-25 14:30:42 -07:00
serial_mctrl_gpio.h serial: mctrl_gpio: add modem control read routine 2016-06-25 14:30:42 -07:00
serial_txx9.c
sh-sci.c tty: serial: constify uart_ops structures 2016-09-02 15:01:16 +02:00
sh-sci.h serial: sh-sci: Clear (H)SCIF timeout and overrun during reset 2016-06-25 09:09:53 -07:00
sirfsoc_uart.c serial: sirf: Use generic uart-has-rtscts DT property 2016-04-30 09:26:55 -07:00
sirfsoc_uart.h serial: sirf: make fifo functions static 2016-06-25 14:01:57 -07:00
sn_console.c
sprd_serial.c remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
st-asc.c serial: st-asc: constify uart_ops structures 2016-09-02 15:01:16 +02:00
stm32-usart.c serial: stm32: use mapbase instead of membase for DMA 2016-09-27 12:54:03 +02:00
stm32-usart.h serial: stm32: adding dma support 2016-09-22 11:48:55 +02:00
suncore.c
sunhv.c sparc: serial: sunhv: fix a double lock bug 2016-07-27 22:54:52 -07:00
sunsab.c
sunsab.h
sunsu.c
sunzilog.c
sunzilog.h
tilegx.c
timbuart.c tty: serial: constify uart_ops structures 2016-09-02 15:01:16 +02:00
timbuart.h
uartlite.c serial-uartlite: constify uart_ops structures 2016-09-02 15:01:16 +02:00
ucc_uart.c QE-UART: add "fsl,t1040-ucc-uart" to of_device_id 2016-05-01 13:55:12 -07:00
vr41xx_siu.c
vt8500_serial.c serial: vt8500_serial: Fix a parameter of find_first_zero_bit. 2016-08-31 15:42:28 +02:00
xilinx_uartps.c serial: xuartps: Rewrite the interrupt handling logic 2016-09-27 12:54:41 +02:00
zs.c serial: zs: Fix a transmit lockup in console output 2016-02-06 23:13:30 -08:00
zs.h