linux/drivers/tty/serial/8250
Tim Kryger 33acbb8269 serial: 8250_dw: Report CTS asserted for auto flow
When a serial port is configured for RTS/CTS flow control, serial core
will disable the transmitter if it observes CTS is de-asserted. This is
perfectly reasonable and appropriate when the UART lacks the ability to
automatically perform CTS flow control.

However, if the UART hardware can manage flow control automatically, it
is important that software not get involved.  When the DesignWare UART
enables 16C750 style auto-RTS/CTS it stops generating interrupts for
changes in CTS state so software mostly stays out of the way.  However,
it does report the true state of CTS in the MSR so software may notice
it is de-asserted and respond by improperly disabling the transmitter.
Once this happens the transmitter will be blocked forever.

To avoid this situation, we simply lie to the 8250 and serial core by
reporting that CTS is asserted whenever auto-RTS/CTS mode is enabled.

Signed-off-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Matt Porter <matt.porter@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-19 17:12:21 -07:00
..
8250_accent.c
8250_acorn.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
8250_boca.c
8250_core.c serial: use dev_get_platdata() 2013-07-31 17:56:15 -07:00
8250_dma.c serial: 8250_dma: Provide default slave configuration parameters 2013-04-11 13:20:19 -07:00
8250_dw.c serial: 8250_dw: Report CTS asserted for auto flow 2013-08-19 17:12:21 -07:00
8250_early.c serial: 8250_early: fix comparison of different types 2013-08-12 11:35:31 -07:00
8250_em.c serial8250-em: Convert to devm_* managed helpers 2013-07-26 16:20:24 -07:00
8250_exar_st16c554.c
8250_fourport.c
8250_fsl.c
8250_gsc.c parisc: Fix interrupt routing for C8000 serial ports 2013-07-31 23:42:32 +02:00
8250_hp300.c tty: remove use of __devexit 2012-11-21 15:27:46 -08:00
8250_hub6.c
8250_pci.c serial: 8250_pci: use local device ID for ADDI-DATA APCI-7800 2013-07-26 16:10:53 -07:00
8250_pnp.c Revert "tty/8250_pnp: serial port detection regression since v3.7" 2013-04-08 11:30:04 -07:00
8250.h serial: 8250: remove a few lines of dead code 2013-03-25 16:36:48 -07:00
Kconfig 8250_pci: improve code comments and Kconfig help 2013-07-26 15:53:34 -07:00
Makefile TTY: 8250, revert module name change 2013-03-25 16:26:23 -07:00
serial_cs.c drivers/tty: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:26:38 -07:00