1
Fork 0
mirror of https://github.com/RGBCube/superfreq synced 2025-07-27 17:07:44 +00:00

engine: allow users to explicitly disable auto-turbo

This commit is contained in:
NotAShelf 2025-05-17 11:11:24 +03:00
parent 23c526a61e
commit 9935ae9fe3
No known key found for this signature in database
GPG key ID: 29D95B64378DB4BF
2 changed files with 19 additions and 2 deletions

View file

@ -51,6 +51,7 @@ pub struct ProfileConfig {
pub max_freq_mhz: Option<u32>,
pub platform_profile: Option<String>,
pub turbo_auto_settings: Option<TurboAutoSettings>,
pub enable_auto_turbo: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub battery_charge_thresholds: Option<BatteryChargeThresholds>,
}
@ -66,6 +67,7 @@ impl Default for ProfileConfig {
max_freq_mhz: None, // no override
platform_profile: None, // no override
turbo_auto_settings: Some(TurboAutoSettings::default()),
enable_auto_turbo: default_enable_auto_turbo(),
battery_charge_thresholds: None,
}
}
@ -125,6 +127,8 @@ pub struct ProfileConfigToml {
pub max_freq_mhz: Option<u32>,
pub platform_profile: Option<String>,
pub turbo_auto_settings: Option<TurboAutoSettings>,
#[serde(default = "default_enable_auto_turbo")]
pub enable_auto_turbo: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub battery_charge_thresholds: Option<BatteryChargeThresholds>,
}
@ -153,6 +157,7 @@ impl Default for ProfileConfigToml {
max_freq_mhz: None,
platform_profile: None,
turbo_auto_settings: None,
enable_auto_turbo: default_enable_auto_turbo(),
battery_charge_thresholds: None,
}
}
@ -213,6 +218,7 @@ impl From<ProfileConfigToml> for ProfileConfig {
turbo_auto_settings: toml_config
.turbo_auto_settings
.or_else(|| Some(TurboAutoSettings::default())),
enable_auto_turbo: toml_config.enable_auto_turbo,
battery_charge_thresholds: toml_config.battery_charge_thresholds,
}
}
@ -286,6 +292,10 @@ const fn default_stats_file_path() -> Option<String> {
None
}
const fn default_enable_auto_turbo() -> bool {
true
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct DaemonConfigToml {
#[serde(default = "default_poll_interval_sec")]

View file

@ -113,8 +113,15 @@ pub fn determine_and_apply_settings(
info!("Setting turbo to '{turbo_setting:?}'");
match turbo_setting {
TurboSetting::Auto => {
if selected_profile_config.enable_auto_turbo {
debug!("Managing turbo in auto mode based on system conditions");
manage_auto_turbo(report, selected_profile_config)?;
} else {
debug!("Auto turbo management disabled by configuration, using system default behavior");
try_apply_feature("Turbo boost", "system default (Auto)", || {
cpu::set_turbo(turbo_setting)
})?;
}
}
_ => {
try_apply_feature("Turbo boost", &format!("{turbo_setting:?}"), || {