summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-09-26 20:22:02 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2011-09-26 20:22:02 +0200
commitcd0ea672f58d5cfdea271c45cec0c897f2b792aa (patch)
tree96596cf00fd4fd84b1eb76626f7cc2e1e05e6a18 /include
parent0d41da2e31e81f5c8aaabe17f769de4304b2d4c8 (diff)
downloadop-kernel-dev-cd0ea672f58d5cfdea271c45cec0c897f2b792aa.zip
op-kernel-dev-cd0ea672f58d5cfdea271c45cec0c897f2b792aa.tar.gz
PM / Domains: Split device PM domain data into base and need_restore
The struct pm_domain_data data type is defined in such a way that adding new fields specific to the generic PM domains code will require include/linux/pm.h to be modified. As a result, data types used only by the generic PM domains code will be defined in two headers, although they all should be defined in pm_domain.h and pm.h will need to include more headers, which won't be very nice. For this reason change the definition of struct pm_subsys_data so that its domain_data member is a pointer, which will allow struct pm_domain_data to be subclassed by various PM domains implementations. Remove the need_restore member from struct pm_domain_data and make the generic PM domains code subclass it by adding the need_restore member to the new data type. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'include')
-rw-r--r--include/linux/pm.h3
-rw-r--r--include/linux/pm_domain.h10
2 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/pm.h b/include/linux/pm.h
index ed10f24..f256824 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -424,7 +424,6 @@ struct wakeup_source;
struct pm_domain_data {
struct list_head list_node;
struct device *dev;
- bool need_restore;
};
struct pm_subsys_data {
@@ -434,7 +433,7 @@ struct pm_subsys_data {
struct list_head clock_list;
#endif
#ifdef CONFIG_PM_GENERIC_DOMAINS
- struct pm_domain_data domain_data;
+ struct pm_domain_data *domain_data;
#endif
};
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index 2538d90..65633e5 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -62,6 +62,16 @@ struct gpd_link {
struct list_head slave_node;
};
+struct generic_pm_domain_data {
+ struct pm_domain_data base;
+ bool need_restore;
+};
+
+static inline struct generic_pm_domain_data *to_gpd_data(struct pm_domain_data *pdd)
+{
+ return container_of(pdd, struct generic_pm_domain_data, base);
+}
+
#ifdef CONFIG_PM_GENERIC_DOMAINS
extern int pm_genpd_add_device(struct generic_pm_domain *genpd,
struct device *dev);
OpenPOWER on IntegriCloud