diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-26 00:07:59 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-26 00:07:59 -0400 |
| commit | 16c29dafcc86024048f1dbb8349d31cb22c7c55a (patch) | |
| tree | 100c4fd34903adf02c9b8ae7705a3e1f30c8d712 /include | |
| parent | dc50eddb2f3a0dff365f093b2a93fb4ab4dd4389 (diff) | |
| parent | d47d81c0e9abdc3c88653fabff5beae82c949b09 (diff) | |
Merge branch 'syscore' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6
* 'syscore' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
Introduce ARCH_NO_SYSDEV_OPS config option (v2)
cpufreq: Use syscore_ops for boot CPU suspend/resume (v2)
KVM: Use syscore_ops instead of sysdev class and sysdev
PCI / Intel IOMMU: Use syscore_ops instead of sysdev class and sysdev
timekeeping: Use syscore_ops instead of sysdev class and sysdev
x86: Use syscore_ops instead of sysdev classes and sysdevs
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/device.h | 4 | ||||
| -rw-r--r-- | include/linux/pm.h | 10 | ||||
| -rw-r--r-- | include/linux/sysdev.h | 7 |
3 files changed, 17 insertions, 4 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 144ec135875f..ab8dfc095709 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -633,8 +633,12 @@ static inline int devtmpfs_mount(const char *mountpoint) { return 0; } | |||
| 633 | /* drivers/base/power/shutdown.c */ | 633 | /* drivers/base/power/shutdown.c */ |
| 634 | extern void device_shutdown(void); | 634 | extern void device_shutdown(void); |
| 635 | 635 | ||
| 636 | #ifndef CONFIG_ARCH_NO_SYSDEV_OPS | ||
| 636 | /* drivers/base/sys.c */ | 637 | /* drivers/base/sys.c */ |
| 637 | extern void sysdev_shutdown(void); | 638 | extern void sysdev_shutdown(void); |
| 639 | #else | ||
| 640 | static inline void sysdev_shutdown(void) { } | ||
| 641 | #endif | ||
| 638 | 642 | ||
| 639 | /* debugging and troubleshooting/diagnostic helpers. */ | 643 | /* debugging and troubleshooting/diagnostic helpers. */ |
| 640 | extern const char *dev_driver_string(const struct device *dev); | 644 | extern const char *dev_driver_string(const struct device *dev); |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 6618216bb973..512e09177e57 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -529,13 +529,19 @@ struct dev_power_domain { | |||
| 529 | */ | 529 | */ |
| 530 | 530 | ||
| 531 | #ifdef CONFIG_PM_SLEEP | 531 | #ifdef CONFIG_PM_SLEEP |
| 532 | extern void device_pm_lock(void); | 532 | #ifndef CONFIG_ARCH_NO_SYSDEV_OPS |
| 533 | extern int sysdev_suspend(pm_message_t state); | ||
| 533 | extern int sysdev_resume(void); | 534 | extern int sysdev_resume(void); |
| 535 | #else | ||
| 536 | static inline int sysdev_suspend(pm_message_t state) { return 0; } | ||
| 537 | static inline int sysdev_resume(void) { return 0; } | ||
| 538 | #endif | ||
| 539 | |||
| 540 | extern void device_pm_lock(void); | ||
| 534 | extern void dpm_resume_noirq(pm_message_t state); | 541 | extern void dpm_resume_noirq(pm_message_t state); |
| 535 | extern void dpm_resume_end(pm_message_t state); | 542 | extern void dpm_resume_end(pm_message_t state); |
| 536 | 543 | ||
| 537 | extern void device_pm_unlock(void); | 544 | extern void device_pm_unlock(void); |
| 538 | extern int sysdev_suspend(pm_message_t state); | ||
| 539 | extern int dpm_suspend_noirq(pm_message_t state); | 545 | extern int dpm_suspend_noirq(pm_message_t state); |
| 540 | extern int dpm_suspend_start(pm_message_t state); | 546 | extern int dpm_suspend_start(pm_message_t state); |
| 541 | 547 | ||
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 { | |||
| 33 | const char *name; | 33 | const char *name; |
| 34 | struct list_head drivers; | 34 | struct list_head drivers; |
| 35 | struct sysdev_class_attribute **attrs; | 35 | struct sysdev_class_attribute **attrs; |
| 36 | 36 | struct kset kset; | |
| 37 | #ifndef CONFIG_ARCH_NO_SYSDEV_OPS | ||
| 37 | /* Default operations for these types of devices */ | 38 | /* Default operations for these types of devices */ |
| 38 | int (*shutdown)(struct sys_device *); | 39 | int (*shutdown)(struct sys_device *); |
| 39 | int (*suspend)(struct sys_device *, pm_message_t state); | 40 | int (*suspend)(struct sys_device *, pm_message_t state); |
| 40 | int (*resume)(struct sys_device *); | 41 | int (*resume)(struct sys_device *); |
| 41 | struct kset kset; | 42 | #endif |
| 42 | }; | 43 | }; |
| 43 | 44 | ||
| 44 | struct sysdev_class_attribute { | 45 | struct sysdev_class_attribute { |
| @@ -76,9 +77,11 @@ struct sysdev_driver { | |||
| 76 | struct list_head entry; | 77 | struct list_head entry; |
| 77 | int (*add)(struct sys_device *); | 78 | int (*add)(struct sys_device *); |
| 78 | int (*remove)(struct sys_device *); | 79 | int (*remove)(struct sys_device *); |
| 80 | #ifndef CONFIG_ARCH_NO_SYSDEV_OPS | ||
| 79 | int (*shutdown)(struct sys_device *); | 81 | int (*shutdown)(struct sys_device *); |
| 80 | int (*suspend)(struct sys_device *, pm_message_t state); | 82 | int (*suspend)(struct sys_device *, pm_message_t state); |
| 81 | int (*resume)(struct sys_device *); | 83 | int (*resume)(struct sys_device *); |
| 84 | #endif | ||
| 82 | }; | 85 | }; |
| 83 | 86 | ||
| 84 | 87 | ||
