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
@@ -68,8 +70,13 @@ void fan_duty_set(uint8_t peci_fan_duty, uint8_t dgpu_fan_duty) __reentrant {
6870 dgpu_fan_duty = peci_fan_duty > dgpu_fan_duty ? peci_fan_duty : dgpu_fan_duty ;
6971#endif
7072
73+ // allow for ACPI to request a higher duty
74+ peci_fan_duty = peci_fan_duty > acpi_peci_fan_duty ? peci_fan_duty : acpi_peci_fan_duty ;
75+ dgpu_fan_duty = dgpu_fan_duty > acpi_dgpu_fan_duty ? dgpu_fan_duty : acpi_dgpu_fan_duty ;
76+
7177 // set PECI fan duty
7278 if (peci_fan_duty != DCR2 ) {
79+ TRACE ("PECI acpi_fan_duty_raw=%d\n" , acpi_peci_fan_duty );
7380 TRACE ("PECI fan_duty_raw=%d\n" , peci_fan_duty );
7481 last_duty_peci = peci_fan_duty = fan_smooth (last_duty_peci , peci_fan_duty );
7582 DCR2 = fan_max ? MAX_FAN_SPEED : peci_fan_duty ;
@@ -78,6 +85,7 @@ void fan_duty_set(uint8_t peci_fan_duty, uint8_t dgpu_fan_duty) __reentrant {
7885
7986 // set dGPU fan duty
8087 if (dgpu_fan_duty != DCR4 ) {
88+ TRACE ("DGPU acpi_fan_duty_raw=%d\n" , acpi_peci_fan_duty );
8189 TRACE ("DGPU fan_duty_raw=%d\n" , dgpu_fan_duty );
8290 last_duty_dgpu = dgpu_fan_duty = fan_smooth (last_duty_dgpu , dgpu_fan_duty );
8391 DCR4 = fan_max ? MAX_FAN_SPEED : dgpu_fan_duty ;
0 commit comments