devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
@ 2018-06-08  9:06 Bastian Stender
  2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Bastian Stender @ 2018-06-08  9:06 UTC (permalink / raw)
  To: Shawn Guo, Rafael J . Wysocki, Viresh Kumar, Zhang Rui,
	Leonard Crestez
  Cc: devicetree, linux-pm, linux-imx, Anson Huang, kernel,
	Bastian Stender

The cooling device should be part of the i.MX cpufreq driver, but it
cannot be removed for the sake of DT stability. So turn the cooling
device registration into a separate function and perform the
registration only if the CPU OF node does not have the #cooling-cells
property.

Use of_cpufreq_power_cooling_register in imx_thermal code to link the
cooling device to the device tree node provided.

This makes it possible to bind the cpufreq cooling device to a custom
thermal zone via a cooling-maps entry like:

	cooling-maps {
		map0 {
			trip = <&board_alert>;
			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
		};
	};

Assuming a cpu node exists with label "cpu0" and #cooling-cells
property.

Signed-off-by: Bastian Stender <bst@pengutronix.de>
---
Changes since v2:
- replace of_cpufreq_power_cooling_register with
  of_cpufreq_cooling_register already handling capacitance/#cooling-cells
  properties

Changes since implicit v1 ("cpufreq: imx6q/thermal: imx: move CPU cooling device from thermal to cpufreq",
id:20171115092332.9320-1-bst@pengutronix.de):

- create cooling device in imx_thermal in case no #cooling-cells
  property is available instead of removing it (DT stability)
- fix indentation
---
 drivers/cpufreq/imx6q-cpufreq.c | 21 +++++++++++++++++++++
 drivers/thermal/imx_thermal.c   | 28 ++++++++++++++++++++++++----
 2 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index 83cf631fc9bc..a9259fb0302f 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -9,6 +9,7 @@
 #include <linux/clk.h>
 #include <linux/cpu.h>
 #include <linux/cpufreq.h>
+#include <linux/cpu_cooling.h>
 #include <linux/err.h>
 #include <linux/module.h>
 #include <linux/of.h>
@@ -50,6 +51,7 @@ static struct clk_bulk_data clks[] = {
 };
 
 static struct device *cpu_dev;
+static struct thermal_cooling_device *cdev;
 static bool free_opp;
 static struct cpufreq_frequency_table *freq_table;
 static unsigned int max_freq;
@@ -191,6 +193,16 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
 	return 0;
 }
 
+static void imx6q_cpufreq_ready(struct cpufreq_policy *policy)
+{
+	cdev = of_cpufreq_cooling_register(policy);
+
+	if (!cdev)
+		dev_err(cpu_dev,
+			"running cpufreq without cooling device: %ld\n",
+			PTR_ERR(cdev));
+}
+
 static int imx6q_cpufreq_init(struct cpufreq_policy *policy)
 {
 	int ret;
@@ -202,13 +214,22 @@ static int imx6q_cpufreq_init(struct cpufreq_policy *policy)
 	return ret;
 }
 
+static int imx6q_cpufreq_exit(struct cpufreq_policy *policy)
+{
+	cpufreq_cooling_unregister(cdev);
+
+	return 0;
+}
+
 static struct cpufreq_driver imx6q_cpufreq_driver = {
 	.flags = CPUFREQ_NEED_INITIAL_FREQ_CHECK,
 	.verify = cpufreq_generic_frequency_table_verify,
 	.target_index = imx6q_set_target,
 	.get = cpufreq_generic_get,
 	.init = imx6q_cpufreq_init,
+	.exit = imx6q_cpufreq_exit,
 	.name = "imx6q-cpufreq",
+	.ready = imx6q_cpufreq_ready,
 	.attr = cpufreq_generic_attr,
 	.suspend = cpufreq_generic_suspend,
 };
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 334d98be03b9..cbfcca828cd7 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -3,6 +3,7 @@
 // Copyright 2013 Freescale Semiconductor, Inc.
 
 #include <linux/clk.h>
+#include <linux/cpu.h>
 #include <linux/cpufreq.h>
 #include <linux/cpu_cooling.h>
 #include <linux/delay.h>
@@ -644,6 +645,27 @@ static const struct of_device_id of_imx_thermal_match[] = {
 };
 MODULE_DEVICE_TABLE(of, of_imx_thermal_match);
 
+/*
+ * Create cooling device in case no #cooling-cells property is available in
+ * CPU node
+ */
+static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
+{
+	struct device_node *np = of_get_cpu_node(data->policy->cpu, NULL);
+	int ret;
+
+	if (!np || !of_find_property(np, "#cooling-cells", NULL)) {
+		data->cdev = cpufreq_cooling_register(data->policy);
+		if (IS_ERR(data->cdev)) {
+			ret = PTR_ERR(data->cdev);
+			cpufreq_cpu_put(data->policy);
+			return ret;
+		}
+	}
+
+	return 0;
+}
+
 static int imx_thermal_probe(struct platform_device *pdev)
 {
 	struct imx_thermal_data *data;
@@ -724,12 +746,10 @@ static int imx_thermal_probe(struct platform_device *pdev)
 		return -EPROBE_DEFER;
 	}
 
-	data->cdev = cpufreq_cooling_register(data->policy);
-	if (IS_ERR(data->cdev)) {
-		ret = PTR_ERR(data->cdev);
+	ret = imx_thermal_register_legacy_cooling(data);
+	if (ret) {
 		dev_err(&pdev->dev,
 			"failed to register cpufreq cooling device: %d\n", ret);
-		cpufreq_cpu_put(data->policy);
 		return ret;
 	}
 
-- 
2.17.1


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

* [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device
  2018-06-08  9:06 [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Bastian Stender
@ 2018-06-08  9:06 ` Bastian Stender
  2018-06-19  9:06   ` Viresh Kumar
  2018-06-28  0:59   ` Shawn Guo
  2018-06-08 11:47 ` [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Lucas Stach
  2018-06-19  9:05 ` Viresh Kumar
  2 siblings, 2 replies; 9+ messages in thread
From: Bastian Stender @ 2018-06-08  9:06 UTC (permalink / raw)
  To: Shawn Guo, Rafael J . Wysocki, Viresh Kumar, Zhang Rui,
	Leonard Crestez
  Cc: devicetree, linux-pm, linux-imx, Anson Huang, kernel, Anson Huang,
	Bastian Stender

From: Anson Huang <Anson.Huang@nxp.com>

Add #cooling-cells for i.MX6/7 SoCs for cpufreq cooling device usage.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Bastian Stender <bst@pengutronix.de>
---
Changes since (implicit) v1:

- add Signed-off-by
---
 arch/arm/boot/dts/imx6dl.dtsi | 1 +
 arch/arm/boot/dts/imx6q.dtsi  | 1 +
 arch/arm/boot/dts/imx6sl.dtsi | 1 +
 arch/arm/boot/dts/imx6sx.dtsi | 1 +
 arch/arm/boot/dts/imx6ul.dtsi | 1 +
 arch/arm/boot/dts/imx7d.dtsi  | 1 +
 6 files changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi
index 558bce81209d..b830dfd74ad3 100644
--- a/arch/arm/boot/dts/imx6dl.dtsi
+++ b/arch/arm/boot/dts/imx6dl.dtsi
@@ -39,6 +39,7 @@
 				396000	1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6QDL_CLK_ARM>,
 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
 				 <&clks IMX6QDL_CLK_STEP>,
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index ae7b3f107893..ac9f5cb65dec 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -44,6 +44,7 @@
 				396000	1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6QDL_CLK_ARM>,
 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
 				 <&clks IMX6QDL_CLK_STEP>,
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index ab6a7e2e7e8f..d35d4e93236a 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -65,6 +65,7 @@
 				396000          1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
 					<&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
 					<&clks IMX6SL_CLK_PLL1_SYS>;
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 49c7205b8db8..966e39a99792 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -83,6 +83,7 @@
 				198000	    1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6SX_CLK_ARM>,
 				 <&clks IMX6SX_CLK_PLL2_PFD2>,
 				 <&clks IMX6SX_CLK_STEP>,
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 1241972b16ba..14b6ac78d323 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -66,6 +66,7 @@
 			device_type = "cpu";
 			reg = <0>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			operating-points = <
 				/* kHz	uV */
 				696000	1275000
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index 200714e3feea..4991371734d9 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -53,6 +53,7 @@
 				792000	975000
 			>;
 			clock-frequency = <996000000>;
+			#cooling-cells = <2>;
 		};
 
 		cpu1: cpu@1 {
-- 
2.17.1


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

* Re: [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
  2018-06-08  9:06 [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Bastian Stender
  2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
@ 2018-06-08 11:47 ` Lucas Stach
  2018-06-19  9:05 ` Viresh Kumar
  2 siblings, 0 replies; 9+ messages in thread
From: Lucas Stach @ 2018-06-08 11:47 UTC (permalink / raw)
  To: Bastian Stender, Shawn Guo, Rafael J . Wysocki, Viresh Kumar,
	Zhang Rui, Leonard Crestez
  Cc: devicetree, linux-pm, linux-imx, Anson Huang, kernel

Am Freitag, den 08.06.2018, 11:06 +0200 schrieb Bastian Stender:
> The cooling device should be part of the i.MX cpufreq driver, but it
> cannot be removed for the sake of DT stability. So turn the cooling
> device registration into a separate function and perform the
> registration only if the CPU OF node does not have the #cooling-cells
> property.
> 
> Use of_cpufreq_power_cooling_register in imx_thermal code to link the
> cooling device to the device tree node provided.
> 
> This makes it possible to bind the cpufreq cooling device to a custom
> thermal zone via a cooling-maps entry like:
> 
> 	cooling-maps {
> > 		map0 {
> > 			trip = <&board_alert>;
> > 			cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> > 		};
> 	};
> 
> Assuming a cpu node exists with label "cpu0" and #cooling-cells
> property.
> 
> Signed-off-by: Bastian Stender <bst@pengutronix.de>

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>

> ---
> Changes since v2:
> - replace of_cpufreq_power_cooling_register with
>   of_cpufreq_cooling_register already handling capacitance/#cooling-cells
>   properties
> 
> Changes since implicit v1 ("cpufreq: imx6q/thermal: imx: move CPU cooling device from thermal to cpufreq",
> > id:20171115092332.9320-1-bst@pengutronix.de):
> 
> - create cooling device in imx_thermal in case no #cooling-cells
>   property is available instead of removing it (DT stability)
> - fix indentation
> ---
>  drivers/cpufreq/imx6q-cpufreq.c | 21 +++++++++++++++++++++
>  drivers/thermal/imx_thermal.c   | 28 ++++++++++++++++++++++++----
>  2 files changed, 45 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
> index 83cf631fc9bc..a9259fb0302f 100644
> --- a/drivers/cpufreq/imx6q-cpufreq.c
> +++ b/drivers/cpufreq/imx6q-cpufreq.c
> @@ -9,6 +9,7 @@
>  #include <linux/clk.h>
>  #include <linux/cpu.h>
>  #include <linux/cpufreq.h>
> +#include <linux/cpu_cooling.h>
>  #include <linux/err.h>
>  #include <linux/module.h>
>  #include <linux/of.h>
> @@ -50,6 +51,7 @@ static struct clk_bulk_data clks[] = {
>  };
>  
>  static struct device *cpu_dev;
> +static struct thermal_cooling_device *cdev;
>  static bool free_opp;
>  static struct cpufreq_frequency_table *freq_table;
>  static unsigned int max_freq;
> @@ -191,6 +193,16 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
> >  	return 0;
>  }
>  
> +static void imx6q_cpufreq_ready(struct cpufreq_policy *policy)
> +{
> > +	cdev = of_cpufreq_cooling_register(policy);
> +
> > +	if (!cdev)
> > +		dev_err(cpu_dev,
> > +			"running cpufreq without cooling device: %ld\n",
> > +			PTR_ERR(cdev));
> +}
> +
>  static int imx6q_cpufreq_init(struct cpufreq_policy *policy)
>  {
> >  	int ret;
> @@ -202,13 +214,22 @@ static int imx6q_cpufreq_init(struct cpufreq_policy *policy)
> >  	return ret;
>  }
>  
> +static int imx6q_cpufreq_exit(struct cpufreq_policy *policy)
> +{
> > +	cpufreq_cooling_unregister(cdev);
> +
> > +	return 0;
> +}
> +
>  static struct cpufreq_driver imx6q_cpufreq_driver = {
> >  	.flags = CPUFREQ_NEED_INITIAL_FREQ_CHECK,
> >  	.verify = cpufreq_generic_frequency_table_verify,
> >  	.target_index = imx6q_set_target,
> >  	.get = cpufreq_generic_get,
> >  	.init = imx6q_cpufreq_init,
> > +	.exit = imx6q_cpufreq_exit,
> >  	.name = "imx6q-cpufreq",
> > +	.ready = imx6q_cpufreq_ready,
> >  	.attr = cpufreq_generic_attr,
> >  	.suspend = cpufreq_generic_suspend,
>  };
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index 334d98be03b9..cbfcca828cd7 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -3,6 +3,7 @@
>  // Copyright 2013 Freescale Semiconductor, Inc.
>  
>  #include <linux/clk.h>
> +#include <linux/cpu.h>
>  #include <linux/cpufreq.h>
>  #include <linux/cpu_cooling.h>
>  #include <linux/delay.h>
> @@ -644,6 +645,27 @@ static const struct of_device_id of_imx_thermal_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, of_imx_thermal_match);
>  
> +/*
> + * Create cooling device in case no #cooling-cells property is available in
> + * CPU node
> + */
> +static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
> +{
> > +	struct device_node *np = of_get_cpu_node(data->policy->cpu, NULL);
> > +	int ret;
> +
> > +	if (!np || !of_find_property(np, "#cooling-cells", NULL)) {
> > +		data->cdev = cpufreq_cooling_register(data->policy);
> > +		if (IS_ERR(data->cdev)) {
> > +			ret = PTR_ERR(data->cdev);
> > +			cpufreq_cpu_put(data->policy);
> > +			return ret;
> > +		}
> > +	}
> +
> > +	return 0;
> +}
> +
>  static int imx_thermal_probe(struct platform_device *pdev)
>  {
> >  	struct imx_thermal_data *data;
> @@ -724,12 +746,10 @@ static int imx_thermal_probe(struct platform_device *pdev)
> >  		return -EPROBE_DEFER;
> >  	}
>  
> > -	data->cdev = cpufreq_cooling_register(data->policy);
> > -	if (IS_ERR(data->cdev)) {
> > -		ret = PTR_ERR(data->cdev);
> > +	ret = imx_thermal_register_legacy_cooling(data);
> > +	if (ret) {
> >  		dev_err(&pdev->dev,
> >  			"failed to register cpufreq cooling device: %d\n", ret);
> > -		cpufreq_cpu_put(data->policy);
> >  		return ret;
> >  	}
>  

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

* Re: [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
  2018-06-08  9:06 [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Bastian Stender
  2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
  2018-06-08 11:47 ` [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Lucas Stach
@ 2018-06-19  9:05 ` Viresh Kumar
  2018-06-19  9:22   ` Lucas Stach
  2 siblings, 1 reply; 9+ messages in thread
From: Viresh Kumar @ 2018-06-19  9:05 UTC (permalink / raw)
  To: Bastian Stender
  Cc: Shawn Guo, Rafael J . Wysocki, Zhang Rui, Leonard Crestez,
	devicetree, linux-pm, linux-imx, Anson Huang, kernel

On 08-06-18, 11:06, Bastian Stender wrote:
> The cooling device should be part of the i.MX cpufreq driver, but it
> cannot be removed for the sake of DT stability.

I am not sure what you meant by DT stability here. Can you please explain that ?
What about calling both OF and non-OF calls from the cpufreq driver, based on
the fact that data is present in DT or not ?

-- 
viresh

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

* Re: [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device
  2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
@ 2018-06-19  9:06   ` Viresh Kumar
  2018-06-28  0:59   ` Shawn Guo
  1 sibling, 0 replies; 9+ messages in thread
From: Viresh Kumar @ 2018-06-19  9:06 UTC (permalink / raw)
  To: Bastian Stender
  Cc: Shawn Guo, Rafael J . Wysocki, Zhang Rui, Leonard Crestez,
	devicetree, linux-pm, linux-imx, Anson Huang, kernel

On 08-06-18, 11:06, Bastian Stender wrote:
> From: Anson Huang <Anson.Huang@nxp.com>
> 
> Add #cooling-cells for i.MX6/7 SoCs for cpufreq cooling device usage.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> Signed-off-by: Bastian Stender <bst@pengutronix.de>
> ---
> Changes since (implicit) v1:
> 
> - add Signed-off-by
> ---
>  arch/arm/boot/dts/imx6dl.dtsi | 1 +
>  arch/arm/boot/dts/imx6q.dtsi  | 1 +
>  arch/arm/boot/dts/imx6sl.dtsi | 1 +
>  arch/arm/boot/dts/imx6sx.dtsi | 1 +
>  arch/arm/boot/dts/imx6ul.dtsi | 1 +
>  arch/arm/boot/dts/imx7d.dtsi  | 1 +

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

-- 
viresh

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

* Re: [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
  2018-06-19  9:05 ` Viresh Kumar
@ 2018-06-19  9:22   ` Lucas Stach
  2018-06-19  9:31     ` Viresh Kumar
  0 siblings, 1 reply; 9+ messages in thread
From: Lucas Stach @ 2018-06-19  9:22 UTC (permalink / raw)
  To: Viresh Kumar, Bastian Stender
  Cc: devicetree, Anson Huang, linux-pm, Rafael J . Wysocki, linux-imx,
	kernel, Zhang Rui, Leonard Crestez, Shawn Guo

Hi Viresh,

Am Dienstag, den 19.06.2018, 14:35 +0530 schrieb Viresh Kumar:
> On 08-06-18, 11:06, Bastian Stender wrote:
> > The cooling device should be part of the i.MX cpufreq driver, but it
> > cannot be removed for the sake of DT stability.
> 
> I am not sure what you meant by DT stability here. Can you please explain that ?

The goal that we strive for in i.MX land is that a any newer kernel
boots on a older DT without functional regressions compared to a
matching DT/kernel pair when possible.

> What about calling both OF and non-OF calls from the cpufreq driver, based on
> the fact that data is present in DT or not ?

That's right, we could move the cooling device registration completely
to the cpufreq driver. As that would consolidate the code some more, I
agree that this is the right way to go.

Regards,
Lucas

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

* Re: [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
  2018-06-19  9:22   ` Lucas Stach
@ 2018-06-19  9:31     ` Viresh Kumar
  2018-07-04 10:51       ` Rafael J. Wysocki
  0 siblings, 1 reply; 9+ messages in thread
From: Viresh Kumar @ 2018-06-19  9:31 UTC (permalink / raw)
  To: Lucas Stach
  Cc: Bastian Stender, devicetree, Anson Huang, linux-pm,
	Rafael J . Wysocki, linux-imx, kernel, Zhang Rui, Leonard Crestez,
	Shawn Guo

On 19-06-18, 11:22, Lucas Stach wrote:
> Hi Viresh,
> 
> Am Dienstag, den 19.06.2018, 14:35 +0530 schrieb Viresh Kumar:
> > On 08-06-18, 11:06, Bastian Stender wrote:
> > > The cooling device should be part of the i.MX cpufreq driver, but it
> > > cannot be removed for the sake of DT stability.
> > 
> > I am not sure what you meant by DT stability here. Can you please explain that ?
> 
> The goal that we strive for in i.MX land is that a any newer kernel
> boots on a older DT without functional regressions compared to a
> matching DT/kernel pair when possible.

Right, that's being backwards compatible and we must do that.

> > What about calling both OF and non-OF calls from the cpufreq driver, based on
> > the fact that data is present in DT or not ?
> 
> That's right, we could move the cooling device registration completely
> to the cpufreq driver. As that would consolidate the code some more, I
> agree that this is the right way to go.

We are good to go then :)

-- 
viresh

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

* Re: [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device
  2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
  2018-06-19  9:06   ` Viresh Kumar
@ 2018-06-28  0:59   ` Shawn Guo
  1 sibling, 0 replies; 9+ messages in thread
From: Shawn Guo @ 2018-06-28  0:59 UTC (permalink / raw)
  To: Bastian Stender
  Cc: Rafael J . Wysocki, Viresh Kumar, Zhang Rui, Leonard Crestez,
	devicetree, linux-pm, linux-imx, Anson Huang, kernel

On Fri, Jun 08, 2018 at 11:06:40AM +0200, Bastian Stender wrote:
> From: Anson Huang <Anson.Huang@nxp.com>
> 
> Add #cooling-cells for i.MX6/7 SoCs for cpufreq cooling device usage.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> Signed-off-by: Bastian Stender <bst@pengutronix.de>

Applied this one, thanks.

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

* Re: [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF
  2018-06-19  9:31     ` Viresh Kumar
@ 2018-07-04 10:51       ` Rafael J. Wysocki
  0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2018-07-04 10:51 UTC (permalink / raw)
  To: Viresh Kumar, Bastian Stender
  Cc: Lucas Stach, devicetree, Anson Huang, linux-pm, linux-imx, kernel,
	Zhang Rui, Leonard Crestez, Shawn Guo

On Tuesday, June 19, 2018 11:31:57 AM CEST Viresh Kumar wrote:
> On 19-06-18, 11:22, Lucas Stach wrote:
> > Hi Viresh,
> > 
> > Am Dienstag, den 19.06.2018, 14:35 +0530 schrieb Viresh Kumar:
> > > On 08-06-18, 11:06, Bastian Stender wrote:
> > > > The cooling device should be part of the i.MX cpufreq driver, but it
> > > > cannot be removed for the sake of DT stability.
> > > 
> > > I am not sure what you meant by DT stability here. Can you please explain that ?
> > 
> > The goal that we strive for in i.MX land is that a any newer kernel
> > boots on a older DT without functional regressions compared to a
> > matching DT/kernel pair when possible.
> 
> Right, that's being backwards compatible and we must do that.
> 
> > > What about calling both OF and non-OF calls from the cpufreq driver, based on
> > > the fact that data is present in DT or not ?
> > 
> > That's right, we could move the cooling device registration completely
> > to the cpufreq driver. As that would consolidate the code some more, I
> > agree that this is the right way to go.
> 
> We are good to go then :)

So I've applied the patch.

Thanks!


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

end of thread, other threads:[~2018-07-04 10:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-08  9:06 [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Bastian Stender
2018-06-08  9:06 ` [PATCH v3 2/2] ARM: dts: imx: add cooling-cells for cpufreq cooling device Bastian Stender
2018-06-19  9:06   ` Viresh Kumar
2018-06-28  0:59   ` Shawn Guo
2018-06-08 11:47 ` [PATCH v3 1/2] cpufreq: imx6q/thermal: imx: register cooling device depending on OF Lucas Stach
2018-06-19  9:05 ` Viresh Kumar
2018-06-19  9:22   ` Lucas Stach
2018-06-19  9:31     ` Viresh Kumar
2018-07-04 10:51       ` Rafael J. Wysocki

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