linux-samsung-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API
@ 2021-01-03  3:57 Yangtao Li
  2021-01-04  7:40 ` Viresh Kumar
  2021-01-05  5:36 ` Chanwoo Choi
  0 siblings, 2 replies; 3+ messages in thread
From: Yangtao Li @ 2021-01-03  3:57 UTC (permalink / raw)
  To: myungjoo.ham, kyungmin.park, cw00.choi, krzk, shawnguo, s.hauer,
	kernel, festevam, linux-imx, digetx, thierry.reding, jonathanh,
	yuq825, airlied, daniel, robdclark, sean, robh, tomeu.vizoso,
	steven.price, alyssa.rosenzweig, stanimir.varbanov, agross,
	bjorn.andersson, mchehab, lukasz.luba, adrian.hunter,
	ulf.hansson, vireshk, nm, sboyd, broonie, gregkh, jirislaby, rjw,
	jcrouse, hoegsberg, eric, tzimmermann, marijn.suijten,
	gustavoars, emil.velikov, jonathan, akhilpo, smasetty, airlied,
	masneyb, kalyan_t, tanmay, tiny.windzz, ddavenport, jsanka,
	rnayak, tongtiangen, miaoqinglang, khsieh, abhinavk, chandanu,
	groeck, varar, mka, harigovi, rikard.falkeborn, natechancellor,
	georgi.djakov, akashast, parashar, dianders
  Cc: linux-pm, linux-kernel, linux-samsung-soc, linux-arm-kernel,
	linux-tegra, dri-devel, lima, linux-arm-msm, freedreno,
	linux-media, linux-mmc, linux-spi, linux-serial

 Use devm_pm_opp_* API to simplify code.

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
---
 drivers/devfreq/devfreq.c | 66 +--------------------------------------
 include/linux/devfreq.h   | 23 --------------
 2 files changed, 1 insertion(+), 88 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 6aa10de792b3..f593f30529ec 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -2004,40 +2004,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()
@@ -2047,40 +2013,10 @@ static void devm_devfreq_opp_release(struct device *dev, void *res)
 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;
+	return devm_pm_opp_register_notifier(dev, &devfreq->nb);
 }
 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.
diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
index b6d3bae1c74d..aca2cc4f4fa4 100644
--- a/include/linux/devfreq.h
+++ b/include/linux/devfreq.h
@@ -230,14 +230,8 @@ int update_devfreq(struct devfreq *devfreq);
 /* Helper functions for devfreq user device driver with OPP. */
 struct dev_pm_opp *devfreq_recommended_opp(struct device *dev,
 				unsigned long *freq, u32 flags);
-int devfreq_register_opp_notifier(struct device *dev,
-				struct devfreq *devfreq);
-int devfreq_unregister_opp_notifier(struct device *dev,
-				struct devfreq *devfreq);
 int devm_devfreq_register_opp_notifier(struct device *dev,
 				struct devfreq *devfreq);
-void devm_devfreq_unregister_opp_notifier(struct device *dev,
-				struct devfreq *devfreq);
 int devfreq_register_notifier(struct devfreq *devfreq,
 				struct notifier_block *nb,
 				unsigned int list);
@@ -355,29 +349,12 @@ 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)
-- 
2.25.1


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

* Re: [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API
  2021-01-03  3:57 [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API Yangtao Li
@ 2021-01-04  7:40 ` Viresh Kumar
  2021-01-05  5:36 ` Chanwoo Choi
  1 sibling, 0 replies; 3+ messages in thread
From: Viresh Kumar @ 2021-01-04  7:40 UTC (permalink / raw)
  To: Yangtao Li
  Cc: linux-pm, linux-kernel, linux-samsung-soc, linux-arm-kernel,
	linux-tegra, dri-devel, lima, linux-arm-msm, freedreno,
	linux-media, linux-mmc, linux-spi, linux-serial

On 03-01-21, 03:57, Yangtao Li wrote:
>  Use devm_pm_opp_* API to simplify code.
> 
> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
> ---
>  drivers/devfreq/devfreq.c | 66 +--------------------------------------
>  include/linux/devfreq.h   | 23 --------------
>  2 files changed, 1 insertion(+), 88 deletions(-)

Remove the unused stuff in a separate patch and let this layer keep
doing the devm thing, I don't think others would need it.

-- 
viresh

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

* Re: [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API
  2021-01-03  3:57 [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API Yangtao Li
  2021-01-04  7:40 ` Viresh Kumar
@ 2021-01-05  5:36 ` Chanwoo Choi
  1 sibling, 0 replies; 3+ messages in thread
From: Chanwoo Choi @ 2021-01-05  5:36 UTC (permalink / raw)
  To: Yangtao Li
  Cc: MyungJoo Ham, Kyungmin Park, Chanwoo Choi, Krzysztof Kozlowski,
	Shawn Guo, s.hauer, kernel, festevam, dl-linux-imx,
	Dmitry Osipenko, Thierry Reding, Jonathan Hunter, yuq825,
	David Airlie, daniel, robdclark, sean, Rob Herring, tomeu.vizoso,
	steven.price, alyssa.rosenzweig, stanimir.varbanov, agross,
	Bjorn Andersson, mchehab, Lukasz Luba, adrian.hunter,
	Ulf Hansson, Viresh Kumar, Nishanth Menon, Stephen Boyd,
	Mark Brown, Greg KH, jirislaby, Rafael J. Wysocki, jcrouse,
	hoegsberg, eric, tzimmermann, marijn.suijten, gustavoars,
	emil.velikov, jonathan, akhilpo, smasetty, airlied, masneyb,
	kalyan_t, tanmay, ddavenport, jsanka, rnayak, tongtiangen,
	miaoqinglang, khsieh, abhinavk, chandanu, Guenter Roeck, varar,
	Matthias Kaehlcke, harigovi, rikard.falkeborn, natechancellor,
	Georgi Djakov, akashast, parashar, Doug Anderson, Linux PM list,
	linux-kernel, linux-samsung-soc, linux-arm-kernel, linux-tegra,
	dri-devel, lima, linux-arm-msm, freedreno, linux-media,
	linux-mmc, linux-spi, linux-serial

On Sun, Jan 3, 2021 at 12:59 PM Yangtao Li <tiny.windzz@gmail.com> wrote:
>
>  Use devm_pm_opp_* API to simplify code.
>
> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
> ---
>  drivers/devfreq/devfreq.c | 66 +--------------------------------------
>  include/linux/devfreq.h   | 23 --------------
>  2 files changed, 1 insertion(+), 88 deletions(-)
>
> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
> index 6aa10de792b3..f593f30529ec 100644
> --- a/drivers/devfreq/devfreq.c
> +++ b/drivers/devfreq/devfreq.c
> @@ -2004,40 +2004,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()
> @@ -2047,40 +2013,10 @@ static void devm_devfreq_opp_release(struct device *dev, void *res)
>  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;
> +       return devm_pm_opp_register_notifier(dev, &devfreq->nb);
>  }
>  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);

Need to support devm_devfreq_unregister_opp_notifier()
because sometimes, the user wants to release the resource by himself.

(snip)

Best Regards,
Chanwoo Choi

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

end of thread, other threads:[~2021-01-05  5:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-03  3:57 [PATCH 31/31] PM / devfreq: convert to devm_pm_opp_register_notifier and remove unused API Yangtao Li
2021-01-04  7:40 ` Viresh Kumar
2021-01-05  5:36 ` Chanwoo Choi

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).