| .. | .. |
|---|
| 21 | 21 | extern void pm_runtime_init(struct device *dev); |
|---|
| 22 | 22 | extern void pm_runtime_reinit(struct device *dev); |
|---|
| 23 | 23 | extern void pm_runtime_remove(struct device *dev); |
|---|
| 24 | +extern u64 pm_runtime_active_time(struct device *dev); |
|---|
| 24 | 25 | |
|---|
| 25 | 26 | #define WAKE_IRQ_DEDICATED_ALLOCATED BIT(0) |
|---|
| 26 | 27 | #define WAKE_IRQ_DEDICATED_MANAGED BIT(1) |
|---|
| 28 | +#define WAKE_IRQ_DEDICATED_REVERSE BIT(2) |
|---|
| 27 | 29 | #define WAKE_IRQ_DEDICATED_MASK (WAKE_IRQ_DEDICATED_ALLOCATED | \ |
|---|
| 28 | | - WAKE_IRQ_DEDICATED_MANAGED) |
|---|
| 30 | + WAKE_IRQ_DEDICATED_MANAGED | \ |
|---|
| 31 | + WAKE_IRQ_DEDICATED_REVERSE) |
|---|
| 32 | +#define WAKE_IRQ_DEDICATED_ENABLED BIT(3) |
|---|
| 29 | 33 | |
|---|
| 30 | 34 | struct wake_irq { |
|---|
| 31 | 35 | struct device *dev; |
|---|
| .. | .. |
|---|
| 38 | 42 | extern void dev_pm_disarm_wake_irq(struct wake_irq *wirq); |
|---|
| 39 | 43 | extern void dev_pm_enable_wake_irq_check(struct device *dev, |
|---|
| 40 | 44 | bool can_change_status); |
|---|
| 41 | | -extern void dev_pm_disable_wake_irq_check(struct device *dev); |
|---|
| 45 | +extern void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable); |
|---|
| 46 | +extern void dev_pm_enable_wake_irq_complete(struct device *dev); |
|---|
| 42 | 47 | |
|---|
| 43 | 48 | #ifdef CONFIG_PM_SLEEP |
|---|
| 44 | 49 | |
|---|
| .. | .. |
|---|
| 73 | 78 | extern void pm_qos_sysfs_remove_flags(struct device *dev); |
|---|
| 74 | 79 | extern int pm_qos_sysfs_add_latency_tolerance(struct device *dev); |
|---|
| 75 | 80 | extern void pm_qos_sysfs_remove_latency_tolerance(struct device *dev); |
|---|
| 81 | +extern int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid); |
|---|
| 76 | 82 | |
|---|
| 77 | 83 | #else /* CONFIG_PM */ |
|---|
| 78 | 84 | |
|---|
| .. | .. |
|---|
| 87 | 93 | |
|---|
| 88 | 94 | static inline int dpm_sysfs_add(struct device *dev) { return 0; } |
|---|
| 89 | 95 | static inline void dpm_sysfs_remove(struct device *dev) {} |
|---|
| 96 | +static inline int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, |
|---|
| 97 | + kgid_t kgid) { return 0; } |
|---|
| 90 | 98 | |
|---|
| 91 | 99 | #endif |
|---|
| 92 | 100 | |
|---|
| .. | .. |
|---|
| 116 | 124 | return dev->power.in_dpm_list; |
|---|
| 117 | 125 | } |
|---|
| 118 | 126 | |
|---|
| 127 | +/* drivers/base/power/wakeup_stats.c */ |
|---|
| 128 | +extern int wakeup_source_sysfs_add(struct device *parent, |
|---|
| 129 | + struct wakeup_source *ws); |
|---|
| 130 | +extern void wakeup_source_sysfs_remove(struct wakeup_source *ws); |
|---|
| 131 | + |
|---|
| 132 | +extern int pm_wakeup_source_sysfs_add(struct device *parent); |
|---|
| 133 | + |
|---|
| 119 | 134 | #else /* !CONFIG_PM_SLEEP */ |
|---|
| 120 | 135 | |
|---|
| 121 | 136 | static inline void device_pm_sleep_init(struct device *dev) {} |
|---|
| .. | .. |
|---|
| 140 | 155 | return device_is_registered(dev); |
|---|
| 141 | 156 | } |
|---|
| 142 | 157 | |
|---|
| 158 | +static inline int pm_wakeup_source_sysfs_add(struct device *parent) |
|---|
| 159 | +{ |
|---|
| 160 | + return 0; |
|---|
| 161 | +} |
|---|
| 162 | + |
|---|
| 143 | 163 | #endif /* !CONFIG_PM_SLEEP */ |
|---|
| 144 | 164 | |
|---|
| 145 | 165 | static inline void device_pm_init(struct device *dev) |
|---|
| .. | .. |
|---|
| 148 | 168 | device_pm_sleep_init(dev); |
|---|
| 149 | 169 | pm_runtime_init(dev); |
|---|
| 150 | 170 | } |
|---|
| 151 | | - |
|---|
| 152 | | -#ifdef CONFIG_PM_SLEEP |
|---|
| 153 | | - |
|---|
| 154 | | -/* drivers/base/power/wakeup_stats.c */ |
|---|
| 155 | | -extern int wakeup_source_sysfs_add(struct device *parent, |
|---|
| 156 | | - struct wakeup_source *ws); |
|---|
| 157 | | -extern void wakeup_source_sysfs_remove(struct wakeup_source *ws); |
|---|
| 158 | | - |
|---|
| 159 | | -extern int pm_wakeup_source_sysfs_add(struct device *parent); |
|---|
| 160 | | - |
|---|
| 161 | | -#else /* !CONFIG_PM_SLEEP */ |
|---|
| 162 | | - |
|---|
| 163 | | -static inline int pm_wakeup_source_sysfs_add(struct device *parent) |
|---|
| 164 | | -{ |
|---|
| 165 | | - return 0; |
|---|
| 166 | | -} |
|---|
| 167 | | - |
|---|
| 168 | | -#endif /* CONFIG_PM_SLEEP */ |
|---|