diff mbox series

[v4,6/9] cpufreq: mediatek: Use auto-registration of thermal cooling device

Message ID f4d658bcbc428f6fb9bd70bcd9c7a0b00a20cd08.1548654899.git.amit.kucheria@linaro.org
State Accepted
Commit 0db60d6b89b921c26d6dac4ec7b35e0102d8f9f8
Headers show
Series [v4,1/9] thermal: cpu_cooling: Require thermal core to be compiled in | expand

Commit Message

Amit Kucheria Jan. 28, 2019, 6:41 a.m. UTC
Use the CPUFREQ_AUTO_REGISTER_COOLING_DEV flag to allow cpufreq core to
automatically register as a thermal cooling device.

This allows removal of boiler plate code from the driver.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>

---
 drivers/cpufreq/mediatek-cpufreq.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

-- 
2.17.1

Comments

Daniel Lezcano Jan. 28, 2019, 8:36 a.m. UTC | #1
On 28/01/2019 07:41, Amit Kucheria wrote:
> Use the CPUFREQ_AUTO_REGISTER_COOLING_DEV flag to allow cpufreq core to

> automatically register as a thermal cooling device.

> 

> This allows removal of boiler plate code from the driver.

> 

> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>


Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>



> ---

>  drivers/cpufreq/mediatek-cpufreq.c | 14 ++------------

>  1 file changed, 2 insertions(+), 12 deletions(-)

> 

> diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c

> index eb8920d39818..9a937f4c63e7 100644

> --- a/drivers/cpufreq/mediatek-cpufreq.c

> +++ b/drivers/cpufreq/mediatek-cpufreq.c

> @@ -14,7 +14,6 @@

>  

>  #include <linux/clk.h>

>  #include <linux/cpu.h>

> -#include <linux/cpu_cooling.h>

>  #include <linux/cpufreq.h>

>  #include <linux/cpumask.h>

>  #include <linux/module.h>

> @@ -48,7 +47,6 @@ struct mtk_cpu_dvfs_info {

>  	struct regulator *sram_reg;

>  	struct clk *cpu_clk;

>  	struct clk *inter_clk;

> -	struct thermal_cooling_device *cdev;

>  	struct list_head list_head;

>  	int intermediate_voltage;

>  	bool need_voltage_tracking;

> @@ -307,13 +305,6 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,

>  

>  #define DYNAMIC_POWER "dynamic-power-coefficient"

>  

> -static void mtk_cpufreq_ready(struct cpufreq_policy *policy)

> -{

> -	struct mtk_cpu_dvfs_info *info = policy->driver_data;

> -

> -	info->cdev = of_cpufreq_cooling_register(policy);

> -}

> -

>  static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)

>  {

>  	struct device *cpu_dev;

> @@ -472,7 +463,6 @@ static int mtk_cpufreq_exit(struct cpufreq_policy *policy)

>  {

>  	struct mtk_cpu_dvfs_info *info = policy->driver_data;

>  

> -	cpufreq_cooling_unregister(info->cdev);

>  	dev_pm_opp_free_cpufreq_table(info->cpu_dev, &policy->freq_table);

>  

>  	return 0;

> @@ -480,13 +470,13 @@ static int mtk_cpufreq_exit(struct cpufreq_policy *policy)

>  

>  static struct cpufreq_driver mtk_cpufreq_driver = {

>  	.flags = CPUFREQ_STICKY | CPUFREQ_NEED_INITIAL_FREQ_CHECK |

> -		 CPUFREQ_HAVE_GOVERNOR_PER_POLICY,

> +		 CPUFREQ_HAVE_GOVERNOR_PER_POLICY |

> +		 CPUFREQ_AUTO_REGISTER_COOLING_DEV,

>  	.verify = cpufreq_generic_frequency_table_verify,

>  	.target_index = mtk_cpufreq_set_target,

>  	.get = cpufreq_generic_get,

>  	.init = mtk_cpufreq_init,

>  	.exit = mtk_cpufreq_exit,

> -	.ready = mtk_cpufreq_ready,

>  	.name = "mtk-cpufreq",

>  	.attr = cpufreq_generic_attr,

>  };

> 



-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
diff mbox series

Patch

diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
index eb8920d39818..9a937f4c63e7 100644
--- a/drivers/cpufreq/mediatek-cpufreq.c
+++ b/drivers/cpufreq/mediatek-cpufreq.c
@@ -14,7 +14,6 @@ 
 
 #include <linux/clk.h>
 #include <linux/cpu.h>
-#include <linux/cpu_cooling.h>
 #include <linux/cpufreq.h>
 #include <linux/cpumask.h>
 #include <linux/module.h>
@@ -48,7 +47,6 @@  struct mtk_cpu_dvfs_info {
 	struct regulator *sram_reg;
 	struct clk *cpu_clk;
 	struct clk *inter_clk;
-	struct thermal_cooling_device *cdev;
 	struct list_head list_head;
 	int intermediate_voltage;
 	bool need_voltage_tracking;
@@ -307,13 +305,6 @@  static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
 
 #define DYNAMIC_POWER "dynamic-power-coefficient"
 
-static void mtk_cpufreq_ready(struct cpufreq_policy *policy)
-{
-	struct mtk_cpu_dvfs_info *info = policy->driver_data;
-
-	info->cdev = of_cpufreq_cooling_register(policy);
-}
-
 static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 {
 	struct device *cpu_dev;
@@ -472,7 +463,6 @@  static int mtk_cpufreq_exit(struct cpufreq_policy *policy)
 {
 	struct mtk_cpu_dvfs_info *info = policy->driver_data;
 
-	cpufreq_cooling_unregister(info->cdev);
 	dev_pm_opp_free_cpufreq_table(info->cpu_dev, &policy->freq_table);
 
 	return 0;
@@ -480,13 +470,13 @@  static int mtk_cpufreq_exit(struct cpufreq_policy *policy)
 
 static struct cpufreq_driver mtk_cpufreq_driver = {
 	.flags = CPUFREQ_STICKY | CPUFREQ_NEED_INITIAL_FREQ_CHECK |
-		 CPUFREQ_HAVE_GOVERNOR_PER_POLICY,
+		 CPUFREQ_HAVE_GOVERNOR_PER_POLICY |
+		 CPUFREQ_AUTO_REGISTER_COOLING_DEV,
 	.verify = cpufreq_generic_frequency_table_verify,
 	.target_index = mtk_cpufreq_set_target,
 	.get = cpufreq_generic_get,
 	.init = mtk_cpufreq_init,
 	.exit = mtk_cpufreq_exit,
-	.ready = mtk_cpufreq_ready,
 	.name = "mtk-cpufreq",
 	.attr = cpufreq_generic_attr,
 };