Merge 5.0-rc4 into tty-next
We need the tty and serial fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tento commit je obsažen v:
@@ -1070,15 +1070,16 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
|
||||
|
||||
ret = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialise interrupt backoff work if required */
|
||||
if (up->overrun_backoff_time_ms > 0) {
|
||||
uart->overrun_backoff_time_ms = up->overrun_backoff_time_ms;
|
||||
INIT_DELAYED_WORK(&uart->overrun_backoff,
|
||||
serial_8250_overrun_backoff_work);
|
||||
} else {
|
||||
uart->overrun_backoff_time_ms = 0;
|
||||
/* Initialise interrupt backoff work if required */
|
||||
if (up->overrun_backoff_time_ms > 0) {
|
||||
uart->overrun_backoff_time_ms =
|
||||
up->overrun_backoff_time_ms;
|
||||
INIT_DELAYED_WORK(&uart->overrun_backoff,
|
||||
serial_8250_overrun_backoff_work);
|
||||
} else {
|
||||
uart->overrun_backoff_time_ms = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&serial_mutex);
|
||||
|
@@ -1709,7 +1709,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||
}
|
||||
|
||||
/* ask the core to calculate the divisor */
|
||||
baud = uart_get_baud_rate(port, termios, old, 50, port->uartclk / 16);
|
||||
baud = uart_get_baud_rate(port, termios, old, 50, port->uartclk / 4);
|
||||
|
||||
spin_lock_irqsave(&sport->port.lock, flags);
|
||||
|
||||
|
@@ -221,7 +221,7 @@ static unsigned int qcom_geni_serial_get_mctrl(struct uart_port *uport)
|
||||
unsigned int mctrl = TIOCM_DSR | TIOCM_CAR;
|
||||
u32 geni_ios;
|
||||
|
||||
if (uart_console(uport) || !uart_cts_enabled(uport)) {
|
||||
if (uart_console(uport)) {
|
||||
mctrl |= TIOCM_CTS;
|
||||
} else {
|
||||
geni_ios = readl(uport->membase + SE_GENI_IOS);
|
||||
@@ -237,7 +237,7 @@ static void qcom_geni_serial_set_mctrl(struct uart_port *uport,
|
||||
{
|
||||
u32 uart_manual_rfr = 0;
|
||||
|
||||
if (uart_console(uport) || !uart_cts_enabled(uport))
|
||||
if (uart_console(uport))
|
||||
return;
|
||||
|
||||
if (!(mctrl & TIOCM_RTS))
|
||||
|
@@ -550,10 +550,12 @@ static int uart_put_char(struct tty_struct *tty, unsigned char c)
|
||||
int ret = 0;
|
||||
|
||||
circ = &state->xmit;
|
||||
if (!circ->buf)
|
||||
return 0;
|
||||
|
||||
port = uart_port_lock(state, flags);
|
||||
if (!circ->buf) {
|
||||
uart_port_unlock(port, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (port && uart_circ_chars_free(circ) != 0) {
|
||||
circ->buf[circ->head] = c;
|
||||
circ->head = (circ->head + 1) & (UART_XMIT_SIZE - 1);
|
||||
@@ -586,11 +588,13 @@ static int uart_write(struct tty_struct *tty,
|
||||
return -EL3HLT;
|
||||
}
|
||||
|
||||
circ = &state->xmit;
|
||||
if (!circ->buf)
|
||||
return 0;
|
||||
|
||||
port = uart_port_lock(state, flags);
|
||||
circ = &state->xmit;
|
||||
if (!circ->buf) {
|
||||
uart_port_unlock(port, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (port) {
|
||||
c = CIRC_SPACE_TO_END(circ->head, circ->tail, UART_XMIT_SIZE);
|
||||
if (count < c)
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele