serial: Introduce UPSTAT_SYNC_FIFO for synchronised FIFOs
authorJeremy Kerr <jk@ozlabs.org>
Tue, 27 Mar 2018 03:48:24 +0000 (11:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Apr 2018 08:16:50 +0000 (10:16 +0200)
This change adds a flag to indicate that a UART is has an external means
of synchronising its FIFO, without needing CTSRTS or XON/XOFF.

This allows us to use the throttle/unthrottle callbacks, without having
to claim other methods of flow control.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Tested-by: Eddie James <eajames@linux.vnet.ibm.com>
Tested-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_core.c
include/linux/serial_core.h

index 0466f9f..c47158c 100644 (file)
@@ -674,8 +674,8 @@ static void uart_send_xchar(struct tty_struct *tty, char ch)
 static void uart_throttle(struct tty_struct *tty)
 {
        struct uart_state *state = tty->driver_data;
+       upstat_t mask = UPSTAT_SYNC_FIFO;
        struct uart_port *port;
-       upstat_t mask = 0;
 
        port = uart_port_ref(state);
        if (!port)
@@ -703,8 +703,8 @@ static void uart_throttle(struct tty_struct *tty)
 static void uart_unthrottle(struct tty_struct *tty)
 {
        struct uart_state *state = tty->driver_data;
+       upstat_t mask = UPSTAT_SYNC_FIFO;
        struct uart_port *port;
-       upstat_t mask = 0;
 
        port = uart_port_ref(state);
        if (!port)
index 1d35610..d224961 100644 (file)
@@ -233,6 +233,7 @@ struct uart_port {
 #define UPSTAT_AUTORTS         ((__force upstat_t) (1 << 2))
 #define UPSTAT_AUTOCTS         ((__force upstat_t) (1 << 3))
 #define UPSTAT_AUTOXOFF                ((__force upstat_t) (1 << 4))
+#define UPSTAT_SYNC_FIFO       ((__force upstat_t) (1 << 5))
 
        int                     hw_stopped;             /* sw-assisted CTS flow state */
        unsigned int            mctrl;                  /* current modem ctrl settings */