mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
TTY/Serial fixes for 4.20-rc2
Here are some small tty fixes for 4.20-rc2 One of these missed the original 4.19-final release, I missed that I hadn't done a pull request for it as it was in linux-next and my branch for a long time, that's my fault. The others are small, fixing some reported issues and finally fixing the termios mess for alpha so that glibc has a chance to implement some missing functionality that has been pending for many years now. All of these have been in linux-next with no reported issues. Signed-off-by: Greg Kroah-Hartman <[email protected]> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCW+cpjw8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ymcQQCgt4IbK1wm/bxZqikhg64GS7J7IdkAoLoK1gKi Sq+KsJX2qr4GuAcxJIjr =uyeQ -----END PGP SIGNATURE----- Merge tag 'tty-4.20-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are some small tty fixes for 4.20-rc2 One of these missed the original 4.19-final release, I missed that I hadn't done a pull request for it as it was in linux-next and my branch for a long time, that's my fault. The others are small, fixing some reported issues and finally fixing the termios mess for alpha so that glibc has a chance to implement some missing functionality that has been pending for many years now. All of these have been in linux-next with no reported issues" * tag 'tty-4.20-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout arch/alpha, termios: implement BOTHER, IBSHIFT and termios2 termios, tty/tty_baudrate.c: fix buffer overrun vt: fix broken display when running aptitude serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA
This commit is contained in:
commit
e255aee5b6
6 changed files with 36 additions and 8 deletions
|
|
@ -1614,10 +1614,10 @@ static void sci_request_dma(struct uart_port *port)
|
|||
hrtimer_init(&s->rx_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||
s->rx_timer.function = rx_timer_fn;
|
||||
|
||||
s->chan_rx_saved = s->chan_rx = chan;
|
||||
|
||||
if (port->type == PORT_SCIFA || port->type == PORT_SCIFB)
|
||||
sci_submit_rx(s);
|
||||
|
||||
s->chan_rx_saved = s->chan_rx = chan;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3102,6 +3102,7 @@ static struct uart_driver sci_uart_driver = {
|
|||
static int sci_remove(struct platform_device *dev)
|
||||
{
|
||||
struct sci_port *port = platform_get_drvdata(dev);
|
||||
unsigned int type = port->port.type; /* uart_remove_... clears it */
|
||||
|
||||
sci_ports_in_use &= ~BIT(port->port.line);
|
||||
uart_remove_one_port(&sci_uart_driver, &port->port);
|
||||
|
|
@ -3112,8 +3113,7 @@ static int sci_remove(struct platform_device *dev)
|
|||
sysfs_remove_file(&dev->dev.kobj,
|
||||
&dev_attr_rx_fifo_trigger.attr);
|
||||
}
|
||||
if (port->port.type == PORT_SCIFA || port->port.type == PORT_SCIFB ||
|
||||
port->port.type == PORT_HSCIF) {
|
||||
if (type == PORT_SCIFA || type == PORT_SCIFB || type == PORT_HSCIF) {
|
||||
sysfs_remove_file(&dev->dev.kobj,
|
||||
&dev_attr_rx_fifo_timeout.attr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ speed_t tty_termios_baud_rate(struct ktermios *termios)
|
|||
else
|
||||
cbaud += 15;
|
||||
}
|
||||
return baud_table[cbaud];
|
||||
return cbaud >= n_baud_table ? 0 : baud_table[cbaud];
|
||||
}
|
||||
EXPORT_SYMBOL(tty_termios_baud_rate);
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ speed_t tty_termios_input_baud_rate(struct ktermios *termios)
|
|||
else
|
||||
cbaud += 15;
|
||||
}
|
||||
return baud_table[cbaud];
|
||||
return cbaud >= n_baud_table ? 0 : baud_table[cbaud];
|
||||
#else /* IBSHIFT */
|
||||
return tty_termios_baud_rate(termios);
|
||||
#endif /* IBSHIFT */
|
||||
|
|
|
|||
|
|
@ -1548,7 +1548,7 @@ static void csi_K(struct vc_data *vc, int vpar)
|
|||
scr_memsetw(start + offset, vc->vc_video_erase_char, 2 * count);
|
||||
vc->vc_need_wrap = 0;
|
||||
if (con_should_update(vc))
|
||||
do_update_region(vc, (unsigned long) start, count);
|
||||
do_update_region(vc, (unsigned long)(start + offset), count);
|
||||
}
|
||||
|
||||
static void csi_X(struct vc_data *vc, int vpar) /* erase the following vpar positions */
|
||||
|
|
|
|||
Loading…
Reference in a new issue