]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - drivers/serial/8250.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[mirror_ubuntu-zesty-kernel.git] / drivers / serial / 8250.c
index 7c4ebe6ee18b133247a591177df0c556c1f0bd09..2b1ea3d4c4f41e4b444c0541ce9285703f5f28fc 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/serial_8250.h>
 #include <linux/nmi.h>
 #include <linux/mutex.h>
+#include <linux/slab.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -2407,6 +2408,21 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios,
                tty_termios_encode_baud_rate(termios, baud, baud);
 }
 
+static void
+serial8250_set_ldisc(struct uart_port *port)
+{
+       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;
+               serial8250_enable_ms(port);
+       } else
+               port->flags &= ~UPF_HARDPPS_CD;
+}
+
 static void
 serial8250_pm(struct uart_port *port, unsigned int state,
              unsigned int oldstate)
@@ -2628,6 +2644,7 @@ static struct uart_ops serial8250_pops = {
        .startup        = serial8250_startup,
        .shutdown       = serial8250_shutdown,
        .set_termios    = serial8250_set_termios,
+       .set_ldisc      = serial8250_set_ldisc,
        .pm             = serial8250_pm,
        .type           = serial8250_type,
        .release_port   = serial8250_release_port,