diff options
-rw-r--r-- | drivers/tty/serial/sh-sci.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index eb2b369..02aaf4d 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1317,7 +1317,8 @@ static void rx_timer_fn(unsigned long arg) spin_unlock_irqrestore(&port->lock, flags); - sci_submit_rx(s); + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) + sci_submit_rx(s); } static void sci_request_dma(struct uart_port *port) @@ -1403,7 +1404,8 @@ static void sci_request_dma(struct uart_port *port) setup_timer(&s->rx_timer, rx_timer_fn, (unsigned long)s); - sci_submit_rx(s); + if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) + sci_submit_rx(s); } } @@ -1442,6 +1444,7 @@ static irqreturn_t sci_rx_interrupt(int irq, void *ptr) scr |= SCSCR_RDRQE; } else { scr &= ~SCSCR_RIE; + sci_submit_rx(s); } serial_port_out(port, SCSCR, scr); /* Clear current interrupt */ |