devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220
@ 2016-03-29 11:27 Leo Yan
  2016-03-29 11:27 ` [PATCH v3 1/4] thermal: hisilicon: support to use any sensor Leo Yan
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Leo Yan @ 2016-03-29 11:27 UTC (permalink / raw)
  To: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	Eduardo Valentin
  Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-pm-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Leo Yan

Hi6220 has octa-core so it has quite high power consumption when run
benchmark and introduces high temperature for SoC. So need enable
thermal governor to control temperature and also cannot hurt much for
performance after impose cooling operations on CPU.

This patch series is to enable power allocator for Hi6220. Patch 1 is to
change "hysteresis" as optional property for trip points, so when enable
power allocator governor we can ignore this property.

During profiling also found two issues for thermal sensor's driver. The
power allocator just uses only one sensor, so patch 2 is to fix sensor
driver to let it can initialize driver successfully with only enabling
one sensor; patch 3 is to dismiss warning of IRQ imbalance enabling.

After profiling on Hikey, the power model has been simplized with only
dynamic coefficient, and now it's convienence to pass it from CPU node.
So patch 4 and 5 bind sensor and pass power model parameters.

This patch series have been tested on 96boards Hikey.

Changes from v2:
* Discarded patch for changing "hysteresis" as optional property
* Added back "hysteresis" property

Changes from v1:
* According to Javi's review, removed unecessary properties for DT
* Added patch 1 for change "hysteresis" as optional property
* Added patch 3 to fix IRQ imbalance enabling issue


Leo Yan (4):
  thermal: hisilicon: support to use any sensor
  thermal: hisilicon: fix IRQ imbalance enabling
  arm64: dts: register Hi6220's thermal sensor
  arm64: dts: register Hi6220's thermal zone for power allocator

 arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 44 +++++++++++++++++++++++++++++++
 drivers/thermal/hisi_thermal.c            | 40 +++++++++++++++++-----------
 2 files changed, 68 insertions(+), 16 deletions(-)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [PATCH v3 1/4] thermal: hisilicon: support to use any sensor
  2016-03-29 11:27 [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Leo Yan
@ 2016-03-29 11:27 ` Leo Yan
  2016-03-29 11:27 ` [PATCH v3 2/4] thermal: hisilicon: fix IRQ imbalance enabling Leo Yan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Leo Yan @ 2016-03-29 11:27 UTC (permalink / raw)
  To: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	Eduardo Valentin
  Cc: linux-arm-kernel, devicetree, linux-pm, linux-kernel, Leo Yan

In current code sensor driver registers all 4 sensors together and if
any of them has not bound to thermal zone successfully then driver will
return failure for driver's initialization. As a result, if DT binds
thermal zone with only one sensor, then the thermal driver will not work
well anymore.

So this patch is to fix this issue. It allows the thermal sensor driver
can register any number sensors at initialization phase, and fix up code
for other related code to skip related sensor's accessing if the sensor
has not been enabled in initialization phase.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 drivers/thermal/hisi_thermal.c | 33 ++++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c
index 36d0729..0fed5cf 100644
--- a/drivers/thermal/hisi_thermal.c
+++ b/drivers/thermal/hisi_thermal.c
@@ -160,7 +160,7 @@ static int hisi_thermal_get_temp(void *_sensor, int *temp)
 	struct hisi_thermal_sensor *sensor = _sensor;
 	struct hisi_thermal_data *data = sensor->thermal;
 
-	int sensor_id = 0, i;
+	int sensor_id = -1, i;
 	long max_temp = 0;
 
 	*temp = hisi_thermal_get_sensor_temp(data, sensor);
@@ -168,12 +168,19 @@ static int hisi_thermal_get_temp(void *_sensor, int *temp)
 	sensor->sensor_temp = *temp;
 
 	for (i = 0; i < HISI_MAX_SENSORS; i++) {
+		if (!data->sensors[i].tzd)
+			continue;
+
 		if (data->sensors[i].sensor_temp >= max_temp) {
 			max_temp = data->sensors[i].sensor_temp;
 			sensor_id = i;
 		}
 	}
 
+	/* If no sensor has been enabled, then skip to enable irq */
+	if (sensor_id == -1)
+		return 0;
+
 	mutex_lock(&data->thermal_lock);
 	data->irq_bind_sensor = sensor_id;
 	mutex_unlock(&data->thermal_lock);
@@ -226,8 +233,12 @@ static irqreturn_t hisi_thermal_alarm_irq_thread(int irq, void *dev)
 		 sensor->thres_temp / 1000);
 	mutex_unlock(&data->thermal_lock);
 
-	for (i = 0; i < HISI_MAX_SENSORS; i++)
+	for (i = 0; i < HISI_MAX_SENSORS; i++) {
+		if (!data->sensors[i].tzd)
+			continue;
+
 		thermal_zone_device_update(data->sensors[i].tzd);
+	}
 
 	return IRQ_HANDLED;
 }
@@ -247,6 +258,7 @@ static int hisi_thermal_register_sensor(struct platform_device *pdev,
 				sensor, &hisi_of_thermal_ops);
 	if (IS_ERR(sensor->tzd)) {
 		ret = PTR_ERR(sensor->tzd);
+		sensor->tzd = NULL;
 		dev_err(&pdev->dev, "failed to register sensor id %d: %d\n",
 			sensor->id, ret);
 		return ret;
@@ -334,25 +346,17 @@ static int hisi_thermal_probe(struct platform_device *pdev)
 	for (i = 0; i < HISI_MAX_SENSORS; ++i) {
 		ret = hisi_thermal_register_sensor(pdev, data,
 						   &data->sensors[i], i);
-		if (ret) {
+		if (ret)
 			dev_err(&pdev->dev,
 				"failed to register thermal sensor: %d\n", ret);
-			goto err_get_sensor_data;
-		}
+		else
+			hisi_thermal_toggle_sensor(&data->sensors[i], true);
 	}
 
 	hisi_thermal_enable_bind_irq_sensor(data);
 	data->irq_enabled = true;
 
-	for (i = 0; i < HISI_MAX_SENSORS; i++)
-		hisi_thermal_toggle_sensor(&data->sensors[i], true);
-
 	return 0;
-
-err_get_sensor_data:
-	clk_disable_unprepare(data->clk);
-
-	return ret;
 }
 
 static int hisi_thermal_remove(struct platform_device *pdev)
@@ -363,6 +367,9 @@ static int hisi_thermal_remove(struct platform_device *pdev)
 	for (i = 0; i < HISI_MAX_SENSORS; i++) {
 		struct hisi_thermal_sensor *sensor = &data->sensors[i];
 
+		if (!sensor->tzd)
+			continue;
+
 		hisi_thermal_toggle_sensor(sensor, false);
 		thermal_zone_of_sensor_unregister(&pdev->dev, sensor->tzd);
 	}
-- 
1.9.1


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

* [PATCH v3 2/4] thermal: hisilicon: fix IRQ imbalance enabling
  2016-03-29 11:27 [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Leo Yan
  2016-03-29 11:27 ` [PATCH v3 1/4] thermal: hisilicon: support to use any sensor Leo Yan
@ 2016-03-29 11:27 ` Leo Yan
  2016-03-29 11:27 ` [PATCH v3 3/4] arm64: dts: register Hi6220's thermal sensor Leo Yan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Leo Yan @ 2016-03-29 11:27 UTC (permalink / raw)
  To: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	Eduardo Valentin
  Cc: linux-arm-kernel, devicetree, linux-pm, linux-kernel, Leo Yan

When register sensors into thermal zone during initialization phase, it
reports error for IRQ imbalance enabling:

[    2.040713] WARNING: at kernel/irq/manage.c:513
[    2.040719] Modules linked in:
[    2.040721]
[    2.040729] CPU: 1 PID: 804 Comm: irq/33-hisi_the Not tainted 4.5.0-rc4+ #505
[    2.040732] Hardware name: HiKey Development Board (DT)
[    2.040736] task: ffffffc03ae82580 ti: ffffffc0379c8000 task.ti: ffffffc0379c8000
[    2.040745] PC is at __enable_irq+0x74/0x84
[    2.040749] LR is at __enable_irq+0x74/0x84

This warning is for IRQ imbalance enabling, which is caused by
enable_irq() twice. During sensor's initialization it tries to enable
IRQ, the driver will call thermal_zone_of_sensor_register() to bind
sensors and read sensor's temperature. But at this moment the flag
"data->irq_enabled" has been not initialized as correct state, so it
finally introduces the function enabled_irq() to be called twice. In
essentially this is caused by the flag "data->irq_enabled" is
inconsistent with real hardware IRQ enabling state.

So this patch is to fix this issue, firstly init "irq_enabled" flag
before binding sensors to thermal zone. Also change to use the function
irq_get_irqchip_state() to read back real interrupt line state.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 drivers/thermal/hisi_thermal.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c
index 0fed5cf..4fef1b3 100644
--- a/drivers/thermal/hisi_thermal.c
+++ b/drivers/thermal/hisi_thermal.c
@@ -343,6 +343,10 @@ static int hisi_thermal_probe(struct platform_device *pdev)
 		return ret;
 	}
 
+	hisi_thermal_enable_bind_irq_sensor(data);
+	irq_get_irqchip_state(data->irq, IRQCHIP_STATE_MASKED,
+			      &data->irq_enabled);
+
 	for (i = 0; i < HISI_MAX_SENSORS; ++i) {
 		ret = hisi_thermal_register_sensor(pdev, data,
 						   &data->sensors[i], i);
@@ -353,9 +357,6 @@ static int hisi_thermal_probe(struct platform_device *pdev)
 			hisi_thermal_toggle_sensor(&data->sensors[i], true);
 	}
 
-	hisi_thermal_enable_bind_irq_sensor(data);
-	data->irq_enabled = true;
-
 	return 0;
 }
 
-- 
1.9.1


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

* [PATCH v3 3/4] arm64: dts: register Hi6220's thermal sensor
  2016-03-29 11:27 [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Leo Yan
  2016-03-29 11:27 ` [PATCH v3 1/4] thermal: hisilicon: support to use any sensor Leo Yan
  2016-03-29 11:27 ` [PATCH v3 2/4] thermal: hisilicon: fix IRQ imbalance enabling Leo Yan
@ 2016-03-29 11:27 ` Leo Yan
       [not found] ` <1459250835-25561-1-git-send-email-leo.yan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
  2016-03-29 15:45 ` [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Eduardo Valentin
  4 siblings, 0 replies; 8+ messages in thread
From: Leo Yan @ 2016-03-29 11:27 UTC (permalink / raw)
  To: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	Eduardo Valentin
  Cc: linux-arm-kernel, devicetree, linux-pm, linux-kernel, Leo Yan

Bind thermal sensor driver for Hi6220.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index f588be9..50ba1b0 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -313,5 +313,14 @@
 			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
 			#mbox-cells = <3>;
 		};
+
+		tsensor: tsensor@0,f7030700 {
+			compatible = "hisilicon,tsensor";
+			reg = <0x0 0xf7030700 0x0 0x1000>;
+			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&sys_ctrl 22>;
+			clock-names = "thermal_clk";
+			#thermal-sensor-cells = <1>;
+		};
 	};
 };
-- 
1.9.1

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

* [PATCH v3 4/4] arm64: dts: register Hi6220's thermal zone for power allocator
       [not found] ` <1459250835-25561-1-git-send-email-leo.yan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2016-03-29 11:27   ` Leo Yan
  0 siblings, 0 replies; 8+ messages in thread
From: Leo Yan @ 2016-03-29 11:27 UTC (permalink / raw)
  To: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	Eduardo Valentin
  Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-pm-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Leo Yan

With profiling Hi6220's power modeling so get dynamic coefficient and
sustainable power. So pass these parameters from DT.

Now enable power allocator with only one actor for CPU part, so directly
use cluster0's thermal sensor for monitoring temperature.

Reviewed-by: Javi Merino <javi.merino-5wv7dgnIgG8@public.gmane.org>
Signed-off-by: Leo Yan <leo.yan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 35 +++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index 50ba1b0..1c7b133 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -6,6 +6,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/hi6220-clock.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
 	compatible = "hisilicon,hi6220";
@@ -87,6 +88,7 @@
 			cooling-max-level = <0>;
 			#cooling-cells = <2>; /* min followed by max */
 			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+			dynamic-power-coefficient = <311>;
 		};
 
 		cpu1: cpu@1 {
@@ -322,5 +324,38 @@
 			clock-names = "thermal_clk";
 			#thermal-sensor-cells = <1>;
 		};
+
+		thermal-zones {
+
+			cls0: cls0 {
+				polling-delay = <1000>;
+				polling-delay-passive = <100>;
+				sustainable-power = <3326>;
+
+				/* sensor ID */
+				thermal-sensors = <&tsensor 2>;
+
+				trips {
+					threshold: trip-point@0 {
+						temperature = <65000>;
+						hysteresis = <0>;
+						type = "passive";
+					};
+
+					target: trip-point@1 {
+						temperature = <75000>;
+						hysteresis = <0>;
+						type = "passive";
+					};
+				};
+
+				cooling-maps {
+					map0 {
+						trip = <&target>;
+						cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+					};
+				};
+			};
+		};
 	};
 };
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220
  2016-03-29 11:27 [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Leo Yan
                   ` (3 preceding siblings ...)
       [not found] ` <1459250835-25561-1-git-send-email-leo.yan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2016-03-29 15:45 ` Eduardo Valentin
       [not found]   ` <20160329154548.GE1855-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
  4 siblings, 1 reply; 8+ messages in thread
From: Eduardo Valentin @ 2016-03-29 15:45 UTC (permalink / raw)
  To: Leo Yan
  Cc: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	linux-arm-kernel, devicetree, linux-pm, linux-kernel

On Tue, Mar 29, 2016 at 07:27:11PM +0800, Leo Yan wrote:
> Hi6220 has octa-core so it has quite high power consumption when run
> benchmark and introduces high temperature for SoC. So need enable
> thermal governor to control temperature and also cannot hurt much for
> performance after impose cooling operations on CPU.
> 
> This patch series is to enable power allocator for Hi6220. Patch 1 is to
> change "hysteresis" as optional property for trip points, so when enable
> power allocator governor we can ignore this property.
> 
> During profiling also found two issues for thermal sensor's driver. The
> power allocator just uses only one sensor, so patch 2 is to fix sensor
> driver to let it can initialize driver successfully with only enabling
> one sensor; patch 3 is to dismiss warning of IRQ imbalance enabling.
> 
> After profiling on Hikey, the power model has been simplized with only
> dynamic coefficient, and now it's convienence to pass it from CPU node.
> So patch 4 and 5 bind sensor and pass power model parameters.
> 
> This patch series have been tested on 96boards Hikey.

Applied patches 1 and 2 in my fixes branch. Patches 3 and 4 need to go
via the hisi platform tree. You may add my

Acked-by: Eduardo Valentin <edubezval@gmail.com>

on patches 3 and 4 if you want.

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

* Re: [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220
       [not found]   ` <20160329154548.GE1855-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
@ 2016-03-30  2:53     ` Leo Yan
  2016-03-30 15:18       ` Wei Xu
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Yan @ 2016-03-30  2:53 UTC (permalink / raw)
  To: Eduardo Valentin
  Cc: Wei Xu, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	Kumar Gala, Catalin Marinas, Will Deacon, Zhang Rui,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-pm-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

On Tue, Mar 29, 2016 at 08:45:59AM -0700, Eduardo Valentin wrote:
> On Tue, Mar 29, 2016 at 07:27:11PM +0800, Leo Yan wrote:
> > Hi6220 has octa-core so it has quite high power consumption when run
> > benchmark and introduces high temperature for SoC. So need enable
> > thermal governor to control temperature and also cannot hurt much for
> > performance after impose cooling operations on CPU.
> > 
> > This patch series is to enable power allocator for Hi6220. Patch 1 is to
> > change "hysteresis" as optional property for trip points, so when enable
> > power allocator governor we can ignore this property.
> > 
> > During profiling also found two issues for thermal sensor's driver. The
> > power allocator just uses only one sensor, so patch 2 is to fix sensor
> > driver to let it can initialize driver successfully with only enabling
> > one sensor; patch 3 is to dismiss warning of IRQ imbalance enabling.
> > 
> > After profiling on Hikey, the power model has been simplized with only
> > dynamic coefficient, and now it's convienence to pass it from CPU node.
> > So patch 4 and 5 bind sensor and pass power model parameters.
> > 
> > This patch series have been tested on 96boards Hikey.
> 
> Applied patches 1 and 2 in my fixes branch. Patches 3 and 4 need to go
> via the hisi platform tree. You may add my
> 
> Acked-by: Eduardo Valentin <edubezval-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> 
> on patches 3 and 4 if you want.

Thanks, Eduardo.

Hi Wei,

Could you help pick up patches 3/4 for enabling thermal in dts?

Thanks,
Leo Yan
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220
  2016-03-30  2:53     ` Leo Yan
@ 2016-03-30 15:18       ` Wei Xu
  0 siblings, 0 replies; 8+ messages in thread
From: Wei Xu @ 2016-03-30 15:18 UTC (permalink / raw)
  To: Leo Yan, Eduardo Valentin
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Catalin Marinas, Will Deacon, Zhang Rui, linux-arm-kernel,
	devicetree, linux-pm, linux-kernel, Guodong Xu,
	haojian.zhuang@linaro.org, zhangfei.gao@linaro.org

Hi Leo,

On 30/03/2016 03:53, Leo Yan wrote:
> On Tue, Mar 29, 2016 at 08:45:59AM -0700, Eduardo Valentin wrote:
>> On Tue, Mar 29, 2016 at 07:27:11PM +0800, Leo Yan wrote:
>>> Hi6220 has octa-core so it has quite high power consumption when run
>>> benchmark and introduces high temperature for SoC. So need enable
>>> thermal governor to control temperature and also cannot hurt much for
>>> performance after impose cooling operations on CPU.
>>>
>>> This patch series is to enable power allocator for Hi6220. Patch 1 is to
>>> change "hysteresis" as optional property for trip points, so when enable
>>> power allocator governor we can ignore this property.
>>>
>>> During profiling also found two issues for thermal sensor's driver. The
>>> power allocator just uses only one sensor, so patch 2 is to fix sensor
>>> driver to let it can initialize driver successfully with only enabling
>>> one sensor; patch 3 is to dismiss warning of IRQ imbalance enabling.
>>>
>>> After profiling on Hikey, the power model has been simplized with only
>>> dynamic coefficient, and now it's convienence to pass it from CPU node.
>>> So patch 4 and 5 bind sensor and pass power model parameters.
>>>
>>> This patch series have been tested on 96boards Hikey.
>>
>> Applied patches 1 and 2 in my fixes branch. Patches 3 and 4 need to go
>> via the hisi platform tree. You may add my
>>
>> Acked-by: Eduardo Valentin <edubezval@gmail.com>
>>
>> on patches 3 and 4 if you want.
> 
> Thanks, Eduardo.
> 
> Hi Wei,
> 
> Could you help pick up patches 3/4 for enabling thermal in dts?

Applied 3 & 4.
Thanks!

Best Regards,
Wei

> 
> Thanks,
> Leo Yan
> 
> .
> 


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

end of thread, other threads:[~2016-03-30 15:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-29 11:27 [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Leo Yan
2016-03-29 11:27 ` [PATCH v3 1/4] thermal: hisilicon: support to use any sensor Leo Yan
2016-03-29 11:27 ` [PATCH v3 2/4] thermal: hisilicon: fix IRQ imbalance enabling Leo Yan
2016-03-29 11:27 ` [PATCH v3 3/4] arm64: dts: register Hi6220's thermal sensor Leo Yan
     [not found] ` <1459250835-25561-1-git-send-email-leo.yan-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-03-29 11:27   ` [PATCH v3 4/4] arm64: dts: register Hi6220's thermal zone for power allocator Leo Yan
2016-03-29 15:45 ` [PATCH v3 0/4] thermal: hisilicon: enable power allocator for Hi6220 Eduardo Valentin
     [not found]   ` <20160329154548.GE1855-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-03-30  2:53     ` Leo Yan
2016-03-30 15:18       ` Wei Xu

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