TTY/Serial fixes for 5.15-rc3
Here are 4 small tty/serial driver fixes for 5.15-rc3. They include: - remove an export now that no one is using it anymore - mvebu-uart tx_empty callback fix - 8250_omap bugfix - synclink_gt build fix All of these have been in linux-next for a while with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCYU8tcg8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ylBywCgwEg0W8i2+Ex/cOvrNdDil+s4zlcAnReF8jjs gmuO82kJpw6Ns2UpPFZs =cEBz -----END PGP SIGNATURE----- Merge tag 'tty-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are four small tty/serial driver fixes for 5.15-rc3. They include: - remove an export now that no one is using it anymore - mvebu-uart tx_empty callback fix - 8250_omap bugfix - synclink_gt build fix All of these have been in linux-next for a while with no reported issues" * tag 'tty-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: tty: unexport tty_ldisc_release tty: synclink_gt: rename a conflicting function name serial: mvebu-uart: fix driver's tx_empty callback serial: 8250: 8250_omap: Fix RX_LVL register offset
This commit is contained in:
Коммит
f9d4be2507
|
@ -106,7 +106,7 @@
|
|||
#define UART_OMAP_EFR2_TIMEOUT_BEHAVE BIT(6)
|
||||
|
||||
/* RX FIFO occupancy indicator */
|
||||
#define UART_OMAP_RX_LVL 0x64
|
||||
#define UART_OMAP_RX_LVL 0x19
|
||||
|
||||
struct omap8250_priv {
|
||||
int line;
|
||||
|
|
|
@ -163,7 +163,7 @@ static unsigned int mvebu_uart_tx_empty(struct uart_port *port)
|
|||
st = readl(port->membase + UART_STAT);
|
||||
spin_unlock_irqrestore(&port->lock, flags);
|
||||
|
||||
return (st & STAT_TX_FIFO_EMP) ? TIOCSER_TEMT : 0;
|
||||
return (st & STAT_TX_EMP) ? TIOCSER_TEMT : 0;
|
||||
}
|
||||
|
||||
static unsigned int mvebu_uart_get_mctrl(struct uart_port *port)
|
||||
|
|
|
@ -438,8 +438,8 @@ static void reset_tbufs(struct slgt_info *info);
|
|||
static void tdma_reset(struct slgt_info *info);
|
||||
static bool tx_load(struct slgt_info *info, const char *buf, unsigned int count);
|
||||
|
||||
static void get_signals(struct slgt_info *info);
|
||||
static void set_signals(struct slgt_info *info);
|
||||
static void get_gtsignals(struct slgt_info *info);
|
||||
static void set_gtsignals(struct slgt_info *info);
|
||||
static void set_rate(struct slgt_info *info, u32 data_rate);
|
||||
|
||||
static void bh_transmit(struct slgt_info *info);
|
||||
|
@ -720,7 +720,7 @@ static void set_termios(struct tty_struct *tty, struct ktermios *old_termios)
|
|||
if ((old_termios->c_cflag & CBAUD) && !C_BAUD(tty)) {
|
||||
info->signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
}
|
||||
|
||||
|
@ -730,7 +730,7 @@ static void set_termios(struct tty_struct *tty, struct ktermios *old_termios)
|
|||
if (!C_CRTSCTS(tty) || !tty_throttled(tty))
|
||||
info->signals |= SerialSignal_RTS;
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
}
|
||||
|
||||
|
@ -1181,7 +1181,7 @@ static inline void line_info(struct seq_file *m, struct slgt_info *info)
|
|||
|
||||
/* output current serial signal states */
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
|
||||
stat_buf[0] = 0;
|
||||
|
@ -1281,7 +1281,7 @@ static void throttle(struct tty_struct * tty)
|
|||
if (C_CRTSCTS(tty)) {
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
info->signals &= ~SerialSignal_RTS;
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
}
|
||||
}
|
||||
|
@ -1306,7 +1306,7 @@ static void unthrottle(struct tty_struct * tty)
|
|||
if (C_CRTSCTS(tty)) {
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
info->signals |= SerialSignal_RTS;
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
}
|
||||
}
|
||||
|
@ -1477,7 +1477,7 @@ static int hdlcdev_open(struct net_device *dev)
|
|||
|
||||
/* inform generic HDLC layer of current DCD status */
|
||||
spin_lock_irqsave(&info->lock, flags);
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock, flags);
|
||||
if (info->signals & SerialSignal_DCD)
|
||||
netif_carrier_on(dev);
|
||||
|
@ -2229,7 +2229,7 @@ static void isr_txeom(struct slgt_info *info, unsigned short status)
|
|||
if (info->params.mode != MGSL_MODE_ASYNC && info->drop_rts_on_tx_done) {
|
||||
info->signals &= ~SerialSignal_RTS;
|
||||
info->drop_rts_on_tx_done = false;
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
}
|
||||
|
||||
#if SYNCLINK_GENERIC_HDLC
|
||||
|
@ -2394,7 +2394,7 @@ static void shutdown(struct slgt_info *info)
|
|||
|
||||
if (!info->port.tty || info->port.tty->termios.c_cflag & HUPCL) {
|
||||
info->signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
}
|
||||
|
||||
flush_cond_wait(&info->gpio_wait_q);
|
||||
|
@ -2422,7 +2422,7 @@ static void program_hw(struct slgt_info *info)
|
|||
else
|
||||
async_mode(info);
|
||||
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
|
||||
info->dcd_chkcount = 0;
|
||||
info->cts_chkcount = 0;
|
||||
|
@ -2430,7 +2430,7 @@ static void program_hw(struct slgt_info *info)
|
|||
info->dsr_chkcount = 0;
|
||||
|
||||
slgt_irq_on(info, IRQ_DCD | IRQ_CTS | IRQ_DSR | IRQ_RI);
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
|
||||
if (info->netcount ||
|
||||
(info->port.tty && info->port.tty->termios.c_cflag & CREAD))
|
||||
|
@ -2667,7 +2667,7 @@ static int wait_mgsl_event(struct slgt_info *info, int __user *mask_ptr)
|
|||
spin_lock_irqsave(&info->lock,flags);
|
||||
|
||||
/* return immediately if state matches requested events */
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
s = info->signals;
|
||||
|
||||
events = mask &
|
||||
|
@ -3085,7 +3085,7 @@ static int tiocmget(struct tty_struct *tty)
|
|||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
|
||||
result = ((info->signals & SerialSignal_RTS) ? TIOCM_RTS:0) +
|
||||
|
@ -3124,7 +3124,7 @@ static int tiocmset(struct tty_struct *tty,
|
|||
info->signals &= ~SerialSignal_DTR;
|
||||
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
return 0;
|
||||
}
|
||||
|
@ -3135,7 +3135,7 @@ static int carrier_raised(struct tty_port *port)
|
|||
struct slgt_info *info = container_of(port, struct slgt_info, port);
|
||||
|
||||
spin_lock_irqsave(&info->lock,flags);
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
return (info->signals & SerialSignal_DCD) ? 1 : 0;
|
||||
}
|
||||
|
@ -3150,7 +3150,7 @@ static void dtr_rts(struct tty_port *port, int on)
|
|||
info->signals |= SerialSignal_RTS | SerialSignal_DTR;
|
||||
else
|
||||
info->signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
spin_unlock_irqrestore(&info->lock,flags);
|
||||
}
|
||||
|
||||
|
@ -3948,10 +3948,10 @@ static void tx_start(struct slgt_info *info)
|
|||
|
||||
if (info->params.mode != MGSL_MODE_ASYNC) {
|
||||
if (info->params.flags & HDLC_FLAG_AUTO_RTS) {
|
||||
get_signals(info);
|
||||
get_gtsignals(info);
|
||||
if (!(info->signals & SerialSignal_RTS)) {
|
||||
info->signals |= SerialSignal_RTS;
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
info->drop_rts_on_tx_done = true;
|
||||
}
|
||||
}
|
||||
|
@ -4005,7 +4005,7 @@ static void reset_port(struct slgt_info *info)
|
|||
rx_stop(info);
|
||||
|
||||
info->signals &= ~(SerialSignal_RTS | SerialSignal_DTR);
|
||||
set_signals(info);
|
||||
set_gtsignals(info);
|
||||
|
||||
slgt_irq_off(info, IRQ_ALL | IRQ_MASTER);
|
||||
}
|
||||
|
@ -4427,7 +4427,7 @@ static void tx_set_idle(struct slgt_info *info)
|
|||
/*
|
||||
* get state of V24 status (input) signals
|
||||
*/
|
||||
static void get_signals(struct slgt_info *info)
|
||||
static void get_gtsignals(struct slgt_info *info)
|
||||
{
|
||||
unsigned short status = rd_reg16(info, SSR);
|
||||
|
||||
|
@ -4489,7 +4489,7 @@ static void msc_set_vcr(struct slgt_info *info)
|
|||
/*
|
||||
* set state of V24 control (output) signals
|
||||
*/
|
||||
static void set_signals(struct slgt_info *info)
|
||||
static void set_gtsignals(struct slgt_info *info)
|
||||
{
|
||||
unsigned char val = rd_reg8(info, VCR);
|
||||
if (info->signals & SerialSignal_DTR)
|
||||
|
|
|
@ -812,7 +812,6 @@ void tty_ldisc_release(struct tty_struct *tty)
|
|||
|
||||
tty_ldisc_debug(tty, "released\n");
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tty_ldisc_release);
|
||||
|
||||
/**
|
||||
* tty_ldisc_init - ldisc setup for new tty
|
||||
|
|
Загрузка…
Ссылка в новой задаче