Smooth fan speed changes (#190)

* SMOOTH_FANS, SMOOTH_FANS_UP, SMOOTH_FANS_DOWN build flags to smooth fan speed changes.
Defaults 40, set SMOOTH_FANS=0 to disable and keep sharp fan speed changes

* fix for ACPI CPU temperature

* allow for a floor to be set for fan smoothing and specifically configure oryp6/7 to start smoothing at 25% to mitigate fan buzzing below 25%

* update default config values for fans

* update all devices to use defaults for heatup, cooldown, update galp5 fan curves

* Decrease default cooldown time from 20 to 10

Co-authored-by: Jacob Kauffmann <jacob@system76.com>
This commit is contained in:
Winston Hoy
2021-06-14 16:22:29 -04:00
committed by GitHub
parent b7368e8202
commit 8ea0403850
14 changed files with 123 additions and 74 deletions

View File

@@ -5,7 +5,6 @@
#if HAVE_DGPU
#include <board/fan.h>
#include <board/gpio.h>
#include <board/peci.h>
#include <board/power.h>
@@ -16,7 +15,7 @@
// Fan speed is the lowest requested over HEATUP seconds
#ifndef BOARD_DGPU_HEATUP
#define BOARD_DGPU_HEATUP 10
#define BOARD_DGPU_HEATUP 4
#endif
static uint8_t FAN_HEATUP[BOARD_DGPU_HEATUP] = { 0 };
@@ -54,7 +53,7 @@ static struct Fan __code FAN = {
.heatup_size = ARRAY_SIZE(FAN_HEATUP),
.cooldown = FAN_COOLDOWN,
.cooldown_size = ARRAY_SIZE(FAN_COOLDOWN),
.interpolate = false,
.interpolate = SMOOTH_FANS != 0,
};
void dgpu_init(void) {