]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
PM / domains: Remove the pm_genpd_add|remove_callbacks APIs
authorUlf Hansson <ulf.hansson@linaro.org>
Wed, 3 Sep 2014 10:52:17 +0000 (12:52 +0200)
committerRobin Gong <b38343@freescale.com>
Wed, 11 Feb 2015 05:07:29 +0000 (13:07 +0800)
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>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 55e15c949fd05d247a889df0ed0177a676fec665)
(cherry picked from commit da452fc0f1a1a75993a6c989a600dd2de309026c)

drivers/base/power/domain.c
include/linux/pm_domain.h

index ae098a261fcdb29262e778036ad5e9712841f221..93f0f164414d7eeadf19d634d207f5f52d149320 100644 (file)
@@ -1743,112 +1743,6 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
        return ret;
 }
 
-/**
- * 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.
index 7c1d252b20c08de0ec725976c67b6fc13326e2e0..0aa9ad99f8dfbff73806824b86eadb179d0fbfcf 100644 (file)
@@ -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);