summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorŁukasz M <lukasz1992m@gmail.com>2023-10-31 16:15:06 +0100
committerDavid Bauer <mail@david-bauer.net>2023-11-03 23:06:07 +0100
commit5a603c7a316c3fb4bae4c7cb5c666232864126f2 (patch)
tree24c940e688004a861bb5de7e79f88a0e5dcbce84
parent0c47bdb9020a62e3358dc3878d614b8fac94fcd8 (diff)
downloadopenwrt-5a603c7a316c3fb4bae4c7cb5c666232864126f2.tar.gz
openwrt-5a603c7a316c3fb4bae4c7cb5c666232864126f2.tar.bz2
openwrt-5a603c7a316c3fb4bae4c7cb5c666232864126f2.zip
mediatek: mt7981: improve fan behaviour
This doubles the number of cooling-levels. In addition the fan is turned on with a low speed at lower temperatures and with a higher speed at higher temperatures. This also attempts to reduce the likelihood of constant start-stop actions. The change only affects the GL.iNet MT3000 and has been tested with it. Signed-off-by: Łukasz M <lukasz1992m@gmail.com>
-rw-r--r--target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi52
-rw-r--r--target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7981.dtsi52
2 files changed, 64 insertions, 40 deletions
diff --git a/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi b/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi
index 05d4b7d91d..cb161df81e 100644
--- a/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi
+++ b/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi
@@ -55,8 +55,8 @@
fan: pwm-fan {
compatible = "pwm-fan";
- /* cooling level (0, 1, 2, 3) : (0% duty, 50% duty, 75% duty, 100% duty) */
- cooling-levels = <0 128 192 255>;
+ /* cooling level (0, 1, 2, 3, 4, 5, 6, 7) : (0%/25%/37.5%/50%/62.5%/75%/87.5%/100% duty) */
+ cooling-levels = <0 63 95 127 159 191 223 255>;
#cooling-cells = <2>;
status = "disabled";
};
@@ -67,55 +67,67 @@
polling-delay = <1000>;
thermal-sensors = <&thermal 0>;
trips {
- cpu_trip_crit: crit {
- temperature = <125000>;
+ cpu_trip_active_highest: active-highest {
+ temperature = <70000>;
hysteresis = <2000>;
- type = "critical";
- };
-
- cpu_trip_hot: hot {
- temperature = <120000>;
- hysteresis = <2000>;
- type = "hot";
+ type = "active";
};
cpu_trip_active_high: active-high {
- temperature = <115000>;
+ temperature = <60000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_med: active-med {
- temperature = <85000>;
+ temperature = <50000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_low: active-low {
- temperature = <60000>;
+ temperature = <45000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+
+ cpu_trip_active_lowest: active-lowest {
+ temperature = <40000>;
hysteresis = <2000>;
type = "active";
};
};
cooling-maps {
+ cpu-active-highest {
+ /* active: set fan to cooling level 7 */
+ cooling-device = <&fan 7 7>;
+ trip = <&cpu_trip_active_highest>;
+ };
+
cpu-active-high {
- /* active: set fan to cooling level 3 */
- cooling-device = <&fan 3 3>;
+ /* active: set fan to cooling level 5 */
+ cooling-device = <&fan 5 5>;
trip = <&cpu_trip_active_high>;
};
cpu-active-med {
- /* active: set fan to cooling level 2 */
- cooling-device = <&fan 2 2>;
+ /* active: set fan to cooling level 3 */
+ cooling-device = <&fan 3 3>;
trip = <&cpu_trip_active_med>;
};
cpu-active-low {
- /* passive: set fan to cooling level 1 */
- cooling-device = <&fan 1 1>;
+ /* active: set fan to cooling level 2 */
+ cooling-device = <&fan 2 2>;
trip = <&cpu_trip_active_low>;
};
+
+ cpu-active-lowest {
+ /* active: set fan to cooling level 1 */
+ cooling-device = <&fan 1 1>;
+ trip = <&cpu_trip_active_lowest>;
+ };
};
};
};
diff --git a/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7981.dtsi b/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7981.dtsi
index 05d4b7d91d..cb161df81e 100644
--- a/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7981.dtsi
+++ b/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7981.dtsi
@@ -55,8 +55,8 @@
fan: pwm-fan {
compatible = "pwm-fan";
- /* cooling level (0, 1, 2, 3) : (0% duty, 50% duty, 75% duty, 100% duty) */
- cooling-levels = <0 128 192 255>;
+ /* cooling level (0, 1, 2, 3, 4, 5, 6, 7) : (0%/25%/37.5%/50%/62.5%/75%/87.5%/100% duty) */
+ cooling-levels = <0 63 95 127 159 191 223 255>;
#cooling-cells = <2>;
status = "disabled";
};
@@ -67,55 +67,67 @@
polling-delay = <1000>;
thermal-sensors = <&thermal 0>;
trips {
- cpu_trip_crit: crit {
- temperature = <125000>;
+ cpu_trip_active_highest: active-highest {
+ temperature = <70000>;
hysteresis = <2000>;
- type = "critical";
- };
-
- cpu_trip_hot: hot {
- temperature = <120000>;
- hysteresis = <2000>;
- type = "hot";
+ type = "active";
};
cpu_trip_active_high: active-high {
- temperature = <115000>;
+ temperature = <60000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_med: active-med {
- temperature = <85000>;
+ temperature = <50000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_active_low: active-low {
- temperature = <60000>;
+ temperature = <45000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+
+ cpu_trip_active_lowest: active-lowest {
+ temperature = <40000>;
hysteresis = <2000>;
type = "active";
};
};
cooling-maps {
+ cpu-active-highest {
+ /* active: set fan to cooling level 7 */
+ cooling-device = <&fan 7 7>;
+ trip = <&cpu_trip_active_highest>;
+ };
+
cpu-active-high {
- /* active: set fan to cooling level 3 */
- cooling-device = <&fan 3 3>;
+ /* active: set fan to cooling level 5 */
+ cooling-device = <&fan 5 5>;
trip = <&cpu_trip_active_high>;
};
cpu-active-med {
- /* active: set fan to cooling level 2 */
- cooling-device = <&fan 2 2>;
+ /* active: set fan to cooling level 3 */
+ cooling-device = <&fan 3 3>;
trip = <&cpu_trip_active_med>;
};
cpu-active-low {
- /* passive: set fan to cooling level 1 */
- cooling-device = <&fan 1 1>;
+ /* active: set fan to cooling level 2 */
+ cooling-device = <&fan 2 2>;
trip = <&cpu_trip_active_low>;
};
+
+ cpu-active-lowest {
+ /* active: set fan to cooling level 1 */
+ cooling-device = <&fan 1 1>;
+ trip = <&cpu_trip_active_lowest>;
+ };
};
};
};