--- zzzz-none-000/linux-3.10.107/drivers/tty/serial/apbuart.c 2017-06-27 09:49:32.000000000 +0000 +++ scorpion-7490-727/linux-3.10.107/drivers/tty/serial/apbuart.c 2021-02-04 17:41:59.000000000 +0000 @@ -71,11 +71,6 @@ UART_PUT_CTRL(port, cr); } -static void apbuart_enable_ms(struct uart_port *port) -{ - /* No modem status change interrupts for APBUART */ -} - static void apbuart_rx_chars(struct uart_port *port) { unsigned int status, ch, rsr, flag; @@ -125,7 +120,9 @@ status = UART_GET_STATUS(port); } + spin_unlock(&port->lock); tty_flip_buffer_push(&port->state->port); + spin_lock(&port->lock); } static void apbuart_tx_chars(struct uart_port *port) @@ -335,7 +332,6 @@ .stop_tx = apbuart_stop_tx, .start_tx = apbuart_start_tx, .stop_rx = apbuart_stop_rx, - .enable_ms = apbuart_enable_ms, .break_ctl = apbuart_break_ctl, .startup = apbuart_startup, .shutdown = apbuart_shutdown, @@ -576,7 +572,7 @@ return 0; } -static struct of_device_id apbuart_match[] = { +static const struct of_device_id apbuart_match[] = { { .name = "GAISLER_APBUART", }, @@ -585,11 +581,11 @@ }, {}, }; +MODULE_DEVICE_TABLE(of, apbuart_match); static struct platform_driver grlib_apbuart_of_driver = { .probe = apbuart_probe, .driver = { - .owner = THIS_MODULE, .name = "grlib-apbuart", .of_match_table = apbuart_match, },