bool break_detected;
struct msm_dma tx_dma;
struct msm_dma rx_dma;
- unsigned int last_baud;
};
static void msm_handle_tx(struct uart_port *port);
if (dma->chan) /* Terminate if any */
msm_stop_dma(port, dma);
- /* calculate and set baud rate, if changed from last request */
+ /* calculate and set baud rate */
baud = uart_get_baud_rate(port, termios, old, 300, 4000000);
- if (baud != msm_port->last_baud) {
- msm_port->last_baud = baud;
-
- baud = msm_set_baud_rate(port, baud, &flags);
- if (tty_termios_baud_rate(termios))
- tty_termios_encode_baud_rate(termios, baud, baud);
- uart_update_timeout(port, termios->c_cflag, baud);
- }
+ baud = msm_set_baud_rate(port, baud, &flags);
+ if (tty_termios_baud_rate(termios))
+ tty_termios_encode_baud_rate(termios, baud, baud);
/* calculate parity */
mr = msm_read(port, UART_MR2);
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
port->read_status_mask |= UART_SR_RX_BREAK;
+ uart_update_timeout(port, termios->c_cflag, baud);
+
/* Try to use DMA */
msm_start_rx_dma(msm_port);