summaryrefslogtreecommitdiffstats
path: root/system/system76-power/xeon_fan_curve.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/system76-power/xeon_fan_curve.patch')
-rw-r--r--system/system76-power/xeon_fan_curve.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/system/system76-power/xeon_fan_curve.patch b/system/system76-power/xeon_fan_curve.patch
new file mode 100644
index 0000000000..4cd1ffe449
--- /dev/null
+++ b/system/system76-power/xeon_fan_curve.patch
@@ -0,0 +1,52 @@
+From 9de22620c8876ddfa15a452d5435405f43e8a1fd Mon Sep 17 00:00:00 2001
+From: Erich Ritz <erich.public@protonmail.com>
+Date: Wed, 23 Mar 2022 08:28:57 -0500
+Subject: [PATCH] Make xeon fan curve more aggressive
+
+I've been suffering from occasional power offs with no warning, and I
+suspect the CPU is getting too hot. On the most recent power off, the
+computer once again powered down during the bootup phase (before the EFI
+boot screen). To me this solidified my suspicions.
+
+I have a a thelio-massive-b1 with 2
+Intel(R) Xeon(R) Gold 6238 CPU @ 2.10GHz
+
+I patched the source making the xeon fan curve more aggressive and the
+maximum CPU temperatures are now a little lower. Under low system load
+there is no noticable difference in fan speed.
+
+Plots of CPU temperature, fan speed, and fan command are attached as
+comments to the commit on GitHub.
+
+Signed-off-by: Erich Ritz <erich.public@protonmail.com>
+---
+ src/fan.rs | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/src/fan.rs b/src/fan.rs
+index c0fca10..73e284c 100644
+--- a/src/fan.rs
++++ b/src/fan.rs
+@@ -271,13 +271,12 @@ impl FanCurve {
+ .append(50_00, 40_00)
+ .append(55_00, 45_00)
+ .append(60_00, 50_00)
+- .append(65_00, 55_00)
+- .append(70_00, 60_00)
+- .append(72_00, 65_00)
+- .append(74_00, 80_00)
+- .append(76_00, 85_00)
+- .append(77_00, 90_00)
+- .append(78_00, 100_00)
++ .append(62_00, 60_00)
++ .append(64_00, 65_00)
++ .append(66_00, 80_00)
++ .append(68_00, 85_00)
++ .append(69_00, 90_00)
++ .append(70_00, 100_00)
+ }
+
+ pub fn get_duty(&self, temp: i16) -> Option<u16> {
+--
+2.35.6
+