X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fserial%2Fatmel_serial.c;h=b3497d7e5354dec9ab0ba49cd754f5e47867c45b;hb=21ce3cd63365b0d07794adeb4325944bfa86fb4e;hp=8f58f7ff0dd7db29af5c749dbeda386b8c6c10b9;hpb=c2f43981e5dbc92884149aa2234064cc2c340acd;p=pandora-kernel.git diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index 8f58f7ff0dd7..b3497d7e5354 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c @@ -1020,7 +1020,8 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, /* Get current mode register */ mode = UART_GET_MR(port) & ~(ATMEL_US_USCLKS | ATMEL_US_CHRL - | ATMEL_US_NBSTOP | ATMEL_US_PAR); + | ATMEL_US_NBSTOP | ATMEL_US_PAR + | ATMEL_US_USMODE); baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); quot = uart_get_divisor(port, baud); @@ -1065,6 +1066,12 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, } else mode |= ATMEL_US_PAR_NONE; + /* hardware handshake (RTS/CTS) */ + if (termios->c_cflag & CRTSCTS) + mode |= ATMEL_US_USMODE_HWHS; + else + mode |= ATMEL_US_USMODE_NORMAL; + spin_lock_irqsave(&port->lock, flags); port->read_status_mask = ATMEL_US_OVRE;