serial_lpc32xx_interrupt() calls __serial_lpc32xx_rx() first and then tty_flip_buffer_push() immediately after that. But last statement of __serial_lpc32xx_rx() already called tty_flip_buffer_push()..
So, probably its not required to be called twice. Lets remove one of them.
Signed-off-by: Viresh Kumar viresh.kumar@linaro.org --- drivers/tty/serial/lpc32xx_hs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/tty/serial/lpc32xx_hs.c b/drivers/tty/serial/lpc32xx_hs.c index dffea6b..8fdf6a8 100644 --- a/drivers/tty/serial/lpc32xx_hs.c +++ b/drivers/tty/serial/lpc32xx_hs.c @@ -351,10 +351,8 @@ static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id) }
/* Data received? */ - if (status & (LPC32XX_HSU_RX_TIMEOUT_INT | LPC32XX_HSU_RX_TRIG_INT)) { + if (status & (LPC32XX_HSU_RX_TIMEOUT_INT | LPC32XX_HSU_RX_TRIG_INT)) __serial_lpc32xx_rx(port); - tty_flip_buffer_push(tport); - }
/* Transmit data request? */ if ((status & LPC32XX_HSU_TX_INT) && (!uart_tx_stopped(port))) {