forked from NG-SD-Plugins/PowerTools
Update limits_override reference
This commit is contained in:
parent
1da7bafe5e
commit
fb038665c9
3 changed files with 50 additions and 17 deletions
|
@ -353,13 +353,17 @@ impl Cpu {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_max_cpu_clock(&self) -> u64 {
|
fn read_max_cpu_clock(&self) -> u64 {
|
||||||
if !(self.limits.extras.experiments || self.limits.extras.quirks.contains("clock-autodetect")) {
|
if !(self.limits.extras.experiments
|
||||||
|
|| self.limits.extras.quirks.contains("clock-autodetect"))
|
||||||
|
{
|
||||||
return MAX_CLOCK;
|
return MAX_CLOCK;
|
||||||
}
|
}
|
||||||
if let super::Model::OLED = self.variant {
|
if let super::Model::OLED = self.variant {
|
||||||
if let Ok(freq_khz) = usdpl_back::api::files::read_single::<_, u64, _>(cpu_max_clock_path(self.index)) {
|
if let Ok(freq_khz) =
|
||||||
|
usdpl_back::api::files::read_single::<_, u64, _>(cpu_max_clock_path(self.index))
|
||||||
|
{
|
||||||
log::debug!("Detected CPU max clock of {}KHz", freq_khz);
|
log::debug!("Detected CPU max clock of {}KHz", freq_khz);
|
||||||
return freq_khz / 1000
|
return freq_khz / 1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MAX_CLOCK
|
MAX_CLOCK
|
||||||
|
@ -747,5 +751,8 @@ fn cpu_available_governors_path(index: usize) -> String {
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn cpu_max_clock_path(index: usize) -> String {
|
fn cpu_max_clock_path(index: usize) -> String {
|
||||||
format!("/sys/devices/system/cpu/cpufreq/policy{}/cpuinfo_max_freq", index)
|
format!(
|
||||||
|
"/sys/devices/system/cpu/cpufreq/policy{}/cpuinfo_max_freq",
|
||||||
|
index
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,7 +143,9 @@ impl Gpu {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_max_gpu_clock(&self) -> u64 {
|
fn read_max_gpu_clock(&self) -> u64 {
|
||||||
if !(self.limits.extras.experiments || self.limits.extras.quirks.contains("clock-autodetect")) {
|
if !(self.limits.extras.experiments
|
||||||
|
|| self.limits.extras.quirks.contains("clock-autodetect"))
|
||||||
|
{
|
||||||
return MAX_CLOCK;
|
return MAX_CLOCK;
|
||||||
}
|
}
|
||||||
if let super::Model::OLED = self.variant {
|
if let super::Model::OLED = self.variant {
|
||||||
|
@ -152,12 +154,12 @@ impl Gpu {
|
||||||
.read_value(GPU_CLOCK_READOUT_ATTRIBUTE.to_owned())
|
.read_value(GPU_CLOCK_READOUT_ATTRIBUTE.to_owned())
|
||||||
{
|
{
|
||||||
let options = parse_pp_dpm_sclk(&String::from_utf8_lossy(&f));
|
let options = parse_pp_dpm_sclk(&String::from_utf8_lossy(&f));
|
||||||
return options.get(options.len() - 1)
|
return options
|
||||||
|
.get(options.len() - 1)
|
||||||
.map(|x| {
|
.map(|x| {
|
||||||
let x = x.1 as u64;
|
let x = x.1 as u64;
|
||||||
log::debug!("Detected GPU max clock of {}MHz", x);
|
log::debug!("Detected GPU max clock of {}MHz", x);
|
||||||
x
|
x
|
||||||
|
|
||||||
})
|
})
|
||||||
.unwrap_or(MAX_CLOCK);
|
.unwrap_or(MAX_CLOCK);
|
||||||
}
|
}
|
||||||
|
@ -635,7 +637,7 @@ impl crate::settings::OnUnload for Gpu {
|
||||||
|
|
||||||
impl TGpu for Gpu {
|
impl TGpu for Gpu {
|
||||||
fn limits(&self) -> crate::api::GpuLimits {
|
fn limits(&self) -> crate::api::GpuLimits {
|
||||||
let max_gpu_clock = self.read_max_gpu_clock();
|
let max_gpu_clock = self.read_max_gpu_clock();
|
||||||
crate::api::GpuLimits {
|
crate::api::GpuLimits {
|
||||||
fast_ppt_limits: Some(RangeLimit {
|
fast_ppt_limits: Some(RangeLimit {
|
||||||
min: super::util::range_min_or_fallback(&self.limits.fast_ppt, MIN_FAST_PPT)
|
min: super::util::range_min_or_fallback(&self.limits.fast_ppt, MIN_FAST_PPT)
|
||||||
|
|
|
@ -17,7 +17,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -33,7 +36,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -49,7 +55,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -65,7 +74,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -81,7 +93,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -97,7 +112,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -113,7 +131,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
), GenericCpuLimit(
|
), GenericCpuLimit(
|
||||||
clock_min: Some(RangeLimit(
|
clock_min: Some(RangeLimit(
|
||||||
min: Some(1400),
|
min: Some(1400),
|
||||||
|
@ -129,7 +150,10 @@ Limits(
|
||||||
tdp_divisor: None,
|
tdp_divisor: None,
|
||||||
tdp_step: None,
|
tdp_step: None,
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
experiments: false,
|
extras: LimitExtras(
|
||||||
|
experiments: false,
|
||||||
|
quirks: [],
|
||||||
|
),
|
||||||
)],
|
)],
|
||||||
global_governors: true,
|
global_governors: true,
|
||||||
extras: LimitExtras(
|
extras: LimitExtras(
|
||||||
|
@ -174,7 +198,7 @@ Limits(
|
||||||
skip_resume_reclock: false,
|
skip_resume_reclock: false,
|
||||||
extras: LimitExtras(
|
extras: LimitExtras(
|
||||||
experiments: false,
|
experiments: false,
|
||||||
quirks: ["pp_dpm_fclk-not-updated-on-LCD", "pp_dpm_fclk-reversed"],
|
quirks: ["pp_dpm_fclk-reversed", "pp_dpm_fclk-not-updated-on-LCD"],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue