1515#define MIN_SPEED_TO_SMOOTH PWM_DUTY(SMOOTH_FANS_MIN)
1616
1717bool fan_max = false;
18+ uint8_t acpi_peci_fan_duty = 0 ;
19+ uint8_t acpi_dgpu_fan_duty = 0 ;
1820uint8_t last_duty_dgpu = 0 ;
1921uint8_t last_duty_peci = 0 ;
2022
@@ -66,8 +68,13 @@ void fan_duty_set(uint8_t peci_fan_duty, uint8_t dgpu_fan_duty) __reentrant {
6668 dgpu_fan_duty = peci_fan_duty > dgpu_fan_duty ? peci_fan_duty : dgpu_fan_duty ;
6769 #endif
6870
71+ // allow for ACPI to request a higher duty
72+ peci_fan_duty = peci_fan_duty > acpi_peci_fan_duty ? peci_fan_duty : acpi_peci_fan_duty ;
73+ dgpu_fan_duty = dgpu_fan_duty > acpi_dgpu_fan_duty ? dgpu_fan_duty : acpi_dgpu_fan_duty ;
74+
6975 // set PECI fan duty
7076 if (peci_fan_duty != DCR2 ) {
77+ TRACE ("PECI acpi_fan_duty_raw=%d\n" , acpi_peci_fan_duty );
7178 TRACE ("PECI fan_duty_raw=%d\n" , peci_fan_duty );
7279 last_duty_peci = peci_fan_duty = fan_smooth (last_duty_peci , peci_fan_duty );
7380 DCR2 = fan_max ? MAX_FAN_SPEED : peci_fan_duty ;
@@ -76,6 +83,7 @@ void fan_duty_set(uint8_t peci_fan_duty, uint8_t dgpu_fan_duty) __reentrant {
7683
7784 // set dGPU fan duty
7885 if (dgpu_fan_duty != DCR4 ) {
86+ TRACE ("DGPU acpi_fan_duty_raw=%d\n" , acpi_peci_fan_duty );
7987 TRACE ("DGPU fan_duty_raw=%d\n" , dgpu_fan_duty );
8088 last_duty_dgpu = dgpu_fan_duty = fan_smooth (last_duty_dgpu , dgpu_fan_duty );
8189 DCR4 = fan_max ? MAX_FAN_SPEED : dgpu_fan_duty ;
0 commit comments