summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2014-09-19 20:27:37 +0200
committerRobin Gong <b38343@freescale.com>2015-02-11 13:07:33 +0800
commit7c11a6d71a049eb1f862f06168dd5ca740fa277e (patch)
tree30aa5f36a5d8d646bce7b7daf87de1a7cea44680 /include
parent5b24575a1aebe051ee79e0753e28dfb92404c5a8 (diff)
PM / Domains: Add APIs to attach/detach a PM domain for a device
To maintain scalability let's add common methods to attach and detach a PM domain for a device, dev_pm_domain_attach|detach(). Typically dev_pm_domain_attach() shall be invoked from subsystem level code at the probe phase to try to attach a device to its PM domain. The reversed actions may be done a the remove phase and then by invoking dev_pm_domain_detach(). When attachment succeeds, the attach function should assign its corresponding detach function to a new ->detach() callback added in the struct dev_pm_domain. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Tested-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Kevin Hilman <khilman@linaro.org> Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> (cherry picked from commit 46420dd73b800f87a19af13af5883855cf38cb08) (cherry picked from commit 451a5b00e51410adc16f8349ed753f7eced46bc5)
Diffstat (limited to 'include')
-rw-r--r--include/linux/pm.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/pm.h b/include/linux/pm.h
index ea05bc207c93..66c066a17682 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -599,6 +599,17 @@ struct dev_pm_domain {
void (*detach)(struct device *dev, bool power_off);
};
+#ifdef CONFIG_PM
+extern int dev_pm_domain_attach(struct device *dev, bool power_on);
+extern void dev_pm_domain_detach(struct device *dev, bool power_off);
+#else
+static inline int dev_pm_domain_attach(struct device *dev, bool power_on)
+{
+ return -ENODEV;
+}
+static inline void dev_pm_domain_detach(struct device *dev, bool power_off) {}
+#endif
+
/*
* The PM_EVENT_ messages are also used by drivers implementing the legacy
* suspend framework, based on the ->suspend() and ->resume() callbacks common