Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH v5 0/3] thermal: mediatek: Add cpu dynamic power cooling model.

53 views
Skip to first unread message

Dawei Chien

unread,
Dec 15, 2015, 11:00:08 PM12/15/15
to
Use Intelligent Power Allocation (IPA) technical to add dynamic power model
for binding CPU thermal zone. The power allocator governor allocates power
budget to control CPU temperature.

Power Allocator governor is able to keep SOC temperature within a defined
temperature range to avoid SOC overheat and keep it's performance.
mt8173-cpufreq.c need to register its' own power model with power allocator
thermal governor, so that power allocator governor can allocates suitable
power budget to control CPU temperature.

Binding document is refer to this patchset
https://lkml.org/lkml/2015/11/30/239

Change since V4:
1. Remove unnecessary error-checking for mt8173-cpufreq.c
2. Initializing variable capacitance with 0

Change since V3:
1. Remove static power model
2. Split V3's device tree in two for thermal zones and dynamic power models respectively

Change since V2:
1. Move dynamic/static power model in device tree

Change since V1:
1. Include mt8171.h and sort header file for mt8173.dtsi

Dawei Chien (3):
thermal: mediatek: Add cpu dynamic power cooling model.
arm64: dts: mt8173: Add thermal zone node.
arm64: dts: mt8173: Add dynamic power node.

arch/arm64/boot/dts/mediatek/mt8173.dtsi | 47 ++++++++++++++++++++++++++++++
drivers/cpufreq/mt8173-cpufreq.c | 12 ++++++--
2 files changed, 57 insertions(+), 2 deletions(-)

--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Dawei Chien

unread,
Dec 15, 2015, 11:10:06 PM12/15/15
to
MT8173 cpufreq driver select of_cpufreq_power_cooling_register registering
cooling devices with dynamic power coefficient.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/17/251
---
drivers/cpufreq/mt8173-cpufreq.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/cpufreq/mt8173-cpufreq.c b/drivers/cpufreq/mt8173-cpufreq.c
index 83001dc..d00bab5 100644
--- a/drivers/cpufreq/mt8173-cpufreq.c
+++ b/drivers/cpufreq/mt8173-cpufreq.c
@@ -263,17 +263,24 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
return 0;
}

+#define DYNAMIC_POWER "dynamic-power-coefficient"
+
static void mtk_cpufreq_ready(struct cpufreq_policy *policy)
{
struct mtk_cpu_dvfs_info *info = policy->driver_data;
struct device_node *np = of_node_get(info->cpu_dev->of_node);
+ u32 capacitance = 0;

if (WARN_ON(!np))
return;

if (of_find_property(np, "#cooling-cells", NULL)) {
- info->cdev = of_cpufreq_cooling_register(np,
- policy->related_cpus);
+ of_property_read_u32(np, DYNAMIC_POWER, &capacitance);
+
+ info->cdev = of_cpufreq_power_cooling_register(np,
+ policy->related_cpus,
+ capacitance,
+ NULL);

if (IS_ERR(info->cdev)) {
dev_err(info->cpu_dev,

Viresh Kumar

unread,
Dec 15, 2015, 11:20:06 PM12/15/15
to
On 16-12-15, 11:59, Dawei Chien wrote:
> Use Intelligent Power Allocation (IPA) technical to add dynamic power model
> for binding CPU thermal zone. The power allocator governor allocates power
> budget to control CPU temperature.
>
> Power Allocator governor is able to keep SOC temperature within a defined
> temperature range to avoid SOC overheat and keep it's performance.
> mt8173-cpufreq.c need to register its' own power model with power allocator
> thermal governor, so that power allocator governor can allocates suitable
> power budget to control CPU temperature.
>
> Binding document is refer to this patchset
> https://lkml.org/lkml/2015/11/30/239
>
> Change since V4:
> 1. Remove unnecessary error-checking for mt8173-cpufreq.c
> 2. Initializing variable capacitance with 0

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

--
viresh

Dawei Chien

unread,
Dec 16, 2015, 8:30:09 AM12/16/15
to
Use Intelligent Power Allocation (IPA) technical to add dynamic power model
for binding CPU thermal zone. The power allocator governor allocates power
budget to control CPU temperature.

Power Allocator governor is able to keep SOC temperature within a defined
temperature range to avoid SOC overheat and keep it's performance.
mt8173-cpufreq.c need to register its' own power model with power allocator
thermal governor, so that power allocator governor can allocates suitable
power budget to control CPU temperature.

Binding document is refer to this patchset
https://lkml.org/lkml/2015/11/30/239

Change since V5:
1. Remove thermal sensor ID from phandles

Change since V4:
1. Remove unnecessary error-checking for mt8173-cpufreq.c
2. Initializing variable capacitance with 0

Change since V3:
1. Remove static power model
2. Split V3's device tree in two for thermal zones and dynamic power models respectively

Change since V2:
1. Move dynamic/static power model in device tree

Change since V1:
1. Include mt8171.h and sort header file for mt8173.dtsi

Dawei Chien (3):
thermal: mediatek: Add cpu dynamic power cooling model.
arm64: dts: mt8173: Add thermal zone node.
arm64: dts: mt8173: Add dynamic power node.

arch/arm64/boot/dts/mediatek/mt8173.dtsi | 47 ++++++++++++++++++++++++++++++
drivers/cpufreq/mt8173-cpufreq.c | 12 ++++++--
2 files changed, 57 insertions(+), 2 deletions(-)

--
1.7.9.5

Dawei Chien

unread,
Dec 16, 2015, 8:30:16 AM12/16/15
to
This device node is for calculating dynamic power in mW.
Since mt8173 has two clusters, there are two dynamic power
coefficient as well.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/17/251
---
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index c962d94..b6f4ea5 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -71,6 +71,7 @@
#cooling-cells = <2>;
#cooling-min-level = <0>;
#cooling-max-level = <7>;
+ dynamic-power-coefficient = <263>;
};

cpu1: cpu@1 {
@@ -95,6 +96,7 @@
#cooling-cells = <2>;
#cooling-min-level = <0>;
#cooling-max-level = <7>;
+ dynamic-power-coefficient = <263>;
};

cpu2: cpu@100 {
@@ -119,6 +121,7 @@
#cooling-cells = <2>;
#cooling-min-level = <0>;
#cooling-max-level = <7>;
+ dynamic-power-coefficient = <530>;
};

cpu3: cpu@101 {
@@ -143,6 +146,7 @@
#cooling-cells = <2>;
#cooling-min-level = <0>;
#cooling-max-level = <7>;
+ dynamic-power-coefficient = <530>;
};

idle-states {

Dawei Chien

unread,
Dec 16, 2015, 8:40:06 AM12/16/15
to
MT8173 cpufreq driver select of_cpufreq_power_cooling_register registering
cooling devices with dynamic power coefficient.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/17/251
---

Viresh Kumar

unread,
Dec 16, 2015, 9:00:07 PM12/16/15
to
On 16-12-15, 21:29, Dawei Chien wrote:
> Use Intelligent Power Allocation (IPA) technical to add dynamic power model
> for binding CPU thermal zone. The power allocator governor allocates power
> budget to control CPU temperature.
>
> Power Allocator governor is able to keep SOC temperature within a defined
> temperature range to avoid SOC overheat and keep it's performance.
> mt8173-cpufreq.c need to register its' own power model with power allocator
> thermal governor, so that power allocator governor can allocates suitable
> power budget to control CPU temperature.
>
> Binding document is refer to this patchset
> https://lkml.org/lkml/2015/11/30/239
>
> Change since V5:
> 1. Remove thermal sensor ID from phandles

Though you should have included this in the new version, but still

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

--
viresh

dawei chien

unread,
Mar 15, 2016, 1:00:07 AM3/15/16
to
On Thu, 2015-12-17 at 09:52 +0800, Viresh Kumar wrote:
> On 16-12-15, 21:29, Dawei Chien wrote:
> > Use Intelligent Power Allocation (IPA) technical to add dynamic power model
> > for binding CPU thermal zone. The power allocator governor allocates power
> > budget to control CPU temperature.
> >
> > Power Allocator governor is able to keep SOC temperature within a defined
> > temperature range to avoid SOC overheat and keep it's performance.
> > mt8173-cpufreq.c need to register its' own power model with power allocator
> > thermal governor, so that power allocator governor can allocates suitable
> > power budget to control CPU temperature.
> >
> > Binding document is refer to this patchset
> > https://lkml.org/lkml/2015/11/30/239
> >
> > Change since V5:
> > 1. Remove thermal sensor ID from phandles
>
> Though you should have included this in the new version, but still
>
> Acked-by: Viresh Kumar <viresh...@linaro.org>
>
> --
> viresh

Hi Viresh,
Would you please pull this patch to your tree since following patch
already pulled in, thank you.

https://lkml.org/lkml/2015/11/30/239

BR,
Dawei

Viresh Kumar

unread,
Mar 15, 2016, 2:20:05 AM3/15/16
to
Its Rafael, who is going to apply this one.

Can you please resend it as he may not have it in patchworks?

--
viresh

Dawei Chien

unread,
Mar 15, 2016, 4:20:07 AM3/15/16
to
Use Intelligent Power Allocation (IPA) technical to add dynamic power model for binding CPU thermal zone. The power allocator governor allocates power budget to control CPU temperature.

Power Allocator governor is able to keep SOC temperature within a defined temperature range to avoid SOC overheat and keep it's performance.
mt8173-cpufreq.c need to register its' own power model with power allocator thermal governor, so that power allocator governor can allocates suitable power budget to control CPU temperature.

Binding document is refer to this patchset
https://lkml.org/lkml/2015/11/30/239

Change since V5:
1. Remove thermal sensor ID from phandles

Dawei Chien

unread,
Mar 15, 2016, 4:20:08 AM3/15/16
to
This device node is for calculating dynamic power in mW.
Since mt8173 has two clusters, there are two dynamic power
coefficient as well.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/17/251
---
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index f9c44cc..5cb6b4e 100644

Dawei Chien

unread,
Mar 15, 2016, 4:20:08 AM3/15/16
to
MT8173 cpufreq driver select of_cpufreq_power_cooling_register registering
cooling devices with dynamic power coefficient.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
Acked-by: Viresh Kumar <viresh...@linaro.org>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/17/251
---
drivers/cpufreq/mt8173-cpufreq.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/cpufreq/mt8173-cpufreq.c b/drivers/cpufreq/mt8173-cpufreq.c
index 1efba34..d8ad406 100644
--- a/drivers/cpufreq/mt8173-cpufreq.c
+++ b/drivers/cpufreq/mt8173-cpufreq.c
@@ -309,17 +309,24 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,

Dawei Chien

unread,
Mar 15, 2016, 4:20:09 AM3/15/16
to
This adds thermal zone node to Mediatek MT8173 dtsi file.

Signed-off-by: Dawei Chien <dawei...@mediatek.com>
---
This patch is base on patchset:
https://lkml.org/lkml/2015/11/30/239
---
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 43 ++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index 47151e8..f9c44cc 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -188,6 +188,49 @@
clock-output-names = "cpum_ck";
};

+ thermal-zones {
+ cpu_thermal: cpu_thermal {
+ polling-delay-passive = <1000>; /* milliseconds */
+ polling-delay = <1000>; /* milliseconds */
+
+ thermal-sensors = <&thermal>;
+ sustainable-power = <1500>; /* milliwatts */
+
+ trips {
+ threshold: trip-point@0 {
+ temperature = <68000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ target: trip-point@1 {
+ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ cpu_crit: cpu_crit@0 {
+ temperature = <115000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map@0 {
+ trip = <&target>;
+ cooling-device = <&cpu0 0 0>;
+ contribution = <1024>;
+ };
+ map@1 {
+ trip = <&target>;
+ cooling-device = <&cpu2 0 0>;
+ contribution = <2048>;
+ };
+ };
+ };
+ };
+
timer {
compatible = "arm,armv8-timer";
interrupt-parent = <&gic>;
--
1.7.9.5

dawei chien

unread,
Mar 22, 2016, 1:20:05 AM3/22/16
to
Hi Rafael,
Would you merge this patch to your tee, thank you.

BR,
Dawei

dawei chien

unread,
Apr 11, 2016, 10:40:05 PM4/11/16
to
> Would you merge this patch to your tree, thank you.
>
> BR,
> Dawei

Hi Rafael,
Would you please merge this patch, or please kindly let me know for any
problem, thank you.

BR,
Dawei

Viresh Kumar

unread,
Apr 12, 2016, 1:20:06 AM4/12/16
to
Didn't I ask you earlier to resend this patch as Rafael wouldn't have
it in his queue now ?

Please resend it and that will make it earlier for Rafael to get it
applied.

--
viresh

dawei chien

unread,
Apr 12, 2016, 1:30:06 AM4/12/16
to

Viresh Kumar

unread,
Apr 12, 2016, 1:40:07 AM4/12/16
to
Hi Rafael,

On 15-03-16, 16:10, Dawei Chien wrote:
> MT8173 cpufreq driver select of_cpufreq_power_cooling_register registering
> cooling devices with dynamic power coefficient.
>
> Signed-off-by: Dawei Chien <dawei...@mediatek.com>
> Acked-by: Viresh Kumar <viresh...@linaro.org>

Can you please apply this patch from Dawei ?

--
viresh

Viresh Kumar

unread,
Apr 12, 2016, 1:40:07 AM4/12/16
to
On 12-04-16, 13:24, dawei chien wrote:
> Please refer to following for my resending, thank you.
>
> https://lkml.org/lkml/2016/3/15/101
> https://patchwork.kernel.org/patch/8586131/
> https://patchwork.kernel.org/patch/8586111/
> https://patchwork.kernel.org/patch/8586081/

Oh, you were continuously sending new ping requests on the old thread.
You should have used the new thread instead :)

Anyway, I have pinged Rafael over the new thread now.

--
viresh

Rafael J. Wysocki

unread,
Apr 13, 2016, 1:00:08 AM4/13/16
to
I can, but I'm traveling this week, so that's rather going to happen next week.

Thanks,
Rafael

Matthias Brugger

unread,
Apr 20, 2016, 8:00:06 AM4/20/16
to
Hi Rafael,
I don't see the patch in linux-next, did you forget to pick/push it?

Regards,
Matthias

Rafael J. Wysocki

unread,
Apr 20, 2016, 8:40:07 PM4/20/16
to
No, I didn't. I just didn't have the time to get to them before.

Now, given that they are thermal patches, they really should go in via
linux-soc-thermal.git.

Eduardo, any chance to take care of these?

Thanks,
Rafael

Eduardo Valentin

unread,
Apr 20, 2016, 11:10:07 PM4/20/16
to
Yes I can add this one, given that they have the proper acked-by. I was
a bit hesitant to just get them because they are touching
drivers/cpufreq.

Anyways, I am adding this to my branch to the next merge window.


>
> Thanks,
> Rafael
>

Eduardo Valentin

unread,
Apr 20, 2016, 11:50:06 PM4/20/16
to
Added the driver changes. The dt parts should go via your platform tree.
And you can add my
Acked-by: Eduardo Valentin <edub...@gmail.com>

on the dt changes.

>
>
> >
> > Thanks,
> > Rafael
> >

dawei chien

unread,
Apr 21, 2016, 12:20:07 AM4/21/16
to
On Tue, 2016-03-15 at 16:10 +0800, Dawei Chien (錢大衛) wrote:
> This device node is for calculating dynamic power in mW.
> Since mt8173 has two clusters, there are two dynamic power
> coefficient as well.
>
> Signed-off-by: Dawei Chien <dawei...@mediatek.com>
> ---
> This patch is base on patchset:
> https://lkml.org/lkml/2015/11/17/251

Sorry for miss one dependence for this device node.
https://lkml.org/lkml/2015/7/9/206

Matthias Brugger

unread,
Apr 21, 2016, 6:30:07 AM4/21/16
to


On 21/04/16 06:12, dawei chien wrote:
> On Tue, 2016-03-15 at 16:10 +0800, Dawei Chien (錢大衛) wrote:
>> This device node is for calculating dynamic power in mW.
>> Since mt8173 has two clusters, there are two dynamic power
>> coefficient as well.
>>
>> Signed-off-by: Dawei Chien <dawei...@mediatek.com>
>> ---
>> This patch is base on patchset:
>> https://lkml.org/lkml/2015/11/17/251
>
> Sorry for miss one dependence for this device node.
> https://lkml.org/lkml/2015/7/9/206
>

This patch got somehow forgotten.
Thanks for the reminder.
Matthias

Rafael J. Wysocki

unread,
Apr 21, 2016, 2:00:07 PM4/21/16
to
Generally, ACKs from Viresh are sufficient for ARM cpufreq drivers
unless the maintainers of the platform in question disagree.

> Anyways, I am adding this to my branch to the next merge window.

Thanks!
0 new messages