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>
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user