summaryrefslogtreecommitdiff
path: root/include/linux/sysdev.h
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-03-24 00:16:41 +0300
committerRafael J. Wysocki <rjw@sisk.pl>2011-03-24 00:16:41 +0300
commitd47d81c0e9abdc3c88653fabff5beae82c949b09 (patch)
tree1745f3316996e3cb0a02dcd7af90b88d836b6d17 /include/linux/sysdev.h
parente00e56dfd3cf1d209ce630a2b440c91e4a30bbd3 (diff)
downloadlinux-d47d81c0e9abdc3c88653fabff5beae82c949b09.tar.xz
Introduce ARCH_NO_SYSDEV_OPS config option (v2)
Introduce Kconfig option allowing architectures where sysdev operations used during system suspend, resume and shutdown have been completely replaced with struct sycore_ops operations to avoid building sysdev code that will never be used. Make callbacks in struct sys_device and struct sysdev_driver depend on ARCH_NO_SYSDEV_OPS to allows us to verify if all of the references have been actually removed from the code the given architecture depends on. Make x86 select ARCH_NO_SYSDEV_OPS. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'include/linux/sysdev.h')
-rw-r--r--include/linux/sysdev.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/sysdev.h b/include/linux/sysdev.h
index 1154c29f4101..8a75da551e4e 100644
--- a/include/linux/sysdev.h
+++ b/include/linux/sysdev.h
@@ -33,12 +33,13 @@ struct sysdev_class {
const char *name;
struct list_head drivers;
struct sysdev_class_attribute **attrs;
-
+ struct kset kset;
+#ifndef CONFIG_ARCH_NO_SYSDEV_OPS
/* Default operations for these types of devices */
int (*shutdown)(struct sys_device *);
int (*suspend)(struct sys_device *, pm_message_t state);
int (*resume)(struct sys_device *);
- struct kset kset;
+#endif
};
struct sysdev_class_attribute {
@@ -76,9 +77,11 @@ struct sysdev_driver {
struct list_head entry;
int (*add)(struct sys_device *);
int (*remove)(struct sys_device *);
+#ifndef CONFIG_ARCH_NO_SYSDEV_OPS
int (*shutdown)(struct sys_device *);
int (*suspend)(struct sys_device *, pm_message_t state);
int (*resume)(struct sys_device *);
+#endif
};