linux/drivers/tty
Linus Walleij 9b96fbacda serial: PL011: clear pending interrupts
Chanho Min reported that when the boot loader transfers
control to the kernel, there may be pending interrupts
causing the UART to lock up in an eternal loop trying to
pick tokens from the FIFO (since the RX interrupt flag
indicates there are tokens) while in practice there are
no tokens - in fact there is only a pending IRQ flag.

This patch address the issue with a combination of two
patches suggested by Russell King that clears and mask
all interrupts at probe() and clears any pending error
and RX interrupts at port startup time.

We suspect the spurious interrupts are a side-effect of
switching the UART from FIFO to non-FIFO mode.

Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
Reported-by: Chanho Min <chanho0207@gmail.com>
Suggested-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Jong-Sung Kim <neidhard.kim@lge.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-03-14 12:27:39 -07:00
..
hvc TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
ipwireless TTY: ipwireless, fix tty->index handling 2012-03-08 11:42:21 -08:00
serial serial: PL011: clear pending interrupts 2012-03-14 12:27:39 -07:00
vt vt: NULL dereference in vt_do_kdsk_ioctl() 2012-03-12 10:21:55 -07:00
amiserial.c TTY: amiserial, use tty_port_close_start 2012-03-08 12:50:02 -08:00
bfin_jtag_comm.c TTY: remove re-assignments to tty_driver members 2012-03-08 11:37:58 -08:00
cyclades.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
ehv_bytechan.c TTY: remove re-assignments to tty_driver members 2012-03-08 11:37:58 -08:00
isicom.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
Kconfig tty/powerpc: early udbg consoles can't be modules 2012-02-24 13:50:46 -08:00
Makefile
moxa.c tty: moxa: fix bit test in moxa_start() 2012-03-08 12:55:48 -08:00
moxa.h
mxser.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
mxser.h
n_gsm.c TTY: remove re-assignments to tty_driver members 2012-03-08 11:37:58 -08:00
n_hdlc.c
n_r3964.c
n_tracerouter.c
n_tracesink.c
n_tracesink.h
n_tty.c
nozomi.c TTY: remove re-assignments to tty_driver members 2012-03-08 11:37:58 -08:00
pty.c TTY: remove re-assignments to tty_driver members 2012-03-08 11:37:58 -08:00
rocket_int.h
rocket.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
rocket.h
synclink_gt.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
synclink.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
synclinkmp.c TTY: remove unneeded tty->index checks 2012-03-08 11:42:21 -08:00
sysrq.c vt:tackle kbd_table 2012-03-08 10:50:35 -08:00
tty_audit.c
tty_buffer.c
tty_io.c TTY: remove tty driver re-set from tty_reopen 2012-03-08 11:38:50 -08:00
tty_ioctl.c
tty_ldisc.c
tty_mutex.c
tty_port.c TTY: fix UV serial console regression 2012-01-24 12:55:37 -08:00