|
@@ -869,7 +869,12 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
|
|
|
}
|
|
|
|
|
|
baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
|
|
|
- quot = uart_get_divisor(port, baud) - ANOMALY_05000230;
|
|
|
+ quot = uart_get_divisor(port, baud);
|
|
|
+
|
|
|
+ /* If discipline is not IRDA, apply ANOMALY_05000230 */
|
|
|
+ if (termios->c_line != N_IRDA)
|
|
|
+ quot -= ANOMALY_05000230;
|
|
|
+
|
|
|
spin_lock_irqsave(&uart->port.lock, flags);
|
|
|
|
|
|
UART_SET_ANOMALY_THRESHOLD(uart, USEC_PER_SEC / baud * 15);
|