From: Jean Pihet <redacted>
Add the field wakeup_lat_plist_head in the struct dev_pm_info
and the initialization of the plist in device_pm_init.
This enables the implementation of per-device constraints in
PM QoS.
Signed-off-by: Jean Pihet <redacted>
---
drivers/base/power/main.c | 1 +
include/linux/pm.h | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index aa632020..6a096d1 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -64,6 +64,7 @@ void device_pm_init(struct device *dev)
spin_lock_init(&dev->power.lock);
pm_runtime_init(dev);
INIT_LIST_HEAD(&dev->power.entry);
+ plist_head_init(&dev->power.wakeup_lat_plist_head, &dev->power.lock);
}
/**
diff --git a/include/linux/pm.h b/include/linux/pm.h
index 3160648..35fe682 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -22,6 +22,7 @@
#define _LINUX_PM_H
#include <linux/list.h>
+#include <linux/plist.h>
#include <linux/workqueue.h>
#include <linux/spinlock.h>
#include <linux/wait.h>
@@ -462,6 +463,7 @@ struct dev_pm_info {
unsigned long accounting_timestamp;
void *subsys_data; /* Owned by the subsystem. */
#endif
+ struct plist_head wakeup_lat_plist_head;
};
extern void update_pm_runtime_accounting(struct device *dev);--
1.7.4.1