Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[firefly-linux-kernel-4.4.55.git] / include / linux / pnp.h
index 195aafc6cd07c691e37e7d0247538dbd63ff5360..6512e9cbc6d57ca6abe80cc61a15db606c240cb7 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/list.h>
 #include <linux/errno.h>
 #include <linux/mod_devicetable.h>
+#include <linux/console.h>
 
 #define PNP_NAME_LEN           50
 
@@ -309,15 +310,22 @@ struct pnp_fixup {
 #define PNP_DISABLE            0x0004
 #define PNP_CONFIGURABLE       0x0008
 #define PNP_REMOVABLE          0x0010
+#define PNP_CONSOLE            0x0020
 
 #define pnp_can_read(dev)      (((dev)->protocol->get) && \
                                 ((dev)->capabilities & PNP_READ))
 #define pnp_can_write(dev)     (((dev)->protocol->set) && \
                                 ((dev)->capabilities & PNP_WRITE))
-#define pnp_can_disable(dev)   (((dev)->protocol->disable) && \
-                                ((dev)->capabilities & PNP_DISABLE))
+#define pnp_can_disable(dev)   (((dev)->protocol->disable) &&            \
+                                ((dev)->capabilities & PNP_DISABLE) &&   \
+                                (!((dev)->capabilities & PNP_CONSOLE) || \
+                                 console_suspend_enabled))
 #define pnp_can_configure(dev) ((!(dev)->active) && \
                                 ((dev)->capabilities & PNP_CONFIGURABLE))
+#define pnp_can_suspend(dev)   (((dev)->protocol->suspend) &&            \
+                                (!((dev)->capabilities & PNP_CONSOLE) || \
+                                 console_suspend_enabled))
+
 
 #ifdef CONFIG_ISAPNP
 extern struct pnp_protocol isapnp_protocol;