Extend GpuMode to include other modes

This commit is contained in:
Luke D. Jones
2022-08-12 22:10:49 +12:00
parent a0f7cf3acd
commit 24fa075a44
12 changed files with 74 additions and 43 deletions

View File

@@ -1,7 +1,7 @@
use crate::{config::Config, error::RogError, GetSupported};
use async_trait::async_trait;
use log::{info, warn};
use rog_platform::platform::{AsusPlatform, GpuMuxMode};
use rog_platform::platform::{AsusPlatform, GpuMode};
use rog_platform::supported::RogBiosSupportedFunctions;
use std::fs::OpenOptions;
use std::io::{Read, Write};
@@ -51,7 +51,7 @@ impl CtrlRogBios {
async fn set_gpu_mux_mode(
&mut self,
#[zbus(signal_context)] ctxt: SignalContext<'_>,
mode: GpuMuxMode,
mode: GpuMode,
) {
self.set_gfx_mode(mode)
.map_err(|err| {
@@ -62,12 +62,12 @@ impl CtrlRogBios {
Self::notify_gpu_mux_mode(&ctxt, mode).await.ok();
}
fn gpu_mux_mode(&self) -> GpuMuxMode {
fn gpu_mux_mode(&self) -> GpuMode {
match self.platform.get_gpu_mux_mode() {
Ok(m) => m.into(),
Ok(m) => GpuMode::from_mux(m),
Err(e) => {
warn!("CtrlRogBios: get_gfx_mode {}", e);
GpuMuxMode::Error
GpuMode::Error
}
}
}
@@ -75,7 +75,7 @@ impl CtrlRogBios {
#[dbus_interface(signal)]
async fn notify_gpu_mux_mode(
signal_ctxt: &SignalContext<'_>,
mode: GpuMuxMode,
mode: GpuMode,
) -> zbus::Result<()> {
}
@@ -183,10 +183,10 @@ impl CtrlRogBios {
Ok(())
}
fn set_gfx_mode(&self, mode: GpuMuxMode) -> Result<(), RogError> {
self.platform.set_gpu_mux_mode(mode.into())?;
fn set_gfx_mode(&self, mode: GpuMode) -> Result<(), RogError> {
self.platform.set_gpu_mux_mode(mode.to_mux())?;
// self.update_initramfs(enable)?;
if mode == GpuMuxMode::Discrete {
if mode == GpuMode::Discrete {
info!("Set system-level graphics mode: Dedicated Nvidia");
} else {
info!("Set system-level graphics mode: Optimus");

View File

@@ -6,7 +6,7 @@ use zvariant::Type;
use crate::{
ctrl_anime::CtrlAnime, ctrl_aura::controller::CtrlKbdLed, ctrl_charge::CtrlCharge,
ctrl_profiles::controller::CtrlPlatformProfile, ctrl_platform::CtrlRogBios, GetSupported,
ctrl_platform::CtrlRogBios, ctrl_profiles::controller::CtrlPlatformProfile, GetSupported,
};
use rog_platform::supported::*;

View File

@@ -17,8 +17,8 @@ use daemon::ctrl_aura::controller::{
CtrlKbdLed, CtrlKbdLedReloader, CtrlKbdLedTask, CtrlKbdLedZbus,
};
use daemon::ctrl_charge::CtrlCharge;
use daemon::ctrl_profiles::config::ProfileConfig;
use daemon::ctrl_platform::CtrlRogBios;
use daemon::ctrl_profiles::config::ProfileConfig;
use daemon::{
config::Config, ctrl_supported::SupportedFunctions, laptops::print_board_info, GetSupported,
};

View File

@@ -7,6 +7,8 @@ pub mod ctrl_anime;
pub mod ctrl_aura;
/// Control of battery charge level
pub mod ctrl_charge;
/// Control ASUS bios function such as boot sound, Optimus/Dedicated gfx mode
pub mod ctrl_platform;
/// Control CPU min/max freq and turbo, fan mode, fan curves
///
/// Intel machines can control:
@@ -19,8 +21,6 @@ pub mod ctrl_charge;
/// - Fan mode (normal, boost, silent)
/// - Fan min/max RPM curve
pub mod ctrl_profiles;
/// Control ASUS bios function such as boot sound, Optimus/Dedicated gfx mode
pub mod ctrl_platform;
/// Laptop matching to determine capabilities
pub mod laptops;