tty/8250: Add sleep capability to XR17D15X ports
authorMatt Schulte <matts@commtech-fastcom.com>
Wed, 21 Nov 2012 15:39:07 +0000 (09:39 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Nov 2012 00:30:03 +0000 (16:30 -0800)
Add sleep capability to XR17D15X ports

Signed-off-by: Matt Schulte <matts@commtech-fastcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250.c

index 39d970719f7db7274f6b269be65a307a100c8217..4ab8af797ad9addf7d5b55d55fcffec26f626b13 100644 (file)
@@ -280,7 +280,8 @@ static const struct serial8250_config uart_config[] = {
                .fifo_size      = 64,
                .tx_loadsz      = 64,
                .fcr            = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
-               .flags          = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR,
+               .flags          = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR |
+                                 UART_CAP_SLEEP,
        },
        [PORT_XR17V35X] = {
                .name           = "XR17V35X",
@@ -591,7 +592,8 @@ static void serial8250_set_sleep(struct uart_8250_port *p, int sleep)
         * offset but the UART channel may only write to the corresponding
         * bit.
         */
-       if (p->port.type == PORT_XR17V35X) {
+       if ((p->port.type == PORT_XR17V35X) ||
+          (p->port.type == PORT_XR17D15X)) {
                serial_out(p, UART_EXAR_SLEEP, 0xff);
                return;
        }
@@ -1056,8 +1058,12 @@ static void autoconfig_16550a(struct uart_8250_port *up)
         * Exar uarts have EFR in a weird location
         */
        if (up->port.flags & UPF_EXAR_EFR) {
+               DEBUG_AUTOCONF("Exar XR17D15x ");
                up->port.type = PORT_XR17D15X;
-               up->capabilities |= UART_CAP_AFE | UART_CAP_EFR;
+               up->capabilities |= UART_CAP_AFE | UART_CAP_EFR |
+                                   UART_CAP_SLEEP;
+
+               return;
        }
 
        /*