linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
@ 2014-09-03 10:52 Ulf Hansson
  2014-09-03 10:52 ` [PATCH 01/15] PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs Ulf Hansson
                   ` (17 more replies)
  0 siblings, 18 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

This patchset has a bit of a history and some parts of it has been posted
earlier.
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html

The intent is to simplify code for the generic power domain and also some of
the machine specific code that uses the generic power domain.

Do note, there are dependencies through this patchset, especially related to
the ARM SoC changes, thus they all need to be kept together.

Ulf Hansson (15):
  PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs
  PM / Domains: Ignore callbacks for subsys generic_pm_domain_data
  PM / Domains: Remove system PM callbacks from gpd_dev_ops
  ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config
  ARM: shmobile: Drop dev_irq_safe from R-mobile genpd config
  PM / Domains: Remove dev_irq_safe from genpd config
  PM / Domains: Remove redundant check for CONFIG_PM
  PM / Domains: Remove pm_genpd_syscore_switch() API
  PM / Domains: Remove genpd_queue_power_off_work() API
  PM / Domains: Add late_initcall to disable unused PM domains
  ARM: exynos: Leave disabling of unused PM domains to genpd
  ARM: s3c64xx: Leave disabling of unused PM domains to genpd
  drivers: sh: Leave disabling of unused PM domains to genpd
  PM / Domains: Remove default_stop_ok() API
  PM / Domains: Keep declaration of dev_power_governors together

 arch/arm/mach-exynos/exynos.c         |   1 -
 arch/arm/mach-s3c64xx/common.c        |   5 -
 arch/arm/mach-s3c64xx/common.h        |   7 -
 arch/arm/mach-s3c64xx/mach-anw6410.c  |   1 -
 arch/arm/mach-s3c64xx/mach-crag6410.c |   1 -
 arch/arm/mach-s3c64xx/mach-hmt.c      |   1 -
 arch/arm/mach-s3c64xx/mach-mini6410.c |   1 -
 arch/arm/mach-s3c64xx/mach-ncp.c      |   1 -
 arch/arm/mach-s3c64xx/mach-real6410.c |   1 -
 arch/arm/mach-s3c64xx/mach-smartq5.c  |   1 -
 arch/arm/mach-s3c64xx/mach-smartq7.c  |   1 -
 arch/arm/mach-s3c64xx/mach-smdk6400.c |   1 -
 arch/arm/mach-s3c64xx/mach-smdk6410.c |   1 -
 arch/arm/mach-s3c64xx/pm.c            |   7 -
 arch/arm/mach-shmobile/pm-r8a7779.c   |   1 -
 arch/arm/mach-shmobile/pm-rmobile.c   |   1 -
 drivers/base/power/domain.c           | 322 ++++------------------------------
 drivers/base/power/domain_governor.c  |   7 +-
 drivers/sh/pm_runtime.c               |  11 --
 include/linux/pm_domain.h             |  56 +-----
 20 files changed, 40 insertions(+), 388 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 01/15] PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 02/15] PM / Domains: Ignore callbacks for subsys generic_pm_domain_data Ulf Hansson
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

There are no users of these APIs. To simplify the generic power domain
let's remove them.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 106 --------------------------------------------
 include/linux/pm_domain.h   |  19 --------
 2 files changed, 125 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index eee55c1..e613e3c 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1744,112 +1744,6 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
 }
 
 /**
- * pm_genpd_add_callbacks - Add PM domain callbacks to a given device.
- * @dev: Device to add the callbacks to.
- * @ops: Set of callbacks to add.
- * @td: Timing data to add to the device along with the callbacks (optional).
- *
- * Every call to this routine should be balanced with a call to
- * __pm_genpd_remove_callbacks() and they must not be nested.
- */
-int pm_genpd_add_callbacks(struct device *dev, struct gpd_dev_ops *ops,
-			   struct gpd_timing_data *td)
-{
-	struct generic_pm_domain_data *gpd_data_new, *gpd_data = NULL;
-	int ret = 0;
-
-	if (!(dev && ops))
-		return -EINVAL;
-
-	gpd_data_new = __pm_genpd_alloc_dev_data(dev);
-	if (!gpd_data_new)
-		return -ENOMEM;
-
-	pm_runtime_disable(dev);
-	device_pm_lock();
-
-	ret = dev_pm_get_subsys_data(dev);
-	if (ret)
-		goto out;
-
-	spin_lock_irq(&dev->power.lock);
-
-	if (dev->power.subsys_data->domain_data) {
-		gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
-	} else {
-		gpd_data = gpd_data_new;
-		dev->power.subsys_data->domain_data = &gpd_data->base;
-	}
-	gpd_data->refcount++;
-	gpd_data->ops = *ops;
-	if (td)
-		gpd_data->td = *td;
-
-	spin_unlock_irq(&dev->power.lock);
-
- out:
-	device_pm_unlock();
-	pm_runtime_enable(dev);
-
-	if (gpd_data != gpd_data_new)
-		__pm_genpd_free_dev_data(dev, gpd_data_new);
-
-	return ret;
-}
-EXPORT_SYMBOL_GPL(pm_genpd_add_callbacks);
-
-/**
- * __pm_genpd_remove_callbacks - Remove PM domain callbacks from a given device.
- * @dev: Device to remove the callbacks from.
- * @clear_td: If set, clear the device's timing data too.
- *
- * This routine can only be called after pm_genpd_add_callbacks().
- */
-int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td)
-{
-	struct generic_pm_domain_data *gpd_data = NULL;
-	bool remove = false;
-	int ret = 0;
-
-	if (!(dev && dev->power.subsys_data))
-		return -EINVAL;
-
-	pm_runtime_disable(dev);
-	device_pm_lock();
-
-	spin_lock_irq(&dev->power.lock);
-
-	if (dev->power.subsys_data->domain_data) {
-		gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
-		gpd_data->ops = (struct gpd_dev_ops){ NULL };
-		if (clear_td)
-			gpd_data->td = (struct gpd_timing_data){ 0 };
-
-		if (--gpd_data->refcount == 0) {
-			dev->power.subsys_data->domain_data = NULL;
-			remove = true;
-		}
-	} else {
-		ret = -EINVAL;
-	}
-
-	spin_unlock_irq(&dev->power.lock);
-
-	device_pm_unlock();
-	pm_runtime_enable(dev);
-
-	if (ret)
-		return ret;
-
-	dev_pm_put_subsys_data(dev);
-	if (remove)
-		__pm_genpd_free_dev_data(dev, gpd_data);
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(__pm_genpd_remove_callbacks);
-
-/**
  * pm_genpd_attach_cpuidle - Connect the given PM domain with cpuidle.
  * @genpd: PM domain to be connected with cpuidle.
  * @state: cpuidle state this domain can disable/enable.
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index 7c1d252..0aa9ad9 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -151,10 +151,6 @@ extern int pm_genpd_add_subdomain_names(const char *master_name,
 					const char *subdomain_name);
 extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
 				     struct generic_pm_domain *target);
-extern int pm_genpd_add_callbacks(struct device *dev,
-				  struct gpd_dev_ops *ops,
-				  struct gpd_timing_data *td);
-extern int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td);
 extern int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state);
 extern int pm_genpd_name_attach_cpuidle(const char *name, int state);
 extern int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd);
@@ -217,16 +213,6 @@ static inline int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
 {
 	return -ENOSYS;
 }
-static inline int pm_genpd_add_callbacks(struct device *dev,
-					 struct gpd_dev_ops *ops,
-					 struct gpd_timing_data *td)
-{
-	return -ENOSYS;
-}
-static inline int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td)
-{
-	return -ENOSYS;
-}
 static inline int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int st)
 {
 	return -ENOSYS;
@@ -281,11 +267,6 @@ static inline int pm_genpd_name_add_device(const char *domain_name,
 	return __pm_genpd_name_add_device(domain_name, dev, NULL);
 }
 
-static inline int pm_genpd_remove_callbacks(struct device *dev)
-{
-	return __pm_genpd_remove_callbacks(dev, true);
-}
-
 #ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME
 extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);
 extern void pm_genpd_poweroff_unused(void);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 02/15] PM / Domains: Ignore callbacks for subsys generic_pm_domain_data
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
  2014-09-03 10:52 ` [PATCH 01/15] PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 03/15] PM / Domains: Remove system PM callbacks from gpd_dev_ops Ulf Hansson
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

In a step of simplifying the generic power domain let's move away from
using these callbacks.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 131 +++-----------------------------------------
 include/linux/pm_domain.h   |   1 -
 2 files changed, 8 insertions(+), 124 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index e613e3c..aa5b14c 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -25,10 +25,6 @@
 	__routine = genpd->dev_ops.callback; 			\
 	if (__routine) {					\
 		__ret = __routine(dev); 			\
-	} else {						\
-		__routine = dev_gpd_data(dev)->ops.callback;	\
-		if (__routine) 					\
-			__ret = __routine(dev);			\
 	}							\
 	__ret;							\
 })
@@ -1871,10 +1867,6 @@ static int pm_genpd_default_save_state(struct device *dev)
 {
 	int (*cb)(struct device *__dev);
 
-	cb = dev_gpd_data(dev)->ops.save_state;
-	if (cb)
-		return cb(dev);
-
 	if (dev->type && dev->type->pm)
 		cb = dev->type->pm->runtime_suspend;
 	else if (dev->class && dev->class->pm)
@@ -1898,10 +1890,6 @@ static int pm_genpd_default_restore_state(struct device *dev)
 {
 	int (*cb)(struct device *__dev);
 
-	cb = dev_gpd_data(dev)->ops.restore_state;
-	if (cb)
-		return cb(dev);
-
 	if (dev->type && dev->type->pm)
 		cb = dev->type->pm->runtime_resume;
 	else if (dev->class && dev->class->pm)
@@ -1917,109 +1905,6 @@ static int pm_genpd_default_restore_state(struct device *dev)
 	return cb ? cb(dev) : 0;
 }
 
-#ifdef CONFIG_PM_SLEEP
-
-/**
- * pm_genpd_default_suspend - Default "device suspend" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_suspend(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.suspend;
-
-	return cb ? cb(dev) : pm_generic_suspend(dev);
-}
-
-/**
- * pm_genpd_default_suspend_late - Default "late device suspend" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_suspend_late(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.suspend_late;
-
-	return cb ? cb(dev) : pm_generic_suspend_late(dev);
-}
-
-/**
- * pm_genpd_default_resume_early - Default "early device resume" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_resume_early(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.resume_early;
-
-	return cb ? cb(dev) : pm_generic_resume_early(dev);
-}
-
-/**
- * pm_genpd_default_resume - Default "device resume" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_resume(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.resume;
-
-	return cb ? cb(dev) : pm_generic_resume(dev);
-}
-
-/**
- * pm_genpd_default_freeze - Default "device freeze" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_freeze(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.freeze;
-
-	return cb ? cb(dev) : pm_generic_freeze(dev);
-}
-
-/**
- * pm_genpd_default_freeze_late - Default "late device freeze" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_freeze_late(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.freeze_late;
-
-	return cb ? cb(dev) : pm_generic_freeze_late(dev);
-}
-
-/**
- * pm_genpd_default_thaw_early - Default "early device thaw" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_thaw_early(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.thaw_early;
-
-	return cb ? cb(dev) : pm_generic_thaw_early(dev);
-}
-
-/**
- * pm_genpd_default_thaw - Default "device thaw" for PM domians.
- * @dev: Device to handle.
- */
-static int pm_genpd_default_thaw(struct device *dev)
-{
-	int (*cb)(struct device *__dev) = dev_gpd_data(dev)->ops.thaw;
-
-	return cb ? cb(dev) : pm_generic_thaw(dev);
-}
-
-#else /* !CONFIG_PM_SLEEP */
-
-#define pm_genpd_default_suspend	NULL
-#define pm_genpd_default_suspend_late	NULL
-#define pm_genpd_default_resume_early	NULL
-#define pm_genpd_default_resume		NULL
-#define pm_genpd_default_freeze		NULL
-#define pm_genpd_default_freeze_late	NULL
-#define pm_genpd_default_thaw_early	NULL
-#define pm_genpd_default_thaw		NULL
-
-#endif /* !CONFIG_PM_SLEEP */
-
 /**
  * pm_genpd_init - Initialize a generic I/O PM domain object.
  * @genpd: PM domain object to initialize.
@@ -2071,14 +1956,14 @@ void pm_genpd_init(struct generic_pm_domain *genpd,
 	genpd->domain.ops.complete = pm_genpd_complete;
 	genpd->dev_ops.save_state = pm_genpd_default_save_state;
 	genpd->dev_ops.restore_state = pm_genpd_default_restore_state;
-	genpd->dev_ops.suspend = pm_genpd_default_suspend;
-	genpd->dev_ops.suspend_late = pm_genpd_default_suspend_late;
-	genpd->dev_ops.resume_early = pm_genpd_default_resume_early;
-	genpd->dev_ops.resume = pm_genpd_default_resume;
-	genpd->dev_ops.freeze = pm_genpd_default_freeze;
-	genpd->dev_ops.freeze_late = pm_genpd_default_freeze_late;
-	genpd->dev_ops.thaw_early = pm_genpd_default_thaw_early;
-	genpd->dev_ops.thaw = pm_genpd_default_thaw;
+	genpd->dev_ops.suspend = pm_generic_suspend;
+	genpd->dev_ops.suspend_late = pm_generic_suspend_late;
+	genpd->dev_ops.resume_early = pm_generic_resume_early;
+	genpd->dev_ops.resume = pm_generic_resume;
+	genpd->dev_ops.freeze = pm_generic_freeze;
+	genpd->dev_ops.freeze_late = pm_generic_freeze_late;
+	genpd->dev_ops.thaw_early = pm_generic_thaw_early;
+	genpd->dev_ops.thaw = pm_generic_thaw;
 	mutex_lock(&gpd_list_lock);
 	list_add(&genpd->gpd_list_node, &gpd_list);
 	mutex_unlock(&gpd_list_lock);
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index 0aa9ad9..a54bbbe 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -108,7 +108,6 @@ struct gpd_timing_data {
 
 struct generic_pm_domain_data {
 	struct pm_domain_data base;
-	struct gpd_dev_ops ops;
 	struct gpd_timing_data td;
 	struct notifier_block nb;
 	struct mutex lock;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 03/15] PM / Domains: Remove system PM callbacks from gpd_dev_ops
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
  2014-09-03 10:52 ` [PATCH 01/15] PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs Ulf Hansson
  2014-09-03 10:52 ` [PATCH 02/15] PM / Domains: Ignore callbacks for subsys generic_pm_domain_data Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 04/15] ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config Ulf Hansson
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

There no users of these callbacks, let's simplify the generic power
domain by removing them.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 64 ++++++---------------------------------------
 include/linux/pm_domain.h   |  8 ------
 2 files changed, 8 insertions(+), 64 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index aa5b14c..e777609 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -770,46 +770,6 @@ static bool genpd_dev_active_wakeup(struct generic_pm_domain *genpd,
 	return GENPD_DEV_CALLBACK(genpd, bool, active_wakeup, dev);
 }
 
-static int genpd_suspend_dev(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, suspend, dev);
-}
-
-static int genpd_suspend_late(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, suspend_late, dev);
-}
-
-static int genpd_resume_early(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, resume_early, dev);
-}
-
-static int genpd_resume_dev(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, resume, dev);
-}
-
-static int genpd_freeze_dev(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, freeze, dev);
-}
-
-static int genpd_freeze_late(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, freeze_late, dev);
-}
-
-static int genpd_thaw_early(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, thaw_early, dev);
-}
-
-static int genpd_thaw_dev(struct generic_pm_domain *genpd, struct device *dev)
-{
-	return GENPD_DEV_CALLBACK(genpd, int, thaw, dev);
-}
-
 /**
  * pm_genpd_sync_poweroff - Synchronously power off a PM domain and its masters.
  * @genpd: PM domain to power off, if possible.
@@ -991,7 +951,7 @@ static int pm_genpd_suspend(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_suspend_dev(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_suspend(dev);
 }
 
 /**
@@ -1012,7 +972,7 @@ static int pm_genpd_suspend_late(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_suspend_late(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_suspend_late(dev);
 }
 
 /**
@@ -1099,7 +1059,7 @@ static int pm_genpd_resume_early(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_resume_early(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_resume_early(dev);
 }
 
 /**
@@ -1120,7 +1080,7 @@ static int pm_genpd_resume(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_resume_dev(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_resume(dev);
 }
 
 /**
@@ -1141,7 +1101,7 @@ static int pm_genpd_freeze(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_freeze_dev(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_freeze(dev);
 }
 
 /**
@@ -1163,7 +1123,7 @@ static int pm_genpd_freeze_late(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_freeze_late(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_freeze_late(dev);
 }
 
 /**
@@ -1227,7 +1187,7 @@ static int pm_genpd_thaw_early(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_thaw_early(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_thaw_early(dev);
 }
 
 /**
@@ -1248,7 +1208,7 @@ static int pm_genpd_thaw(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	return genpd->suspend_power_off ? 0 : genpd_thaw_dev(genpd, dev);
+	return genpd->suspend_power_off ? 0 : pm_generic_thaw(dev);
 }
 
 /**
@@ -1956,14 +1916,6 @@ void pm_genpd_init(struct generic_pm_domain *genpd,
 	genpd->domain.ops.complete = pm_genpd_complete;
 	genpd->dev_ops.save_state = pm_genpd_default_save_state;
 	genpd->dev_ops.restore_state = pm_genpd_default_restore_state;
-	genpd->dev_ops.suspend = pm_generic_suspend;
-	genpd->dev_ops.suspend_late = pm_generic_suspend_late;
-	genpd->dev_ops.resume_early = pm_generic_resume_early;
-	genpd->dev_ops.resume = pm_generic_resume;
-	genpd->dev_ops.freeze = pm_generic_freeze;
-	genpd->dev_ops.freeze_late = pm_generic_freeze_late;
-	genpd->dev_ops.thaw_early = pm_generic_thaw_early;
-	genpd->dev_ops.thaw = pm_generic_thaw;
 	mutex_lock(&gpd_list_lock);
 	list_add(&genpd->gpd_list_node, &gpd_list);
 	mutex_unlock(&gpd_list_lock);
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index a54bbbe..fd5efc8 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -35,14 +35,6 @@ struct gpd_dev_ops {
 	int (*stop)(struct device *dev);
 	int (*save_state)(struct device *dev);
 	int (*restore_state)(struct device *dev);
-	int (*suspend)(struct device *dev);
-	int (*suspend_late)(struct device *dev);
-	int (*resume_early)(struct device *dev);
-	int (*resume)(struct device *dev);
-	int (*freeze)(struct device *dev);
-	int (*freeze_late)(struct device *dev);
-	int (*thaw_early)(struct device *dev);
-	int (*thaw)(struct device *dev);
 	bool (*active_wakeup)(struct device *dev);
 };
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 04/15] ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (2 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 03/15] PM / Domains: Remove system PM callbacks from gpd_dev_ops Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 05/15] ARM: shmobile: Drop dev_irq_safe from R-mobile " Ulf Hansson
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

The dev_irq_safe configuration is redundant, genpd don't have any
special treatmeant for handling it. Let's remove it.

Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 arch/arm/mach-shmobile/pm-r8a7779.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-shmobile/pm-r8a7779.c b/arch/arm/mach-shmobile/pm-r8a7779.c
index 69f70b7..82fe3d7 100644
--- a/arch/arm/mach-shmobile/pm-r8a7779.c
+++ b/arch/arm/mach-shmobile/pm-r8a7779.c
@@ -87,7 +87,6 @@ static void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd)
 	genpd->dev_ops.stop = pm_clk_suspend;
 	genpd->dev_ops.start = pm_clk_resume;
 	genpd->dev_ops.active_wakeup = pd_active_wakeup;
-	genpd->dev_irq_safe = true;
 	genpd->power_off = pd_power_down;
 	genpd->power_on = pd_power_up;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 05/15] ARM: shmobile: Drop dev_irq_safe from R-mobile genpd config
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (3 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 04/15] ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 06/15] PM / Domains: Remove dev_irq_safe from " Ulf Hansson
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

The dev_irq_safe configuration is redundant, genpd don't have any
special treatmeant for handling it. Let's remove it.

Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 arch/arm/mach-shmobile/pm-rmobile.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c
index ebdd16e..818de2f 100644
--- a/arch/arm/mach-shmobile/pm-rmobile.c
+++ b/arch/arm/mach-shmobile/pm-rmobile.c
@@ -111,7 +111,6 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
 	genpd->dev_ops.stop		= pm_clk_suspend;
 	genpd->dev_ops.start		= pm_clk_resume;
 	genpd->dev_ops.active_wakeup	= rmobile_pd_active_wakeup;
-	genpd->dev_irq_safe		= true;
 	genpd->power_off		= rmobile_pd_power_down;
 	genpd->power_on			= rmobile_pd_power_up;
 	__rmobile_pd_power_up(rmobile_pd, false);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 06/15] PM / Domains: Remove dev_irq_safe from genpd config
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (4 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 05/15] ARM: shmobile: Drop dev_irq_safe from R-mobile " Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 07/15] PM / Domains: Remove redundant check for CONFIG_PM Ulf Hansson
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

The genpd dev_irq_safe configuration somewhat overlaps with the runtime
PM pm_runtime_irq_safe() option. Also, currently genpd don't have a
good way to deal with these device. So, until we figured out if and how
to support this in genpd, let's remove the option to configure it.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 4 ----
 include/linux/pm_domain.h   | 1 -
 2 files changed, 5 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index e777609..4298a2b 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -615,8 +615,6 @@ static int pm_genpd_runtime_suspend(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	might_sleep_if(!genpd->dev_irq_safe);
-
 	stop_ok = genpd->gov ? genpd->gov->stop_ok : NULL;
 	if (stop_ok && !stop_ok(dev))
 		return -EBUSY;
@@ -661,8 +659,6 @@ static int pm_genpd_runtime_resume(struct device *dev)
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	might_sleep_if(!genpd->dev_irq_safe);
-
 	/* If power.irq_safe, the PM domain is never powered off. */
 	if (dev->power.irq_safe)
 		return genpd_start_dev_no_timing(genpd, dev);
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index fd5efc8..f2545a8 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -63,7 +63,6 @@ struct generic_pm_domain {
 	unsigned int suspended_count;	/* System suspend device counter */
 	unsigned int prepared_count;	/* Suspend counter of prepared devices */
 	bool suspend_power_off;	/* Power status before system suspend */
-	bool dev_irq_safe;	/* Device callbacks are IRQ-safe */
 	int (*power_off)(struct generic_pm_domain *domain);
 	s64 power_off_latency_ns;
 	int (*power_on)(struct generic_pm_domain *domain);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 07/15] PM / Domains: Remove redundant check for CONFIG_PM
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (5 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 06/15] PM / Domains: Remove dev_irq_safe from " Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 08/15] PM / Domains: Remove pm_genpd_syscore_switch() API Ulf Hansson
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

CONFIG_PM_GENERIC_DOMAINS depends on CONFIG_PM, thus there are no need
to check explicity for it.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 4298a2b..b910d0f 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -66,8 +66,6 @@ static struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
 	return genpd;
 }
 
-#ifdef CONFIG_PM
-
 struct generic_pm_domain *dev_to_genpd(struct device *dev)
 {
 	if (IS_ERR_OR_NULL(dev->pm_domain))
@@ -281,8 +279,6 @@ int pm_genpd_name_poweron(const char *domain_name)
 	return genpd ? pm_genpd_poweron(genpd) : -EINVAL;
 }
 
-#endif /* CONFIG_PM */
-
 #ifdef CONFIG_PM_RUNTIME
 
 static int genpd_start_dev_no_timing(struct generic_pm_domain *genpd,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 08/15] PM / Domains: Remove pm_genpd_syscore_switch() API
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (6 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 07/15] PM / Domains: Remove redundant check for CONFIG_PM Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 09/15] PM / Domains: Remove genpd_queue_power_off_work() API Ulf Hansson
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

The pm_genpd_syscore_poweroff() API and pm_genpd_syscore_poweron() API
makes the pm_genpd_syscore_switch() API redundant.

Moreover, since there are no active users, let's just remove it.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 17 ++++++++++++++---
 include/linux/pm_domain.h   | 16 ++++------------
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index b910d0f..601e35b 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1292,13 +1292,13 @@ static void pm_genpd_complete(struct device *dev)
 }
 
 /**
- * pm_genpd_syscore_switch - Switch power during system core suspend or resume.
+ * genpd_syscore_switch - Switch power during system core suspend or resume.
  * @dev: Device that normally is marked as "always on" to switch power for.
  *
  * This routine may only be called during the system core (syscore) suspend or
  * resume phase for devices whose "always on" flags are set.
  */
-void pm_genpd_syscore_switch(struct device *dev, bool suspend)
+static void genpd_syscore_switch(struct device *dev, bool suspend)
 {
 	struct generic_pm_domain *genpd;
 
@@ -1314,7 +1314,18 @@ void pm_genpd_syscore_switch(struct device *dev, bool suspend)
 		genpd->suspended_count--;
 	}
 }
-EXPORT_SYMBOL_GPL(pm_genpd_syscore_switch);
+
+void pm_genpd_syscore_poweroff(struct device *dev)
+{
+	genpd_syscore_switch(dev, true);
+}
+EXPORT_SYMBOL_GPL(pm_genpd_syscore_poweroff);
+
+void pm_genpd_syscore_poweron(struct device *dev)
+{
+	genpd_syscore_switch(dev, false);
+}
+EXPORT_SYMBOL_GPL(pm_genpd_syscore_poweron);
 
 #else
 
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index f2545a8..eeba1a4 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -266,19 +266,11 @@ static inline void pm_genpd_poweroff_unused(void) {}
 #endif
 
 #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
-extern void pm_genpd_syscore_switch(struct device *dev, bool suspend);
+extern void pm_genpd_syscore_poweroff(struct device *dev);
+extern void pm_genpd_syscore_poweron(struct device *dev);
 #else
-static inline void pm_genpd_syscore_switch(struct device *dev, bool suspend) {}
+static inline void pm_genpd_syscore_poweroff(struct device *dev) {}
+static inline void pm_genpd_syscore_poweron(struct device *dev) {}
 #endif
 
-static inline void pm_genpd_syscore_poweroff(struct device *dev)
-{
-	pm_genpd_syscore_switch(dev, true);
-}
-
-static inline void pm_genpd_syscore_poweron(struct device *dev)
-{
-	pm_genpd_syscore_switch(dev, false);
-}
-
 #endif /* _LINUX_PM_DOMAIN_H */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 09/15] PM / Domains: Remove genpd_queue_power_off_work() API
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (7 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 08/15] PM / Domains: Remove pm_genpd_syscore_switch() API Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 10/15] PM / Domains: Add late_initcall to disable unused PM domains Ulf Hansson
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

There are no active users of this API. Let's remove it and if future
needs shows up we could consider to have a get/put API instead.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 5 ++++-
 include/linux/pm_domain.h   | 2 --
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 601e35b..d71d045 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -422,7 +422,7 @@ static bool genpd_abort_poweroff(struct generic_pm_domain *genpd)
  * Queue up the execution of pm_genpd_poweroff() unless it's already been done
  * before.
  */
-void genpd_queue_power_off_work(struct generic_pm_domain *genpd)
+static void genpd_queue_power_off_work(struct generic_pm_domain *genpd)
 {
 	queue_work(pm_wq, &genpd->power_off_work);
 }
@@ -729,6 +729,9 @@ static inline int genpd_dev_pm_qos_notifier(struct notifier_block *nb,
 	return NOTIFY_DONE;
 }
 
+static inline void
+genpd_queue_power_off_work(struct generic_pm_domain *genpd) {}
+
 static inline void genpd_power_off_work_fn(struct work_struct *work) {}
 
 #define pm_genpd_runtime_suspend	NULL
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index eeba1a4..abeb5dc 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -258,10 +258,8 @@ static inline int pm_genpd_name_add_device(const char *domain_name,
 }
 
 #ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME
-extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);
 extern void pm_genpd_poweroff_unused(void);
 #else
-static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {}
 static inline void pm_genpd_poweroff_unused(void) {}
 #endif
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 10/15] PM / Domains: Add late_initcall to disable unused PM domains
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (8 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 09/15] PM / Domains: Remove genpd_queue_power_off_work() API Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 11/15] ARM: exynos: Leave disabling of unused PM domains to genpd Ulf Hansson
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

As default behavior let genpd at late init try to disable the unused
PM domains.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index d71d045..cf4651a 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -721,6 +721,13 @@ void pm_genpd_poweroff_unused(void)
 	mutex_unlock(&gpd_list_lock);
 }
 
+static int __init genpd_poweroff_unused(void)
+{
+	pm_genpd_poweroff_unused();
+	return 0;
+}
+late_initcall(genpd_poweroff_unused);
+
 #else
 
 static inline int genpd_dev_pm_qos_notifier(struct notifier_block *nb,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 11/15] ARM: exynos: Leave disabling of unused PM domains to genpd
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (9 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 10/15] PM / Domains: Add late_initcall to disable unused PM domains Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 12/15] ARM: s3c64xx: " Ulf Hansson
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

Since genpd at late init, will try to disable unused PM domains we
don't need to do it from here as well.

Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 arch/arm/mach-exynos/exynos.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 6a24e11..b89e5f3 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -193,7 +193,6 @@ static void __init exynos_init_late(void)
 		/* to be supported later */
 		return;
 
-	pm_genpd_poweroff_unused();
 	exynos_pm_init();
 }
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 12/15] ARM: s3c64xx: Leave disabling of unused PM domains to genpd
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (10 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 11/15] ARM: exynos: Leave disabling of unused PM domains to genpd Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 10:52 ` [PATCH 13/15] drivers: sh: " Ulf Hansson
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

Since genpd at late init, will try to disable unused PM domains we
don't need to do it from the machine specific code as well.

Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 arch/arm/mach-s3c64xx/common.c        | 5 -----
 arch/arm/mach-s3c64xx/common.h        | 7 -------
 arch/arm/mach-s3c64xx/mach-anw6410.c  | 1 -
 arch/arm/mach-s3c64xx/mach-crag6410.c | 1 -
 arch/arm/mach-s3c64xx/mach-hmt.c      | 1 -
 arch/arm/mach-s3c64xx/mach-mini6410.c | 1 -
 arch/arm/mach-s3c64xx/mach-ncp.c      | 1 -
 arch/arm/mach-s3c64xx/mach-real6410.c | 1 -
 arch/arm/mach-s3c64xx/mach-smartq5.c  | 1 -
 arch/arm/mach-s3c64xx/mach-smartq7.c  | 1 -
 arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 -
 arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 -
 arch/arm/mach-s3c64xx/pm.c            | 7 -------
 13 files changed, 29 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c
index 5c45aae..16547f2 100644
--- a/arch/arm/mach-s3c64xx/common.c
+++ b/arch/arm/mach-s3c64xx/common.c
@@ -440,8 +440,3 @@ void s3c64xx_restart(enum reboot_mode mode, const char *cmd)
 	/* if all else fails, or mode was for soft, jump to 0 */
 	soft_restart(0);
 }
-
-void __init s3c64xx_init_late(void)
-{
-	s3c64xx_pm_late_initcall();
-}
diff --git a/arch/arm/mach-s3c64xx/common.h b/arch/arm/mach-s3c64xx/common.h
index 7043e7a..9eb8644 100644
--- a/arch/arm/mach-s3c64xx/common.h
+++ b/arch/arm/mach-s3c64xx/common.h
@@ -23,7 +23,6 @@ void s3c64xx_init_irq(u32 vic0, u32 vic1);
 void s3c64xx_init_io(struct map_desc *mach_desc, int size);
 
 void s3c64xx_restart(enum reboot_mode mode, const char *cmd);
-void s3c64xx_init_late(void);
 
 void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f,
 	unsigned long xusbxti_f, bool is_s3c6400, void __iomem *reg_base);
@@ -52,12 +51,6 @@ extern void s3c6410_map_io(void);
 #define s3c6410_init NULL
 #endif
 
-#ifdef CONFIG_PM
-int __init s3c64xx_pm_late_initcall(void);
-#else
-static inline int s3c64xx_pm_late_initcall(void) { return 0; }
-#endif
-
 #ifdef CONFIG_S3C64XX_PL080
 extern struct pl08x_platform_data s3c64xx_dma0_plat_data;
 extern struct pl08x_platform_data s3c64xx_dma1_plat_data;
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c
index 60576df..6224c67 100644
--- a/arch/arm/mach-s3c64xx/mach-anw6410.c
+++ b/arch/arm/mach-s3c64xx/mach-anw6410.c
@@ -233,7 +233,6 @@ MACHINE_START(ANW6410, "A&W6410")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= anw6410_map_io,
 	.init_machine	= anw6410_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c
index fe11633..10b913b 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
@@ -857,7 +857,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= crag6410_map_io,
 	.init_machine	= crag6410_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c
index 19e8feb..e4b087c 100644
--- a/arch/arm/mach-s3c64xx/mach-hmt.c
+++ b/arch/arm/mach-s3c64xx/mach-hmt.c
@@ -277,7 +277,6 @@ MACHINE_START(HMT, "Airgoo-HMT")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= hmt_map_io,
 	.init_machine	= hmt_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c
index 9cbc076..ab61af5 100644
--- a/arch/arm/mach-s3c64xx/mach-mini6410.c
+++ b/arch/arm/mach-s3c64xx/mach-mini6410.c
@@ -366,7 +366,6 @@ MACHINE_START(MINI6410, "MINI6410")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= mini6410_map_io,
 	.init_machine	= mini6410_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-ncp.c b/arch/arm/mach-s3c64xx/mach-ncp.c
index 4bae7dc..80cb144 100644
--- a/arch/arm/mach-s3c64xx/mach-ncp.c
+++ b/arch/arm/mach-s3c64xx/mach-ncp.c
@@ -103,7 +103,6 @@ MACHINE_START(NCP, "NCP")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= ncp_map_io,
 	.init_machine	= ncp_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c
index fbad2af..85fa959 100644
--- a/arch/arm/mach-s3c64xx/mach-real6410.c
+++ b/arch/arm/mach-s3c64xx/mach-real6410.c
@@ -335,7 +335,6 @@ MACHINE_START(REAL6410, "REAL6410")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= real6410_map_io,
 	.init_machine	= real6410_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c
index dec4c08..33224ab 100644
--- a/arch/arm/mach-s3c64xx/mach-smartq5.c
+++ b/arch/arm/mach-s3c64xx/mach-smartq5.c
@@ -156,7 +156,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= smartq_map_io,
 	.init_machine	= smartq5_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c
index 27b3220..fc7fece 100644
--- a/arch/arm/mach-s3c64xx/mach-smartq7.c
+++ b/arch/arm/mach-s3c64xx/mach-smartq7.c
@@ -172,7 +172,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= smartq_map_io,
 	.init_machine	= smartq7_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6400.c b/arch/arm/mach-s3c64xx/mach-smdk6400.c
index 9107497..6f42512 100644
--- a/arch/arm/mach-s3c64xx/mach-smdk6400.c
+++ b/arch/arm/mach-s3c64xx/mach-smdk6400.c
@@ -92,7 +92,6 @@ MACHINE_START(SMDK6400, "SMDK6400")
 	.init_irq	= s3c6400_init_irq,
 	.map_io		= smdk6400_map_io,
 	.init_machine	= smdk6400_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c
index 1dc86d7..661eb66 100644
--- a/arch/arm/mach-s3c64xx/mach-smdk6410.c
+++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c
@@ -705,7 +705,6 @@ MACHINE_START(SMDK6410, "SMDK6410")
 	.init_irq	= s3c6410_init_irq,
 	.map_io		= smdk6410_map_io,
 	.init_machine	= smdk6410_machine_init,
-	.init_late	= s3c64xx_init_late,
 	.init_time	= samsung_timer_init,
 	.restart	= s3c64xx_restart,
 MACHINE_END
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c
index 6b37694..aaf7bea 100644
--- a/arch/arm/mach-s3c64xx/pm.c
+++ b/arch/arm/mach-s3c64xx/pm.c
@@ -347,10 +347,3 @@ static __init int s3c64xx_pm_initcall(void)
 	return 0;
 }
 arch_initcall(s3c64xx_pm_initcall);
-
-int __init s3c64xx_pm_late_initcall(void)
-{
-	pm_genpd_poweroff_unused();
-
-	return 0;
-}
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 13/15] drivers: sh: Leave disabling of unused PM domains to genpd
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (11 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 12/15] ARM: s3c64xx: " Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-04  0:33   ` Simon Horman
  2014-09-03 10:52 ` [PATCH 14/15] PM / Domains: Remove default_stop_ok() API Ulf Hansson
                   ` (4 subsequent siblings)
  17 siblings, 1 reply; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

Since genpd at late init, will try to disable unused PM domains we
don't need to do it from here as well.

Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/sh/pm_runtime.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/sh/pm_runtime.c b/drivers/sh/pm_runtime.c
index 72f6381..fe2c2d5 100644
--- a/drivers/sh/pm_runtime.c
+++ b/drivers/sh/pm_runtime.c
@@ -75,8 +75,6 @@ static struct pm_clk_notifier_block platform_bus_notifier = {
 	.con_ids = { NULL, },
 };
 
-static bool default_pm_on;
-
 static int __init sh_pm_runtime_init(void)
 {
 	if (IS_ENABLED(CONFIG_ARCH_SHMOBILE_MULTI)) {
@@ -96,16 +94,7 @@ static int __init sh_pm_runtime_init(void)
 			return 0;
 	}
 
-	default_pm_on = true;
 	pm_clk_add_notifier(&platform_bus_type, &platform_bus_notifier);
 	return 0;
 }
 core_initcall(sh_pm_runtime_init);
-
-static int __init sh_pm_runtime_late_init(void)
-{
-	if (default_pm_on)
-		pm_genpd_poweroff_unused();
-	return 0;
-}
-late_initcall(sh_pm_runtime_late_init);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 14/15] PM / Domains: Remove default_stop_ok() API
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (12 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 13/15] drivers: sh: " Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 13:15   ` Geert Uytterhoeven
  2014-09-03 10:52 ` [PATCH 15/15] PM / Domains: Keep declaration of dev_power_governors together Ulf Hansson
                   ` (3 subsequent siblings)
  17 siblings, 1 reply; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

There are currently no need to export default_stop_ok() as an API,
instead let's keep it local to the PM domain governor.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/base/power/domain_governor.c | 7 ++-----
 include/linux/pm_domain.h            | 6 ------
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/base/power/domain_governor.c b/drivers/base/power/domain_governor.c
index a089e3b..d88a62e 100644
--- a/drivers/base/power/domain_governor.c
+++ b/drivers/base/power/domain_governor.c
@@ -42,7 +42,7 @@ static int dev_update_qos_constraint(struct device *dev, void *data)
  * default_stop_ok - Default PM domain governor routine for stopping devices.
  * @dev: Device to check.
  */
-bool default_stop_ok(struct device *dev)
+static bool default_stop_ok(struct device *dev)
 {
 	struct gpd_timing_data *td = &dev_gpd_data(dev)->td;
 	unsigned long flags;
@@ -229,10 +229,7 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain)
 
 #else /* !CONFIG_PM_RUNTIME */
 
-bool default_stop_ok(struct device *dev)
-{
-	return false;
-}
+static inline bool default_stop_ok(struct device *dev) { return false; }
 
 #define default_power_down_ok	NULL
 #define always_on_power_down_ok	NULL
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index abeb5dc..ebf52ae 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -151,8 +151,6 @@ extern void pm_genpd_init(struct generic_pm_domain *genpd,
 extern int pm_genpd_poweron(struct generic_pm_domain *genpd);
 extern int pm_genpd_name_poweron(const char *domain_name);
 
-extern bool default_stop_ok(struct device *dev);
-
 extern struct dev_power_governor pm_domain_always_on_gov;
 #else
 
@@ -231,10 +229,6 @@ static inline int pm_genpd_name_poweron(const char *domain_name)
 {
 	return -ENOSYS;
 }
-static inline bool default_stop_ok(struct device *dev)
-{
-	return false;
-}
 #define simple_qos_governor NULL
 #define pm_domain_always_on_gov NULL
 #endif
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 15/15] PM / Domains: Keep declaration of dev_power_governors together
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (13 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 14/15] PM / Domains: Remove default_stop_ok() API Ulf Hansson
@ 2014-09-03 10:52 ` Ulf Hansson
  2014-09-03 11:10 ` [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Arnd Bergmann
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-03 10:52 UTC (permalink / raw)
  To: linux-arm-kernel

This is a pure code cleanup in the header file for the PM domain. No
functional change.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 include/linux/pm_domain.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index ebf52ae..324b927 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -117,8 +117,6 @@ static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
 	return to_gpd_data(dev->power.subsys_data->domain_data);
 }
 
-extern struct dev_power_governor simple_qos_governor;
-
 extern struct generic_pm_domain *dev_to_genpd(struct device *dev);
 extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
 				 struct device *dev,
@@ -151,6 +149,7 @@ extern void pm_genpd_init(struct generic_pm_domain *genpd,
 extern int pm_genpd_poweron(struct generic_pm_domain *genpd);
 extern int pm_genpd_name_poweron(const char *domain_name);
 
+extern struct dev_power_governor simple_qos_governor;
 extern struct dev_power_governor pm_domain_always_on_gov;
 #else
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (14 preceding siblings ...)
  2014-09-03 10:52 ` [PATCH 15/15] PM / Domains: Keep declaration of dev_power_governors together Ulf Hansson
@ 2014-09-03 11:10 ` Arnd Bergmann
  2014-09-04  8:40 ` Geert Uytterhoeven
  2014-09-05 15:35 ` Kevin Hilman
  17 siblings, 0 replies; 26+ messages in thread
From: Arnd Bergmann @ 2014-09-03 11:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 03 September 2014 12:52:16 Ulf Hansson wrote:
> 
>  arch/arm/mach-exynos/exynos.c         |   1 -
>  arch/arm/mach-s3c64xx/common.c        |   5 -
>  arch/arm/mach-s3c64xx/common.h        |   7 -
>  arch/arm/mach-s3c64xx/mach-anw6410.c  |   1 -
>  arch/arm/mach-s3c64xx/mach-crag6410.c |   1 -
>  arch/arm/mach-s3c64xx/mach-hmt.c      |   1 -
>  arch/arm/mach-s3c64xx/mach-mini6410.c |   1 -
>  arch/arm/mach-s3c64xx/mach-ncp.c      |   1 -
>  arch/arm/mach-s3c64xx/mach-real6410.c |   1 -
>  arch/arm/mach-s3c64xx/mach-smartq5.c  |   1 -
>  arch/arm/mach-s3c64xx/mach-smartq7.c  |   1 -
>  arch/arm/mach-s3c64xx/mach-smdk6400.c |   1 -
>  arch/arm/mach-s3c64xx/mach-smdk6410.c |   1 -
>  arch/arm/mach-s3c64xx/pm.c            |   7 -
>  arch/arm/mach-shmobile/pm-r8a7779.c   |   1 -
>  arch/arm/mach-shmobile/pm-rmobile.c   |   1 -
>  drivers/base/power/domain.c           | 322 ++++------------------------------
>  drivers/base/power/domain_governor.c  |   7 +-
>  drivers/sh/pm_runtime.c               |  11 --
>  include/linux/pm_domain.h             |  56 +-----
>  20 files changed, 40 insertions(+), 388 deletions(-)
> 

Wow, great diffstat!

I have no idea what this series really does, but I love it ;-)

	Arnd

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 14/15] PM / Domains: Remove default_stop_ok() API
  2014-09-03 10:52 ` [PATCH 14/15] PM / Domains: Remove default_stop_ok() API Ulf Hansson
@ 2014-09-03 13:15   ` Geert Uytterhoeven
  2014-09-04 19:49     ` Rafael J. Wysocki
  0 siblings, 1 reply; 26+ messages in thread
From: Geert Uytterhoeven @ 2014-09-03 13:15 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Ulf,

On Wed, Sep 3, 2014 at 12:52 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> --- a/drivers/base/power/domain_governor.c
> +++ b/drivers/base/power/domain_governor.c

> @@ -229,10 +229,7 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain)
>
>  #else /* !CONFIG_PM_RUNTIME */
>
> -bool default_stop_ok(struct device *dev)
> -{
> -       return false;
> -}
> +static inline bool default_stop_ok(struct device *dev) { return false; }

The "inline" doesn't make much sense here. This function is only
referenced from places that need its address:

struct dev_power_governor simple_qos_governor = {
        .stop_ok = default_stop_ok,
        .power_down_ok = default_power_down_ok,
};

and

struct dev_power_governor pm_domain_always_on_gov = {
        .power_down_ok = always_on_power_down_ok,
        .stop_ok = default_stop_ok,
};

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 13/15] drivers: sh: Leave disabling of unused PM domains to genpd
  2014-09-03 10:52 ` [PATCH 13/15] drivers: sh: " Ulf Hansson
@ 2014-09-04  0:33   ` Simon Horman
  2014-09-05  8:23     ` Ulf Hansson
  0 siblings, 1 reply; 26+ messages in thread
From: Simon Horman @ 2014-09-04  0:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 03, 2014 at 12:52:29PM +0200, Ulf Hansson wrote:
> Since genpd at late init, will try to disable unused PM domains we
> don't need to do it from here as well.
> 
> Cc: Simon Horman <horms@verge.net.au>
> Cc: Magnus Damm <magnus.damm@gmail.com>
> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>


Acked-by: Simon Horman <horms+renesas@verge.net.au>

> ---
>  drivers/sh/pm_runtime.c | 11 -----------
>  1 file changed, 11 deletions(-)
> 
> diff --git a/drivers/sh/pm_runtime.c b/drivers/sh/pm_runtime.c
> index 72f6381..fe2c2d5 100644
> --- a/drivers/sh/pm_runtime.c
> +++ b/drivers/sh/pm_runtime.c
> @@ -75,8 +75,6 @@ static struct pm_clk_notifier_block platform_bus_notifier = {
>  	.con_ids = { NULL, },
>  };
>  
> -static bool default_pm_on;
> -
>  static int __init sh_pm_runtime_init(void)
>  {
>  	if (IS_ENABLED(CONFIG_ARCH_SHMOBILE_MULTI)) {
> @@ -96,16 +94,7 @@ static int __init sh_pm_runtime_init(void)
>  			return 0;
>  	}
>  
> -	default_pm_on = true;
>  	pm_clk_add_notifier(&platform_bus_type, &platform_bus_notifier);
>  	return 0;
>  }
>  core_initcall(sh_pm_runtime_init);
> -
> -static int __init sh_pm_runtime_late_init(void)
> -{
> -	if (default_pm_on)
> -		pm_genpd_poweroff_unused();
> -	return 0;
> -}
> -late_initcall(sh_pm_runtime_late_init);
> -- 
> 1.9.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (15 preceding siblings ...)
  2014-09-03 11:10 ` [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Arnd Bergmann
@ 2014-09-04  8:40 ` Geert Uytterhoeven
  2014-09-05 15:35 ` Kevin Hilman
  17 siblings, 0 replies; 26+ messages in thread
From: Geert Uytterhoeven @ 2014-09-04  8:40 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Ulf,

On Wed, Sep 3, 2014 at 12:52 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> This patchset has a bit of a history and some parts of it has been posted
> earlier.
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html
>
> The intent is to simplify code for the generic power domain and also some of
> the machine specific code that uses the generic power domain.
>
> Do note, there are dependencies through this patchset, especially related to
> the ARM SoC changes, thus they all need to be kept together.

Thanks for your patch series!

I gave this series (on top of "[PATCH v2 0/9] PM / Domains: Generic OF-based
support", with one minor conflict) a quick run on r8a7791/koelsch-reference,
r8a7740/armadillo-legacy, and r8a7740/armadillo-multiplatform.
Everything looks fine.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 14/15] PM / Domains: Remove default_stop_ok() API
  2014-09-03 13:15   ` Geert Uytterhoeven
@ 2014-09-04 19:49     ` Rafael J. Wysocki
  2014-09-05  8:16       ` Ulf Hansson
  0 siblings, 1 reply; 26+ messages in thread
From: Rafael J. Wysocki @ 2014-09-04 19:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday, September 03, 2014 03:15:59 PM Geert Uytterhoeven wrote:
> Hi Ulf,
> 
> On Wed, Sep 3, 2014 at 12:52 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> > --- a/drivers/base/power/domain_governor.c
> > +++ b/drivers/base/power/domain_governor.c
> 
> > @@ -229,10 +229,7 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain)
> >
> >  #else /* !CONFIG_PM_RUNTIME */
> >
> > -bool default_stop_ok(struct device *dev)
> > -{
> > -       return false;
> > -}
> > +static inline bool default_stop_ok(struct device *dev) { return false; }
> 
> The "inline" doesn't make much sense here.

But then it doesn't hurt either I suppose?

Anyway, Ulf, are you going to update this patch?

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 14/15] PM / Domains: Remove default_stop_ok() API
  2014-09-04 19:49     ` Rafael J. Wysocki
@ 2014-09-05  8:16       ` Ulf Hansson
  0 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-05  8:16 UTC (permalink / raw)
  To: linux-arm-kernel

On 4 September 2014 21:49, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
> On Wednesday, September 03, 2014 03:15:59 PM Geert Uytterhoeven wrote:
>> Hi Ulf,
>>
>> On Wed, Sep 3, 2014 at 12:52 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>> > --- a/drivers/base/power/domain_governor.c
>> > +++ b/drivers/base/power/domain_governor.c
>>
>> > @@ -229,10 +229,7 @@ static bool always_on_power_down_ok(struct dev_pm_domain *domain)
>> >
>> >  #else /* !CONFIG_PM_RUNTIME */
>> >
>> > -bool default_stop_ok(struct device *dev)
>> > -{
>> > -       return false;
>> > -}
>> > +static inline bool default_stop_ok(struct device *dev) { return false; }
>>
>> The "inline" doesn't make much sense here.
>
> But then it doesn't hurt either I suppose?
>
> Anyway, Ulf, are you going to update this patch?

Unless there are other comments, I would prefer to not update. :-)

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 13/15] drivers: sh: Leave disabling of unused PM domains to genpd
  2014-09-04  0:33   ` Simon Horman
@ 2014-09-05  8:23     ` Ulf Hansson
  0 siblings, 0 replies; 26+ messages in thread
From: Ulf Hansson @ 2014-09-05  8:23 UTC (permalink / raw)
  To: linux-arm-kernel

On 4 September 2014 02:33, Simon Horman <horms@verge.net.au> wrote:
> On Wed, Sep 03, 2014 at 12:52:29PM +0200, Ulf Hansson wrote:
>> Since genpd at late init, will try to disable unused PM domains we
>> don't need to do it from here as well.
>>
>> Cc: Simon Horman <horms@verge.net.au>
>> Cc: Magnus Damm <magnus.damm@gmail.com>
>> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
>
>
> Acked-by: Simon Horman <horms+renesas@verge.net.au>
>

Simon, thanks for your ack!

When you have time, would you please also have a look at the two patches below:

[PATCH 04/15] ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config
[PATCH 05/15] ARM: shmobile: Drop dev_irq_safe from R-mobile genpd config

Kind regards
Uffe

>> ---
>>  drivers/sh/pm_runtime.c | 11 -----------
>>  1 file changed, 11 deletions(-)
>>
>> diff --git a/drivers/sh/pm_runtime.c b/drivers/sh/pm_runtime.c
>> index 72f6381..fe2c2d5 100644
>> --- a/drivers/sh/pm_runtime.c
>> +++ b/drivers/sh/pm_runtime.c
>> @@ -75,8 +75,6 @@ static struct pm_clk_notifier_block platform_bus_notifier = {
>>       .con_ids = { NULL, },
>>  };
>>
>> -static bool default_pm_on;
>> -
>>  static int __init sh_pm_runtime_init(void)
>>  {
>>       if (IS_ENABLED(CONFIG_ARCH_SHMOBILE_MULTI)) {
>> @@ -96,16 +94,7 @@ static int __init sh_pm_runtime_init(void)
>>                       return 0;
>>       }
>>
>> -     default_pm_on = true;
>>       pm_clk_add_notifier(&platform_bus_type, &platform_bus_notifier);
>>       return 0;
>>  }
>>  core_initcall(sh_pm_runtime_init);
>> -
>> -static int __init sh_pm_runtime_late_init(void)
>> -{
>> -     if (default_pm_on)
>> -             pm_genpd_poweroff_unused();
>> -     return 0;
>> -}
>> -late_initcall(sh_pm_runtime_late_init);
>> --
>> 1.9.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
  2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
                   ` (16 preceding siblings ...)
  2014-09-04  8:40 ` Geert Uytterhoeven
@ 2014-09-05 15:35 ` Kevin Hilman
  2014-09-08 23:07   ` Rafael J. Wysocki
  17 siblings, 1 reply; 26+ messages in thread
From: Kevin Hilman @ 2014-09-05 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

Ulf Hansson <ulf.hansson@linaro.org> writes:

> This patchset has a bit of a history and some parts of it has been posted
> earlier.
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html
>
> The intent is to simplify code for the generic power domain and also some of
> the machine specific code that uses the generic power domain.
>
> Do note, there are dependencies through this patchset, especially related to
> the ARM SoC changes, thus they all need to be kept together.

Reviewed-by: Kevin Hilman <khilman@linaro.org>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
  2014-09-05 15:35 ` Kevin Hilman
@ 2014-09-08 23:07   ` Rafael J. Wysocki
  2014-09-09 15:05     ` Kevin Hilman
  0 siblings, 1 reply; 26+ messages in thread
From: Rafael J. Wysocki @ 2014-09-08 23:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday, September 05, 2014 08:35:56 AM Kevin Hilman wrote:
> Ulf Hansson <ulf.hansson@linaro.org> writes:
> 
> > This patchset has a bit of a history and some parts of it has been posted
> > earlier.
> > http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html
> >
> > The intent is to simplify code for the generic power domain and also some of
> > the machine specific code that uses the generic power domain.
> >
> > Do note, there are dependencies through this patchset, especially related to
> > the ARM SoC changes, thus they all need to be kept together.
> 
> Reviewed-by: Kevin Hilman <khilman@linaro.org>

My understanding is that this is for the whole series.

Which I'm queuing up for 3.18, thanks!

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs
  2014-09-08 23:07   ` Rafael J. Wysocki
@ 2014-09-09 15:05     ` Kevin Hilman
  0 siblings, 0 replies; 26+ messages in thread
From: Kevin Hilman @ 2014-09-09 15:05 UTC (permalink / raw)
  To: linux-arm-kernel

"Rafael J. Wysocki" <rjw@rjwysocki.net> writes:

> On Friday, September 05, 2014 08:35:56 AM Kevin Hilman wrote:
>> Ulf Hansson <ulf.hansson@linaro.org> writes:
>> 
>> > This patchset has a bit of a history and some parts of it has been posted
>> > earlier.
>> > http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/262725.html
>> >
>> > The intent is to simplify code for the generic power domain and also some of
>> > the machine specific code that uses the generic power domain.
>> >
>> > Do note, there are dependencies through this patchset, especially related to
>> > the ARM SoC changes, thus they all need to be kept together.
>> 
>> Reviewed-by: Kevin Hilman <khilman@linaro.org>
>
> My understanding is that this is for the whole series.

Correct.

Kevin

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2014-09-09 15:05 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-03 10:52 [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Ulf Hansson
2014-09-03 10:52 ` [PATCH 01/15] PM / Domains: Remove the pm_genpd_add|remove_callbacks APIs Ulf Hansson
2014-09-03 10:52 ` [PATCH 02/15] PM / Domains: Ignore callbacks for subsys generic_pm_domain_data Ulf Hansson
2014-09-03 10:52 ` [PATCH 03/15] PM / Domains: Remove system PM callbacks from gpd_dev_ops Ulf Hansson
2014-09-03 10:52 ` [PATCH 04/15] ARM: shmobile: Drop dev_irq_safe from r8a7779 genpd config Ulf Hansson
2014-09-03 10:52 ` [PATCH 05/15] ARM: shmobile: Drop dev_irq_safe from R-mobile " Ulf Hansson
2014-09-03 10:52 ` [PATCH 06/15] PM / Domains: Remove dev_irq_safe from " Ulf Hansson
2014-09-03 10:52 ` [PATCH 07/15] PM / Domains: Remove redundant check for CONFIG_PM Ulf Hansson
2014-09-03 10:52 ` [PATCH 08/15] PM / Domains: Remove pm_genpd_syscore_switch() API Ulf Hansson
2014-09-03 10:52 ` [PATCH 09/15] PM / Domains: Remove genpd_queue_power_off_work() API Ulf Hansson
2014-09-03 10:52 ` [PATCH 10/15] PM / Domains: Add late_initcall to disable unused PM domains Ulf Hansson
2014-09-03 10:52 ` [PATCH 11/15] ARM: exynos: Leave disabling of unused PM domains to genpd Ulf Hansson
2014-09-03 10:52 ` [PATCH 12/15] ARM: s3c64xx: " Ulf Hansson
2014-09-03 10:52 ` [PATCH 13/15] drivers: sh: " Ulf Hansson
2014-09-04  0:33   ` Simon Horman
2014-09-05  8:23     ` Ulf Hansson
2014-09-03 10:52 ` [PATCH 14/15] PM / Domains: Remove default_stop_ok() API Ulf Hansson
2014-09-03 13:15   ` Geert Uytterhoeven
2014-09-04 19:49     ` Rafael J. Wysocki
2014-09-05  8:16       ` Ulf Hansson
2014-09-03 10:52 ` [PATCH 15/15] PM / Domains: Keep declaration of dev_power_governors together Ulf Hansson
2014-09-03 11:10 ` [PATCH 00/15] PM / Domains: Cleanups and remove superfluous APIs Arnd Bergmann
2014-09-04  8:40 ` Geert Uytterhoeven
2014-09-05 15:35 ` Kevin Hilman
2014-09-08 23:07   ` Rafael J. Wysocki
2014-09-09 15:05     ` Kevin Hilman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).