serial: Introduce UPSTAT_SYNC_FIFO for synchronised FIFOs
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d6810a82c7
commit
c5f78b1fe4
@@ -674,8 +674,8 @@ static void uart_send_xchar(struct tty_struct *tty, char ch)
|
|||||||
static void uart_throttle(struct tty_struct *tty)
|
static void uart_throttle(struct tty_struct *tty)
|
||||||
{
|
{
|
||||||
struct uart_state *state = tty->driver_data;
|
struct uart_state *state = tty->driver_data;
|
||||||
|
upstat_t mask = UPSTAT_SYNC_FIFO;
|
||||||
struct uart_port *port;
|
struct uart_port *port;
|
||||||
upstat_t mask = 0;
|
|
||||||
|
|
||||||
port = uart_port_ref(state);
|
port = uart_port_ref(state);
|
||||||
if (!port)
|
if (!port)
|
||||||
@@ -703,8 +703,8 @@ static void uart_throttle(struct tty_struct *tty)
|
|||||||
static void uart_unthrottle(struct tty_struct *tty)
|
static void uart_unthrottle(struct tty_struct *tty)
|
||||||
{
|
{
|
||||||
struct uart_state *state = tty->driver_data;
|
struct uart_state *state = tty->driver_data;
|
||||||
|
upstat_t mask = UPSTAT_SYNC_FIFO;
|
||||||
struct uart_port *port;
|
struct uart_port *port;
|
||||||
upstat_t mask = 0;
|
|
||||||
|
|
||||||
port = uart_port_ref(state);
|
port = uart_port_ref(state);
|
||||||
if (!port)
|
if (!port)
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ struct uart_port {
|
|||||||
#define UPSTAT_AUTORTS ((__force upstat_t) (1 << 2))
|
#define UPSTAT_AUTORTS ((__force upstat_t) (1 << 2))
|
||||||
#define UPSTAT_AUTOCTS ((__force upstat_t) (1 << 3))
|
#define UPSTAT_AUTOCTS ((__force upstat_t) (1 << 3))
|
||||||
#define UPSTAT_AUTOXOFF ((__force upstat_t) (1 << 4))
|
#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 */
|
int hw_stopped; /* sw-assisted CTS flow state */
|
||||||
unsigned int mctrl; /* current modem ctrl settings */
|
unsigned int mctrl; /* current modem ctrl settings */
|
||||||
|
|||||||
Reference in New Issue
Block a user