diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2014-09-19 20:27:37 +0200 |
---|---|---|
committer | Robin Gong <b38343@freescale.com> | 2015-02-11 13:07:33 +0800 |
commit | 7c11a6d71a049eb1f862f06168dd5ca740fa277e (patch) | |
tree | 30aa5f36a5d8d646bce7b7daf87de1a7cea44680 /include | |
parent | 5b24575a1aebe051ee79e0753e28dfb92404c5a8 (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.h | 11 |
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 |