Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> writes: > On Thu, Oct 30, 2014 at 01:38:30PM -0700, Kevin Hilman wrote: >> "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx> writes: >> >> > On Thursday, October 30, 2014 01:02:49 PM Ulf Hansson wrote: >> >> Convert the prototype to return and int. This is just an initial step, >> >> needed to support error handling. >> >> >> >> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> >> >> Acked-by: Kevin Hilman <khilman@xxxxxxxxxx> >> >> >> >> >> This patch is intended as fix for 3.18 rc[n]. Why? >> >> >> >> There are other SOC specific patches around that adds genpd support and which >> >> implements the ->attach_dev() callback. To prevent having an "atomic" patch >> >> during the next release cycle, let's change the prototype now instead. >> >> >> >> Further patches will add the actual error handling in genpd and these can then >> >> be reviewed and tested thoroughly. >> > >> > So we have no users of ->attach_dev at the moment, right? >> >> Not in mainline, but there are a couple getting ready to hit -next, so >> we wanted to fix this before they arrive so that adding the error >> handling will be easier. > > BTW, while we are at it, can we also pass the domain itself to > attach_dev() and detach_dev()? If anything it helps with debugging (you > can print domain name from the callbacks). Agreed, and it makes it match the other callbacks (power_off, power_on) which currently take struct generic_pm_domain *domain. Updated version of $SUBJECT patch below. Kevin ----- >8 ------ >From 353a62ffae2f9228142c8a2093108f9eda8dc6b4 Mon Sep 17 00:00:00 2001 From: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Date: Thu, 30 Oct 2014 13:02:49 +0100 Subject: [PATCH] PM / Domains: Change prototype for the ->attach_dev() callback Convert the prototype to return and int. This is just an initial step, needed to support error handling. Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> [khilman: added domain as parameter to callbacks, as suggested by Dmitry] Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxx> --- drivers/base/power/domain.c | 4 ++-- include/linux/pm_domain.h | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 40bc2f4072cc..b520687046d4 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -1437,7 +1437,7 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev, spin_unlock_irq(&dev->power.lock); if (genpd->attach_dev) - genpd->attach_dev(dev); + genpd->attach_dev(genpd, dev); mutex_lock(&gpd_data->lock); gpd_data->base.dev = dev; @@ -1499,7 +1499,7 @@ int pm_genpd_remove_device(struct generic_pm_domain *genpd, genpd->max_off_time_changed = true; if (genpd->detach_dev) - genpd->detach_dev(dev); + genpd->detach_dev(genpd, dev); spin_lock_irq(&dev->power.lock); diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 73e938b7e937..b3ed7766a291 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -72,8 +72,10 @@ struct generic_pm_domain { bool max_off_time_changed; bool cached_power_down_ok; struct gpd_cpuidle_data *cpuidle_data; - void (*attach_dev)(struct device *dev); - void (*detach_dev)(struct device *dev); + int (*attach_dev)(struct generic_pm_domain *domain, + 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) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html