fan: Allow FAN2 without dGPU
Fully support fan points for the second fan on darp10. Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
committed by
Tim Crawford
parent
ffd0b7cbde
commit
a7bd81432e
@@ -62,7 +62,7 @@ static struct Fan __code FAN1 = {
|
|||||||
.interpolate = SMOOTH_FANS != 0,
|
.interpolate = SMOOTH_FANS != 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CONFIG_HAVE_DGPU
|
#ifdef FAN2_PWM
|
||||||
|
|
||||||
// Fan speed is the lowest requested over HEATUP seconds
|
// Fan speed is the lowest requested over HEATUP seconds
|
||||||
#ifndef BOARD_FAN2_HEATUP
|
#ifndef BOARD_FAN2_HEATUP
|
||||||
@@ -101,7 +101,7 @@ static struct Fan __code FAN2 = {
|
|||||||
.interpolate = SMOOTH_FANS != 0,
|
.interpolate = SMOOTH_FANS != 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CONFIG_HAVE_DGPU
|
#endif // FAN2_PWM
|
||||||
|
|
||||||
void fan_reset(void) {
|
void fan_reset(void) {
|
||||||
// Do not manually set fans to maximum speed
|
// Do not manually set fans to maximum speed
|
||||||
@@ -209,16 +209,16 @@ static uint8_t fan_cooldown(const struct Fan *const fan, uint8_t duty) {
|
|||||||
return highest;
|
return highest;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t get_fan1_duty(void) {
|
static uint8_t fan_get_duty(const struct Fan *const fan, int16_t temp) {
|
||||||
uint8_t duty;
|
uint8_t duty;
|
||||||
|
|
||||||
if (power_state == POWER_STATE_S0) {
|
if (power_state == POWER_STATE_S0) {
|
||||||
duty = fan_duty(&FAN1, peci_temp);
|
duty = fan_duty(fan, temp);
|
||||||
if (fan_max) {
|
if (fan_max) {
|
||||||
duty = PWM_DUTY(100);
|
duty = PWM_DUTY(100);
|
||||||
} else {
|
} else {
|
||||||
duty = fan_heatup(&FAN1, duty);
|
duty = fan_heatup(fan, duty);
|
||||||
duty = fan_cooldown(&FAN1, duty);
|
duty = fan_cooldown(fan, duty);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
duty = PWM_DUTY(0);
|
duty = PWM_DUTY(0);
|
||||||
@@ -227,34 +227,14 @@ static uint8_t get_fan1_duty(void) {
|
|||||||
return duty;
|
return duty;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_HAVE_DGPU
|
|
||||||
static uint8_t get_fan2_duty(void) {
|
|
||||||
uint8_t duty;
|
|
||||||
|
|
||||||
if (power_state == POWER_STATE_S0) {
|
|
||||||
duty = fan_duty(&FAN2, dgpu_temp);
|
|
||||||
if (fan_max) {
|
|
||||||
duty = PWM_DUTY(100);
|
|
||||||
} else {
|
|
||||||
duty = fan_heatup(&FAN2, duty);
|
|
||||||
duty = fan_cooldown(&FAN2, duty);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
duty = PWM_DUTY(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return duty;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static uint8_t get_fan2_duty(void) {
|
|
||||||
return PWM_DUTY(0);
|
|
||||||
}
|
|
||||||
#endif // CONFIG_HAVE_DGPU
|
|
||||||
|
|
||||||
void fan_update_duty(void) {
|
void fan_update_duty(void) {
|
||||||
uint8_t fan1_duty = get_fan1_duty();
|
#if defined(FAN2_PWM) && !CONFIG_HAVE_DGPU
|
||||||
|
int16_t dgpu_temp = peci_temp;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
uint8_t fan1_duty = fan_get_duty(&FAN1, peci_temp);
|
||||||
#ifdef FAN2_PWM
|
#ifdef FAN2_PWM
|
||||||
uint8_t fan2_duty = get_fan2_duty();
|
uint8_t fan2_duty = fan_get_duty(&FAN2, dgpu_temp);
|
||||||
|
|
||||||
#if SYNC_FANS != 0
|
#if SYNC_FANS != 0
|
||||||
fan1_duty = MAX(fan1_duty, fan2_duty);
|
fan1_duty = MAX(fan1_duty, fan2_duty);
|
||||||
|
Reference in New Issue
Block a user