Commit c16561e8 authored by Ulf Hansson's avatar Ulf Hansson Committed by Rafael J. Wysocki

PM / Domains: Change prototype for the attach and detach callbacks

Convert the prototypes to return an int in order to support error
handling in these callbacks.

Also, as suggested by Dmitry Torokhov, pass the domain pointer for use
inside the callbacks, and so that they match the existing
power_on/power_off callbacks which currently take the domain pointer.
Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
[ khilman: added domain as parameter to callbacks, as suggested by Dmitry ]
Signed-off-by: default avatarKevin Hilman <khilman@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 0df1f248
...@@ -1437,7 +1437,7 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev, ...@@ -1437,7 +1437,7 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
spin_unlock_irq(&dev->power.lock); spin_unlock_irq(&dev->power.lock);
if (genpd->attach_dev) if (genpd->attach_dev)
genpd->attach_dev(dev); genpd->attach_dev(genpd, dev);
mutex_lock(&gpd_data->lock); mutex_lock(&gpd_data->lock);
gpd_data->base.dev = dev; gpd_data->base.dev = dev;
...@@ -1499,7 +1499,7 @@ int pm_genpd_remove_device(struct generic_pm_domain *genpd, ...@@ -1499,7 +1499,7 @@ int pm_genpd_remove_device(struct generic_pm_domain *genpd,
genpd->max_off_time_changed = true; genpd->max_off_time_changed = true;
if (genpd->detach_dev) if (genpd->detach_dev)
genpd->detach_dev(dev); genpd->detach_dev(genpd, dev);
spin_lock_irq(&dev->power.lock); spin_lock_irq(&dev->power.lock);
......
...@@ -72,8 +72,10 @@ struct generic_pm_domain { ...@@ -72,8 +72,10 @@ struct generic_pm_domain {
bool max_off_time_changed; bool max_off_time_changed;
bool cached_power_down_ok; bool cached_power_down_ok;
struct gpd_cpuidle_data *cpuidle_data; struct gpd_cpuidle_data *cpuidle_data;
void (*attach_dev)(struct device *dev); int (*attach_dev)(struct generic_pm_domain *domain,
void (*detach_dev)(struct device *dev); struct device *dev);
void (*detach_dev)(struct generic_pm_domain *domain,
struct device *dev);
}; };
static inline struct generic_pm_domain *pd_to_genpd(struct dev_pm_domain *pd) static inline struct generic_pm_domain *pd_to_genpd(struct dev_pm_domain *pd)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment