diff options
Diffstat (limited to 'drivers/tty/serial/apbuart.c')
| -rw-r--r-- | drivers/tty/serial/apbuart.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c index 77554fd68d1..de11ab8ffd9 100644 --- a/drivers/tty/serial/apbuart.c +++ b/drivers/tty/serial/apbuart.c @@ -78,7 +78,6 @@ static void apbuart_enable_ms(struct uart_port *port) static void apbuart_rx_chars(struct uart_port *port) { - struct tty_struct *tty = port->state->port.tty; unsigned int status, ch, rsr, flag; unsigned int max_chars = port->fifosize; @@ -126,7 +125,9 @@ static void apbuart_rx_chars(struct uart_port *port) status = UART_GET_STATUS(port); } - tty_flip_buffer_push(tty); + spin_unlock(&port->lock); + tty_flip_buffer_push(&port->state->port); + spin_lock(&port->lock); } static void apbuart_tx_chars(struct uart_port *port) @@ -554,7 +555,7 @@ static struct uart_driver grlib_apbuart_driver = { /* OF Platform Driver */ /* ======================================================================== */ -static int __devinit apbuart_probe(struct platform_device *op) +static int apbuart_probe(struct platform_device *op) { int i; struct uart_port *port = NULL; @@ -577,7 +578,7 @@ static int __devinit apbuart_probe(struct platform_device *op) return 0; } -static struct of_device_id __initdata apbuart_match[] = { +static struct of_device_id apbuart_match[] = { { .name = "GAISLER_APBUART", }, @@ -597,7 +598,7 @@ static struct platform_driver grlib_apbuart_of_driver = { }; -static int grlib_apbuart_configure(void) +static int __init grlib_apbuart_configure(void) { struct device_node *np; int line = 0; |
