atmel_serial: enable PPS support
authorViktar Palstsiuk <viktar.palstsiuk@promwad.com>
Wed, 9 Feb 2011 14:26:13 +0000 (15:26 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 19:26:12 +0000 (11:26 -0800)
Enables PPS support in atmel serial driver to make PPS API working.

Signed-off-by: Viktar Palstsiuk <viktar.palstsiuk@promwad.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/serial/atmel_serial.c

index 2a1d52fb493646b2c56648aef28d5e24e6805126..f119d1761106a6b56e9e9ae348d29f9ed9b6762a 100644 (file)
@@ -1240,6 +1240,21 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios,
        spin_unlock_irqrestore(&port->lock, flags);
 }
 
+static void atmel_set_ldisc(struct uart_port *port, int new)
+{
+       int line = port->line;
+
+       if (line >= port->state->port.tty->driver->num)
+               return;
+
+       if (port->state->port.tty->ldisc->ops->num == N_PPS) {
+               port->flags |= UPF_HARDPPS_CD;
+               atmel_enable_ms(port);
+       } else {
+               port->flags &= ~UPF_HARDPPS_CD;
+       }
+}
+
 /*
  * Return string describing the specified port
  */
@@ -1380,6 +1395,7 @@ static struct uart_ops atmel_pops = {
        .shutdown       = atmel_shutdown,
        .flush_buffer   = atmel_flush_buffer,
        .set_termios    = atmel_set_termios,
+       .set_ldisc      = atmel_set_ldisc,
        .type           = atmel_type,
        .release_port   = atmel_release_port,
        .request_port   = atmel_request_port,