forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-20 e636c8d336489bf3eed5878299e6cc045bbad077
kernel/drivers/base/power/power.h
....@@ -21,11 +21,15 @@
2121 extern void pm_runtime_init(struct device *dev);
2222 extern void pm_runtime_reinit(struct device *dev);
2323 extern void pm_runtime_remove(struct device *dev);
24
+extern u64 pm_runtime_active_time(struct device *dev);
2425
2526 #define WAKE_IRQ_DEDICATED_ALLOCATED BIT(0)
2627 #define WAKE_IRQ_DEDICATED_MANAGED BIT(1)
28
+#define WAKE_IRQ_DEDICATED_REVERSE BIT(2)
2729 #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)
2933
3034 struct wake_irq {
3135 struct device *dev;
....@@ -38,7 +42,8 @@
3842 extern void dev_pm_disarm_wake_irq(struct wake_irq *wirq);
3943 extern void dev_pm_enable_wake_irq_check(struct device *dev,
4044 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);
4247
4348 #ifdef CONFIG_PM_SLEEP
4449
....@@ -73,6 +78,7 @@
7378 extern void pm_qos_sysfs_remove_flags(struct device *dev);
7479 extern int pm_qos_sysfs_add_latency_tolerance(struct device *dev);
7580 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);
7682
7783 #else /* CONFIG_PM */
7884
....@@ -87,6 +93,8 @@
8793
8894 static inline int dpm_sysfs_add(struct device *dev) { return 0; }
8995 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; }
9098
9199 #endif
92100
....@@ -116,6 +124,13 @@
116124 return dev->power.in_dpm_list;
117125 }
118126
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
+
119134 #else /* !CONFIG_PM_SLEEP */
120135
121136 static inline void device_pm_sleep_init(struct device *dev) {}
....@@ -140,6 +155,11 @@
140155 return device_is_registered(dev);
141156 }
142157
158
+static inline int pm_wakeup_source_sysfs_add(struct device *parent)
159
+{
160
+ return 0;
161
+}
162
+
143163 #endif /* !CONFIG_PM_SLEEP */
144164
145165 static inline void device_pm_init(struct device *dev)
....@@ -148,21 +168,3 @@
148168 device_pm_sleep_init(dev);
149169 pm_runtime_init(dev);
150170 }
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 */