OSDN Git Service

serial: altera: set RRDY flag also without irq
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 25 Jan 2018 13:30:45 +0000 (14:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Feb 2018 12:30:09 +0000 (13:30 +0100)
commiteefadcbca7f394fb9248384f2c759ebbe81e20c7
tree189526ccec551d899566c00164d504760dd8da0f
parent2ea6ad8bc60f66a5d323ca7e93fddf2363c3ed80
serial: altera: set RRDY flag also without irq

The UART can be operated without an irq. In this case a timer is setup
that regularily calls altera_uart_interrupt(). The receiving part
depends on pp->imr having the bit ALTERA_UART_STATUS_RRDY_MSK set,
otherwise altera_uart_rx_chars() is never called. So ensure that the bit
gets set (disguised as ALTERA_UART_CONTROL_RRDY_MSK) by not returning
early from altera_uart_startup() if port->irq is 0.

This doesn't affect the hardware as the ALTERA_UART_CONTROL_RRDY_MSK bit
isn't actually written to the control register.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/altera_uart.c