linux_dsm_epyc7002/drivers/tty/serial/8250
Rautkoski Kimmo EXT db1b5bc047 serial: 8250: Fix TX interrupt handling condition
Interrupt handler checked THRE bit (transmitter holding register
empty) in LSR to detect if TX fifo is empty.
In case when there is only receive interrupts the TX handling
got called because THRE bit in LSR is set when there is no
transmission (FIFO empty). TX handling caused TX stop, which in
RS-485 half-duplex mode actually resets receiver FIFO. This is not
desired during reception because of possible data loss.

The fix is to check if THRI is set in IER in addition of the TX
fifo status. THRI in IER is set when TX is started and cleared
when TX is stopped.
This ensures that TX handling is only called when there is really
transmission on going and an interrupt for THRE and not when there
are only RX interrupts.

Signed-off-by: Kimmo Rautkoski <ext-kimmo.rautkoski@vaisala.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-10 19:14:01 +02:00
..
8250_accent.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_acorn.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_aspeed_vuart.c serial: 8250: Process sysrq at port unlock time 2018-11-09 09:07:18 -08:00
8250_bcm2835aux.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_boca.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_core.c serial: 8250: Fix serial8250 initialization crash 2019-01-18 13:03:47 +01:00
8250_dma.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_dw.c dmaengine: idma64: Use actual device for DMA transfers 2019-03-21 19:48:26 +05:30
8250_early.c serial: 8250_early: Setup divider when uartclk is passed 2018-04-25 14:56:12 +02:00
8250_em.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
8250_exar_st16c554.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_exar.c serial: 8250_exar: Adjust IOT2000 matching 2019-04-25 11:37:41 +02:00
8250_fintek.c serial: 8250_fintek: Make fintek_8250_set_termios static 2019-03-28 00:29:03 +09:00
8250_fourport.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_fsl.c serial: 8250: Rate limit serial port rx interrupts during input overruns 2018-12-17 16:02:57 +01:00
8250_gsc.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_hp300.c tty: add SPDX identifiers to all remaining files in drivers/tty/ 2017-11-08 13:08:12 +01:00
8250_hub6.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_ingenic.c Serial: Ingenic: Add support for the X1000. 2019-01-30 09:31:30 +01:00
8250_lpc18xx.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_lpss.c dmaengine: dw: Remove misleading is_private property 2019-01-07 17:57:13 +05:30
8250_men_mcb.c tty: fix up a few remaining files without SPDX identifiers 2019-04-04 18:48:43 +02:00
8250_mid.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_moxa.c tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
8250_mtk.c uart: mediatek: support Rx in-band wakeup 2019-06-10 19:10:27 +02:00
8250_of.c tty: serial: 8250-of: Do not warn on deferred probe 2019-06-10 19:12:09 +02:00
8250_omap.c serial: 8250_omap: Use clk_get_rate() to obtain fclk frequency 2019-01-18 11:23:00 +01:00
8250_pci.c serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup() 2019-02-13 19:48:57 +01:00
8250_pnp.c tty: serial: 8250: Fix type field in format string 2019-05-21 12:12:03 +02:00
8250_port.c serial: 8250: Fix TX interrupt handling condition 2019-06-10 19:14:01 +02:00
8250_pxa.c serial: 8250_pxa: honor the port number from devicetree 2019-02-26 12:30:44 +01:00
8250_uniphier.c serial: 8250_uniphier: add auto-flow-control support 2018-10-02 13:38:58 -07:00
8250.h tty: serial: Remove redundant license text 2017-11-08 13:08:12 +01:00
Kconfig tty: add SPDX identifiers to Kconfig and Makefiles 2019-04-04 18:48:43 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
serial_cs.c drivers/tty: add error handling for pcmcia_loop_config 2018-06-28 21:23:44 +09:00