All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <cw00.choi@samsung.com>
To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com,
	cw00.choi@samsung.com
Cc: rafael.j.wysocki@intel.com, chanwoo@kernel.org,
	inki.dae@samsung.com, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: [PATCH 11/12] PM / devfreq: Remove exported opp_notifier function
Date: Thu, 24 Aug 2017 10:42:58 +0900	[thread overview]
Message-ID: <1503538979-22693-12-git-send-email-cw00.choi@samsung.com> (raw)
In-Reply-To: <1503538979-22693-1-git-send-email-cw00.choi@samsung.com>

The devfreq provides the helper function to register the OPP notifier
which is used to catch the change of OPP entry such as OPP_EVENT_ADD,
OPP_EVENT_REMOVE, OPP_EVENT_DISABLE and OPP_EVENT_ENABLE. The OPP
notifier is optional.

But, the devfreq uses the OPP interface as a mandatory method
to handle the frequency and voltage. If so, the OPP notifier is
mandatory. So, the OPP notifier have to be handled in the devfreq core
instead of each device driver.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
 drivers/devfreq/devfreq.c    | 77 --------------------------------------------
 drivers/devfreq/exynos-bus.c |  7 ----
 drivers/devfreq/rk3399_dmc.c |  1 -
 include/linux/devfreq.h      | 31 ------------------
 4 files changed, 116 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 77eb3edf6bf3..7efa867e4aea 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -1344,83 +1344,6 @@ struct dev_pm_opp *devfreq_recommended_opp(struct device *dev,
 EXPORT_SYMBOL(devfreq_recommended_opp);
 
 /**
- * devfreq_register_opp_notifier() - Helper function to get devfreq notified
- *				   for any changes in the OPP availability
- *				   changes
- * @dev:	The devfreq user device. (parent of devfreq)
- * @devfreq:	The devfreq object.
- */
-int devfreq_register_opp_notifier(struct device *dev, struct devfreq *devfreq)
-{
-	return dev_pm_opp_register_notifier(dev, &devfreq->nb);
-}
-EXPORT_SYMBOL(devfreq_register_opp_notifier);
-
-/**
- * devfreq_unregister_opp_notifier() - Helper function to stop getting devfreq
- *				     notified for any changes in the OPP
- *				     availability changes anymore.
- * @dev:	The devfreq user device. (parent of devfreq)
- * @devfreq:	The devfreq object.
- *
- * At exit() callback of devfreq_dev_profile, this must be included if
- * devfreq_recommended_opp is used.
- */
-int devfreq_unregister_opp_notifier(struct device *dev, struct devfreq *devfreq)
-{
-	return dev_pm_opp_unregister_notifier(dev, &devfreq->nb);
-}
-EXPORT_SYMBOL(devfreq_unregister_opp_notifier);
-
-static void devm_devfreq_opp_release(struct device *dev, void *res)
-{
-	devfreq_unregister_opp_notifier(dev, *(struct devfreq **)res);
-}
-
-/**
- * devm_ devfreq_register_opp_notifier()
- *		- Resource-managed devfreq_register_opp_notifier()
- * @dev:	The devfreq user device. (parent of devfreq)
- * @devfreq:	The devfreq object.
- */
-int devm_devfreq_register_opp_notifier(struct device *dev,
-				       struct devfreq *devfreq)
-{
-	struct devfreq **ptr;
-	int ret;
-
-	ptr = devres_alloc(devm_devfreq_opp_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
-		return -ENOMEM;
-
-	ret = devfreq_register_opp_notifier(dev, devfreq);
-	if (ret) {
-		devres_free(ptr);
-		return ret;
-	}
-
-	*ptr = devfreq;
-	devres_add(dev, ptr);
-
-	return 0;
-}
-EXPORT_SYMBOL(devm_devfreq_register_opp_notifier);
-
-/**
- * devm_devfreq_unregister_opp_notifier()
- *		- Resource-managed devfreq_unregister_opp_notifier()
- * @dev:	The devfreq user device. (parent of devfreq)
- * @devfreq:	The devfreq object.
- */
-void devm_devfreq_unregister_opp_notifier(struct device *dev,
-					 struct devfreq *devfreq)
-{
-	WARN_ON(devres_release(dev, devm_devfreq_opp_release,
-			       devm_devfreq_dev_match, devfreq));
-}
-EXPORT_SYMBOL(devm_devfreq_unregister_opp_notifier);
-
-/**
  * devfreq_register_notifier() - Register a driver with devfreq
  * @devfreq:	The devfreq object.
  * @nb:		The notifier block to register.
diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
index 49f68929e024..a144d7ae066e 100644
--- a/drivers/devfreq/exynos-bus.c
+++ b/drivers/devfreq/exynos-bus.c
@@ -444,13 +444,6 @@ static int exynos_bus_probe(struct platform_device *pdev)
 		goto err;
 	}
 
-	/* Register opp_notifier to catch the change of OPP  */
-	ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
-	if (ret < 0) {
-		dev_err(dev, "failed to register opp notifier\n");
-		goto err;
-	}
-
 	/*
 	 * Enable devfreq-event to get raw data which is used to determine
 	 * current bus load.
diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
index 1b89ebbad02c..4fb1041b628e 100644
--- a/drivers/devfreq/rk3399_dmc.c
+++ b/drivers/devfreq/rk3399_dmc.c
@@ -435,7 +435,6 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 					   &data->ondemand_data);
 	if (IS_ERR(data->devfreq))
 		return PTR_ERR(data->devfreq);
-	devm_devfreq_register_opp_notifier(dev, data->devfreq);
 
 	data->dev = dev;
 	platform_set_drvdata(pdev, data);
diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
index 597294e0cc40..d6f054545799 100644
--- a/include/linux/devfreq.h
+++ b/include/linux/devfreq.h
@@ -189,14 +189,6 @@ extern void devm_devfreq_remove_device(struct device *dev,
 /* Helper functions for devfreq user device driver with OPP. */
 extern struct dev_pm_opp *devfreq_recommended_opp(struct device *dev,
 					   unsigned long *freq, u32 flags);
-extern int devfreq_register_opp_notifier(struct device *dev,
-					 struct devfreq *devfreq);
-extern int devfreq_unregister_opp_notifier(struct device *dev,
-					   struct devfreq *devfreq);
-extern int devm_devfreq_register_opp_notifier(struct device *dev,
-					      struct devfreq *devfreq);
-extern void devm_devfreq_unregister_opp_notifier(struct device *dev,
-						struct devfreq *devfreq);
 extern int devfreq_register_notifier(struct devfreq *devfreq,
 					struct notifier_block *nb,
 					unsigned int list);
@@ -310,29 +302,6 @@ static inline struct dev_pm_opp *devfreq_recommended_opp(struct device *dev,
 	return ERR_PTR(-EINVAL);
 }
 
-static inline int devfreq_register_opp_notifier(struct device *dev,
-					 struct devfreq *devfreq)
-{
-	return -EINVAL;
-}
-
-static inline int devfreq_unregister_opp_notifier(struct device *dev,
-					   struct devfreq *devfreq)
-{
-	return -EINVAL;
-}
-
-static inline int devm_devfreq_register_opp_notifier(struct device *dev,
-						     struct devfreq *devfreq)
-{
-	return -EINVAL;
-}
-
-static inline void devm_devfreq_unregister_opp_notifier(struct device *dev,
-							struct devfreq *devfreq)
-{
-}
-
 static inline int devfreq_register_notifier(struct devfreq *devfreq,
 					struct notifier_block *nb,
 					unsigned int list)
-- 
1.9.1

  parent reply	other threads:[~2017-08-24  1:44 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20170824014259epcas2p4d92e5c404f54b629e7bdfb6a2c5ed0ed@epcas2p4.samsung.com>
2017-08-24  1:42 ` [PATCH 00/12] PM / devfreq: Use OPP interface to handle the frequency Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p398a53a9a76d9aff7e35cf8515ec4e46a@epcas2p3.samsung.com>
2017-08-24  1:42     ` [PATCH 01/12] PM / devfreq: Fix memory leak when fail to register device Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p33d211dd0f29ebee0fc2fd7415d8294d9@epcas2p3.samsung.com>
2017-08-24  1:42     ` [PATCH 02/12] PM / devfreq: Fix locking range for making the frequency table Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p174f90081b192ae5239f0130413ba3845@epcas2p1.samsung.com>
2017-08-24  1:42     ` [PATCH 03/12] PM / devfreq: Move private devfreq_update_stats() into devfreq Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p2d2b85a7c324b101e7e4e8551873ca3ab@epcas2p2.samsung.com>
2017-08-24  1:42     ` [PATCH 04/12] PM / devfreq: Add dependency on PM_OPP Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p161d781837dffe0724c0fd73fc477281a@epcas2p1.samsung.com>
2017-08-24  1:42     ` [PATCH 05/12] PM / devfreq: Set min/max_freq when adding the devfreq device Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p1c8618349053a9aab5d8774234e322848@epcas2p1.samsung.com>
2017-08-24  1:42     ` [PATCH 06/12] PM / devfreq: Check the entered min/max_freq is supported or not Chanwoo Choi
     [not found]   ` <CGME20170824014300epcas2p3069258855c2e233ab4c01745eae93a73@epcas2p3.samsung.com>
2017-08-24  1:42     ` [PATCH 07/12] Revert "PM / devfreq: Add show_one macro to delete the duplicate code" Chanwoo Choi
     [not found]   ` <CGME20170824014300epcas1p442352e3d95c164aa023bf16120e7f7a4@epcas1p4.samsung.com>
2017-08-24  1:42     ` [PATCH 08/12] PM / devfreq: Show the available min/max frequency through sysfs node Chanwoo Choi
     [not found]   ` <CGME20170824014300epcas2p2642c98590f3592ba814e421c6584a7b5@epcas2p2.samsung.com>
2017-08-24  1:42     ` [PATCH 09/12] PM / devfreq: Show whole available frequencies Chanwoo Choi
     [not found]   ` <CGME20170824014300epcas2p452c864106cf4fd9754d075d57b8a9ca1@epcas2p4.samsung.com>
2017-08-24  1:42     ` [PATCH 10/12] PM / devfreq: Remove 'devfreq' prefix from helper function Chanwoo Choi
     [not found]   ` <CGME20170824014300epcas2p27dfdc54aae8ea29e5e60425a87cf4aab@epcas2p2.samsung.com>
2017-08-24  1:42     ` Chanwoo Choi [this message]
     [not found]   ` <CGME20170824014300epcas1p3bf35f95d83b2a2ed36126f918638b8fc@epcas1p3.samsung.com>
2017-08-24  1:42     ` [PATCH 12/12] PM / devfreq: Add opp_notifier_cb() function pointer to support OPP notifier Chanwoo Choi
2017-08-24  3:58       ` Chanwoo Choi
     [not found]   ` <CGME20170824014259epcas2p398a53a9a76d9aff7e35cf8515ec4e46a@epcms1p6>
2017-08-28  0:17     ` [PATCH 01/12] PM / devfreq: Fix memory leak when fail to register device MyungJoo Ham
2017-08-28  0:23       ` Chanwoo Choi
     [not found]       ` <CGME20170824014259epcas2p398a53a9a76d9aff7e35cf8515ec4e46a@epcms1p1>
2017-08-28  1:30         ` MyungJoo Ham
     [not found]   ` <CGME20170824014259epcas2p33d211dd0f29ebee0fc2fd7415d8294d9@epcms1p2>
2017-08-28  0:25     ` [PATCH 02/12] PM / devfreq: Fix locking range for making the frequency table MyungJoo Ham
     [not found]   ` <CGME20170824014259epcas2p174f90081b192ae5239f0130413ba3845@epcms1p4>
2017-08-28  1:20     ` [PATCH 03/12] PM / devfreq: Move private devfreq_update_stats() into devfreq MyungJoo Ham
     [not found]   ` <CGME20170824014259epcas2p2d2b85a7c324b101e7e4e8551873ca3ab@epcms1p8>
2017-08-28  1:23     ` [PATCH 04/12] PM / devfreq: Add dependency on PM_OPP MyungJoo Ham
     [not found]   ` <CGME20170824014300epcas2p452c864106cf4fd9754d075d57b8a9ca1@epcms1p1>
2017-08-28  1:37     ` [PATCH 10/12] PM / devfreq: Remove 'devfreq' prefix from helper function MyungJoo Ham
2017-08-28  2:24       ` Chanwoo Choi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1503538979-22693-12-git-send-email-cw00.choi@samsung.com \
    --to=cw00.choi@samsung.com \
    --cc=chanwoo@kernel.org \
    --cc=inki.dae@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=rafael.j.wysocki@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.