All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 27/31] PM / devfreq: rk3399_dmc: convert to use devm_pm_opp_* API
@ 2021-01-03  3:55 ` Yangtao Li
  0 siblings, 0 replies; 4+ messages in thread
From: Yangtao Li @ 2021-01-03  3:55 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. Since devres release
can guarantee the order, let's remove
devm_devfreq_unregister_opp_notifier().

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
---
 drivers/devfreq/rk3399_dmc.c | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
index 2e912166a993..9b8ab8be29d1 100644
--- a/drivers/devfreq/rk3399_dmc.c
+++ b/drivers/devfreq/rk3399_dmc.c
@@ -432,7 +432,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 	 * We add a devfreq driver to our parent since it has a device tree node
 	 * with operating points.
 	 */
-	if (dev_pm_opp_of_add_table(dev)) {
+	if (devm_pm_opp_of_add_table(dev)) {
 		dev_err(dev, "Invalid operating-points in device tree.\n");
 		ret = -EINVAL;
 		goto err_edev;
@@ -448,7 +448,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 	opp = devfreq_recommended_opp(dev, &data->rate, 0);
 	if (IS_ERR(opp)) {
 		ret = PTR_ERR(opp);
-		goto err_free_opp;
+		goto err_edev;
 	}
 
 	data->rate = dev_pm_opp_get_freq(opp);
@@ -463,7 +463,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 					   &data->ondemand_data);
 	if (IS_ERR(data->devfreq)) {
 		ret = PTR_ERR(data->devfreq);
-		goto err_free_opp;
+		goto err_edev;
 	}
 
 	devm_devfreq_register_opp_notifier(dev, data->devfreq);
@@ -473,27 +473,12 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_free_opp:
-	dev_pm_opp_of_remove_table(&pdev->dev);
 err_edev:
 	devfreq_event_disable_edev(data->edev);
 
 	return ret;
 }
 
-static int rk3399_dmcfreq_remove(struct platform_device *pdev)
-{
-	struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
-
-	/*
-	 * Before remove the opp table we need to unregister the opp notifier.
-	 */
-	devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
-	dev_pm_opp_of_remove_table(dmcfreq->dev);
-
-	return 0;
-}
-
 static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
 	{ .compatible = "rockchip,rk3399-dmc" },
 	{ },
@@ -502,7 +487,6 @@ MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match);
 
 static struct platform_driver rk3399_dmcfreq_driver = {
 	.probe	= rk3399_dmcfreq_probe,
-	.remove = rk3399_dmcfreq_remove,
 	.driver = {
 		.name	= "rk3399-dmc-freq",
 		.pm	= &rk3399_dmcfreq_pm,
-- 
2.25.1


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

* [PATCH 27/31] PM / devfreq: rk3399_dmc: convert to use devm_pm_opp_* API
@ 2021-01-03  3:55 ` Yangtao Li
  0 siblings, 0 replies; 4+ messages in thread
From: Yangtao Li @ 2021-01-03  3:55 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-samsung-soc, lima, linux-pm, linux-arm-msm, linux-mmc,
	linux-kernel, dri-devel, linux-spi, linux-serial, linux-tegra,
	freedreno, linux-arm-kernel, linux-media

Use devm_pm_opp_* API to simplify code. Since devres release
can guarantee the order, let's remove
devm_devfreq_unregister_opp_notifier().

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
---
 drivers/devfreq/rk3399_dmc.c | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
index 2e912166a993..9b8ab8be29d1 100644
--- a/drivers/devfreq/rk3399_dmc.c
+++ b/drivers/devfreq/rk3399_dmc.c
@@ -432,7 +432,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 	 * We add a devfreq driver to our parent since it has a device tree node
 	 * with operating points.
 	 */
-	if (dev_pm_opp_of_add_table(dev)) {
+	if (devm_pm_opp_of_add_table(dev)) {
 		dev_err(dev, "Invalid operating-points in device tree.\n");
 		ret = -EINVAL;
 		goto err_edev;
@@ -448,7 +448,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 	opp = devfreq_recommended_opp(dev, &data->rate, 0);
 	if (IS_ERR(opp)) {
 		ret = PTR_ERR(opp);
-		goto err_free_opp;
+		goto err_edev;
 	}
 
 	data->rate = dev_pm_opp_get_freq(opp);
@@ -463,7 +463,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 					   &data->ondemand_data);
 	if (IS_ERR(data->devfreq)) {
 		ret = PTR_ERR(data->devfreq);
-		goto err_free_opp;
+		goto err_edev;
 	}
 
 	devm_devfreq_register_opp_notifier(dev, data->devfreq);
@@ -473,27 +473,12 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_free_opp:
-	dev_pm_opp_of_remove_table(&pdev->dev);
 err_edev:
 	devfreq_event_disable_edev(data->edev);
 
 	return ret;
 }
 
-static int rk3399_dmcfreq_remove(struct platform_device *pdev)
-{
-	struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
-
-	/*
-	 * Before remove the opp table we need to unregister the opp notifier.
-	 */
-	devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
-	dev_pm_opp_of_remove_table(dmcfreq->dev);
-
-	return 0;
-}
-
 static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
 	{ .compatible = "rockchip,rk3399-dmc" },
 	{ },
@@ -502,7 +487,6 @@ MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match);
 
 static struct platform_driver rk3399_dmcfreq_driver = {
 	.probe	= rk3399_dmcfreq_probe,
-	.remove = rk3399_dmcfreq_remove,
 	.driver = {
 		.name	= "rk3399-dmc-freq",
 		.pm	= &rk3399_dmcfreq_pm,
-- 
2.25.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH 27/31] PM / devfreq: rk3399_dmc: convert to use devm_pm_opp_* API
  2021-01-03  3:55 ` Yangtao Li
@ 2021-01-05  4:00   ` Chanwoo Choi
  -1 siblings, 0 replies; 4+ messages in thread
From: Chanwoo Choi @ 2021-01-05  4:00 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

Hi,

Do you make this patch on latest source?
When I apply this patch for test, it make the merge conflict error.

On Sun, Jan 3, 2021 at 12:57 PM Yangtao Li <tiny.windzz@gmail.com> wrote:
>
> Use devm_pm_opp_* API to simplify code. Since devres release
> can guarantee the order, let's remove
> devm_devfreq_unregister_opp_notifier().
>
> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
> ---
>  drivers/devfreq/rk3399_dmc.c | 22 +++-------------------
>  1 file changed, 3 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
> index 2e912166a993..9b8ab8be29d1 100644
> --- a/drivers/devfreq/rk3399_dmc.c
> +++ b/drivers/devfreq/rk3399_dmc.c
> @@ -432,7 +432,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>          * We add a devfreq driver to our parent since it has a device tree node
>          * with operating points.
>          */
> -       if (dev_pm_opp_of_add_table(dev)) {
> +       if (devm_pm_opp_of_add_table(dev)) {
>                 dev_err(dev, "Invalid operating-points in device tree.\n");
>                 ret = -EINVAL;
>                 goto err_edev;
> @@ -448,7 +448,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>         opp = devfreq_recommended_opp(dev, &data->rate, 0);
>         if (IS_ERR(opp)) {
>                 ret = PTR_ERR(opp);
> -               goto err_free_opp;
> +               goto err_edev;
>         }
>
>         data->rate = dev_pm_opp_get_freq(opp);
> @@ -463,7 +463,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>                                            &data->ondemand_data);
>         if (IS_ERR(data->devfreq)) {
>                 ret = PTR_ERR(data->devfreq);
> -               goto err_free_opp;
> +               goto err_edev;
>         }
>
>         devm_devfreq_register_opp_notifier(dev, data->devfreq);
> @@ -473,27 +473,12 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>
>         return 0;
>
> -err_free_opp:
> -       dev_pm_opp_of_remove_table(&pdev->dev);
>  err_edev:
>         devfreq_event_disable_edev(data->edev);
>
>         return ret;
>  }
>
> -static int rk3399_dmcfreq_remove(struct platform_device *pdev)
> -{
> -       struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
> -
> -       /*
> -        * Before remove the opp table we need to unregister the opp notifier.
> -        */
> -       devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
> -       dev_pm_opp_of_remove_table(dmcfreq->dev);

As the comment, we need to unregister the opp notifier before removing the OPP.
Do you guarantee this sequence on your patch?


> -
> -       return 0;
> -}
> -
>  static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
>         { .compatible = "rockchip,rk3399-dmc" },
>         { },
> @@ -502,7 +487,6 @@ MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match);
>
>  static struct platform_driver rk3399_dmcfreq_driver = {
>         .probe  = rk3399_dmcfreq_probe,
> -       .remove = rk3399_dmcfreq_remove,
>         .driver = {
>                 .name   = "rk3399-dmc-freq",
>                 .pm     = &rk3399_dmcfreq_pm,
> --
> 2.25.1
>


-- 
Best Regards,
Chanwoo Choi

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

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

Hi,

Do you make this patch on latest source?
When I apply this patch for test, it make the merge conflict error.

On Sun, Jan 3, 2021 at 12:57 PM Yangtao Li <tiny.windzz@gmail.com> wrote:
>
> Use devm_pm_opp_* API to simplify code. Since devres release
> can guarantee the order, let's remove
> devm_devfreq_unregister_opp_notifier().
>
> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
> ---
>  drivers/devfreq/rk3399_dmc.c | 22 +++-------------------
>  1 file changed, 3 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
> index 2e912166a993..9b8ab8be29d1 100644
> --- a/drivers/devfreq/rk3399_dmc.c
> +++ b/drivers/devfreq/rk3399_dmc.c
> @@ -432,7 +432,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>          * We add a devfreq driver to our parent since it has a device tree node
>          * with operating points.
>          */
> -       if (dev_pm_opp_of_add_table(dev)) {
> +       if (devm_pm_opp_of_add_table(dev)) {
>                 dev_err(dev, "Invalid operating-points in device tree.\n");
>                 ret = -EINVAL;
>                 goto err_edev;
> @@ -448,7 +448,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>         opp = devfreq_recommended_opp(dev, &data->rate, 0);
>         if (IS_ERR(opp)) {
>                 ret = PTR_ERR(opp);
> -               goto err_free_opp;
> +               goto err_edev;
>         }
>
>         data->rate = dev_pm_opp_get_freq(opp);
> @@ -463,7 +463,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>                                            &data->ondemand_data);
>         if (IS_ERR(data->devfreq)) {
>                 ret = PTR_ERR(data->devfreq);
> -               goto err_free_opp;
> +               goto err_edev;
>         }
>
>         devm_devfreq_register_opp_notifier(dev, data->devfreq);
> @@ -473,27 +473,12 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
>
>         return 0;
>
> -err_free_opp:
> -       dev_pm_opp_of_remove_table(&pdev->dev);
>  err_edev:
>         devfreq_event_disable_edev(data->edev);
>
>         return ret;
>  }
>
> -static int rk3399_dmcfreq_remove(struct platform_device *pdev)
> -{
> -       struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);
> -
> -       /*
> -        * Before remove the opp table we need to unregister the opp notifier.
> -        */
> -       devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
> -       dev_pm_opp_of_remove_table(dmcfreq->dev);

As the comment, we need to unregister the opp notifier before removing the OPP.
Do you guarantee this sequence on your patch?


> -
> -       return 0;
> -}
> -
>  static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
>         { .compatible = "rockchip,rk3399-dmc" },
>         { },
> @@ -502,7 +487,6 @@ MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match);
>
>  static struct platform_driver rk3399_dmcfreq_driver = {
>         .probe  = rk3399_dmcfreq_probe,
> -       .remove = rk3399_dmcfreq_remove,
>         .driver = {
>                 .name   = "rk3399-dmc-freq",
>                 .pm     = &rk3399_dmcfreq_pm,
> --
> 2.25.1
>


-- 
Best Regards,
Chanwoo Choi
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

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

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-03  3:55 [PATCH 27/31] PM / devfreq: rk3399_dmc: convert to use devm_pm_opp_* API Yangtao Li
2021-01-03  3:55 ` Yangtao Li
2021-01-05  4:00 ` Chanwoo Choi
2021-01-05  4:00   ` Chanwoo Choi

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.