From a25e7ddb2705fecfabe30960e2a252a4982b6705 Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 23 May 2020 14:37:12 +1200 Subject: [PATCH] Add boost toggle for AMD --- rog-core/src/rogcore.rs | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/rog-core/src/rogcore.rs b/rog-core/src/rogcore.rs index 076f6be5..981c08a4 100644 --- a/rog-core/src/rogcore.rs +++ b/rog-core/src/rogcore.rs @@ -15,6 +15,7 @@ use std::time::Duration; static FAN_TYPE_1_PATH: &str = "/sys/devices/platform/asus-nb-wmi/throttle_thermal_policy"; static FAN_TYPE_2_PATH: &str = "/sys/devices/platform/asus-nb-wmi/fan_boost_mode"; +static AMD_BOOST_APTH: &str = "/sys/devices/system/cpu/cpufreq/boost"; /// ROG device controller /// @@ -150,10 +151,11 @@ impl RogCore { mode: FanLevel, config: &mut Config, ) -> Result<(), Box> { + // re-read the config here in case a user changed the pstate settings + config.read(); // Set CPU pstate if let Ok(pstate) = intel_pstate::PState::new() { - // re-read the config here in case a user changed the pstate settings - config.read(); + info!("Setting pstate for Intel CPU"); match mode { FanLevel::Normal => { pstate.set_min_perf_pct(config.mode_performance.normal.min_percentage)?; @@ -189,6 +191,33 @@ impl RogCore { ); } } + } else { + info!("Setting pstate for AMD CPU"); + // must be AMD CPU + let mut file = OpenOptions::new().write(true).open(AMD_BOOST_APTH)?; + match mode { + FanLevel::Normal => { + let boost = !config.mode_performance.normal.no_turbo as u8; // opposite of Intel + file.write_all(&[boost]).unwrap_or_else(|err| { + error!("Could not write to {}, {:?}", AMD_BOOST_APTH, err) + }); + info!("CPU Power: turbo: {:?}", boost); + } + FanLevel::Boost => { + let boost = !config.mode_performance.boost.no_turbo as u8; // opposite of Intel + file.write_all(&[boost]).unwrap_or_else(|err| { + error!("Could not write to {}, {:?}", AMD_BOOST_APTH, err) + }); + info!("CPU Power: turbo: {:?}", boost); + } + FanLevel::Silent => { + let boost = !config.mode_performance.silent.no_turbo as u8; // opposite of Intel + file.write_all(&[boost]).unwrap_or_else(|err| { + error!("Could not write to {}, {:?}", AMD_BOOST_APTH, err) + }); + info!("CPU Power: turbo: {:?}", boost); + } + } } Ok(()) }