serial: core: remove unneeded irq_wake flag
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Sun, 13 Aug 2017 14:47:42 +0000 (17:47 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Aug 2017 18:51:20 +0000 (20:51 +0200)
There is no need to duplicate a flag which IRQ core takes care of.

Replace custom flag by IRQ core API that retrieves its state.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_core.c
include/linux/serial_core.h

index 73ce4e2f7a93e964822c50472f3dc1d61bf8886b..220e1d088c9b2a6348a18bf7adffadfb0fc72af8 100644 (file)
@@ -36,7 +36,7 @@
 #include <linux/delay.h>
 #include <linux/mutex.h>
 
-#include <asm/irq.h>
+#include <linux/irq.h>
 #include <linux/uaccess.h>
 
 /*
@@ -2083,8 +2083,7 @@ int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport)
 
        tty_dev = device_find_child(uport->dev, &match, serial_match_port);
        if (tty_dev && device_may_wakeup(tty_dev)) {
-               if (!enable_irq_wake(uport->irq))
-                       uport->irq_wake = 1;
+               enable_irq_wake(uport->irq);
                put_device(tty_dev);
                mutex_unlock(&port->mutex);
                return 0;
@@ -2147,10 +2146,8 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport)
 
        tty_dev = device_find_child(uport->dev, &match, serial_match_port);
        if (!uport->suspended && device_may_wakeup(tty_dev)) {
-               if (uport->irq_wake) {
+               if (irqd_is_wakeup_set(irq_get_irq_data((uport->irq))))
                        disable_irq_wake(uport->irq);
-                       uport->irq_wake = 0;
-               }
                put_device(tty_dev);
                mutex_unlock(&port->mutex);
                return 0;
index 8dc24c855a70b96841e8a646a16ad7c6edeff9e1..5553e04e59c9fb932c6d91ff71e0e9ddbe0bb640 100644 (file)
@@ -247,7 +247,6 @@ struct uart_port {
        struct device           *dev;                   /* parent device */
        unsigned char           hub6;                   /* this should be in the 8250 driver */
        unsigned char           suspended;
-       unsigned char           irq_wake;
        unsigned char           unused[2];
        const char              *name;                  /* port name */
        struct attribute_group  *attr_group;            /* port specific attributes */