OrangePi_CM5/drivers/tty
Daniel Starke bf98302e68 tty: n_gsm: fix software flow control handling
commit f4f7d63287217ba25e5c80f5faae5e4f7118790e upstream.

n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010.
See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516
The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to
the newer 27.010 here. Chapter 5.4.8.1 states that XON/XOFF characters
shall be used instead of Fcon/Fcoff command in advanced option mode to
handle flow control. Chapter 5.4.8.2 describes how XON/XOFF characters
shall be handled. Basic option mode only used Fcon/Fcoff commands and no
XON/XOFF characters. These are treated as data bytes here.
The current implementation uses the gsm_mux field 'constipated' to handle
flow control from the remote peer and the gsm_dlci field 'constipated' to
handle flow control from each DLCI. The later is unrelated to this patch.
The gsm_mux field is correctly set for Fcon/Fcoff commands in
gsm_control_message(). However, the same is not true for XON/XOFF
characters in gsm1_receive().
Disable software flow control handling in the tty to allow explicit
handling by n_gsm.
Add the missing handling in advanced option mode for gsm_mux in
gsm1_receive() to comply with the standard.

This patch depends on the following commit:
Commit 8838b2af23ca ("tty: n_gsm: fix SW flow control encoding/handling")

Fixes: e1eaea46bb ("tty: n_gsm line discipline")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
Link: https://lore.kernel.org/r/20220422071025.5490-3-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-09 09:05:08 +02:00
..
hvc tty: hvc: fix return value of __setup handler 2022-04-08 14:40:28 +02:00
ipwireless
…
serdev
…
serial serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device 2022-05-09 09:04:59 +02:00
vt vt_ioctl: add array_index_nospec to VT_ACTIVATE 2022-02-16 12:54:27 +01:00
Kconfig
…
Makefile
…
amiserial.c
…
cyclades.c
…
ehv_bytechan.c
…
goldfish.c
…
isicom.c
…
mips_ejtag_fdc.c
…
moxa.c
…
moxa.h
…
mxser.c mxser: fix xmit_buf leak in activate when LSR == 0xff 2022-04-08 14:40:23 +02:00
mxser.h
…
n_gsm.c tty: n_gsm: fix software flow control handling 2022-05-09 09:05:08 +02:00
n_hdlc.c tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous 2021-12-22 09:30:56 +01:00
n_null.c
…
n_r3964.c
…
n_tracerouter.c
…
n_tracesink.c
…
n_tracesink.h
…
n_tty.c tty: n_tty: do not look ahead for EOL character past the end of the buffer 2022-02-23 12:01:04 +01:00
nozomi.c
…
pty.c
…
rocket.c
…
rocket.h
…
rocket_int.h
…
synclink.c
…
synclink_gt.c tty: synclink_gt: rename a conflicting function name 2021-09-30 10:11:03 +02:00
synclinkmp.c
…
sysrq.c
…
tty_audit.c
…
tty_baudrate.c
…
tty_buffer.c tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc 2021-11-26 10:39:10 +01:00
tty_io.c
…
tty_ioctl.c
…
tty_jobctrl.c
…
tty_ldisc.c
…
tty_ldsem.c
…
tty_mutex.c
…
tty_port.c
…
ttynull.c
…
vcc.c
…