From 2f7c83d663611918ecc5c9f6cb561426b354617b Mon Sep 17 00:00:00 2001 From: Matthew Schwartz Date: Mon, 26 May 2025 15:15:19 -0700 Subject: [PATCH 1/4] platform: Use single platform configuration for Legion Go and Legion Go S Both the Legion Go and Legion Go S share the same performance profiles and platform controls, so we can use a single toml file for both devices. --- data/platforms/{legion-go-s.toml => legion-go-series.toml} | 0 src/platform.rs | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) rename data/platforms/{legion-go-s.toml => legion-go-series.toml} (100%) diff --git a/data/platforms/legion-go-s.toml b/data/platforms/legion-go-series.toml similarity index 100% rename from data/platforms/legion-go-s.toml rename to data/platforms/legion-go-series.toml diff --git a/src/platform.rs b/src/platform.rs index dbd7ca0..419da83 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -165,7 +165,8 @@ impl PlatformConfig { async fn load() -> Result> { let platform = match device_type().await? { DeviceType::SteamDeck => "jupiter", - DeviceType::LegionGoS => "legion-go-s", + DeviceType::LegionGo => "legion-go-series", + DeviceType::LegionGoS => "legion-go-series", _ => return Ok(None), }; let config = read_to_string(format!( From 65ee50f8419bb710d9cb0c3881d2d66def502645 Mon Sep 17 00:00:00 2001 From: Matthew Schwartz Date: Tue, 27 May 2025 21:06:37 -0700 Subject: [PATCH 2/4] platform: Add platform configuration for ROG Ally and ROG Ally X Both the ROG Ally and ROG Ally X share the same performance profiles and platform controls, so we can use a single toml file for both devices. --- data/platforms/rog-ally-series.toml | 12 ++++++++++++ src/platform.rs | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 data/platforms/rog-ally-series.toml diff --git a/data/platforms/rog-ally-series.toml b/data/platforms/rog-ally-series.toml new file mode 100644 index 0000000..07d2c5f --- /dev/null +++ b/data/platforms/rog-ally-series.toml @@ -0,0 +1,12 @@ +[performance_profile] +platform_profile_name = "asus-wmi" +# until custom mode is added +suggested_default = "performance" + +[tdp_limit] +method = "firmware_attribute" + +[tdp_limit.firmware_attribute] +attribute = "asus-armoury" +# until custom mode is added +performance_profile = "performance" diff --git a/src/platform.rs b/src/platform.rs index 419da83..851396c 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -167,6 +167,8 @@ impl PlatformConfig { DeviceType::SteamDeck => "jupiter", DeviceType::LegionGo => "legion-go-series", DeviceType::LegionGoS => "legion-go-series", + DeviceType::RogAlly => "rog-ally-series", + DeviceType::RogAllyX => "rog-ally-series", _ => return Ok(None), }; let config = read_to_string(format!( From f1621ef8ec7dd855ee796c5f1f90bdbff9e29be6 Mon Sep 17 00:00:00 2001 From: Matthew Schwartz Date: Tue, 27 May 2025 21:01:45 -0700 Subject: [PATCH 3/4] hardware: Add Legion Go to board_lookup test --- src/hardware.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/hardware.rs b/src/hardware.rs index 960e4b6..e03ab46 100644 --- a/src/hardware.rs +++ b/src/hardware.rs @@ -218,6 +218,18 @@ pub mod test { (DeviceType::Unknown, String::from("unknown")) ); + write(crate::path(PRODUCT_NAME_PATH), "83E1\n") + .await + .expect("write"); + assert_eq!( + steam_deck_variant().await.unwrap(), + SteamDeckVariant::Unknown + ); + assert_eq!( + device_variant().await.unwrap(), + (DeviceType::LegionGo, String::from("83E1")) + ); + write(crate::path(PRODUCT_NAME_PATH), "83L3\n") .await .expect("write"); From 10eaabf7492ea6f7c0727e70b123661304d18c8d Mon Sep 17 00:00:00 2001 From: Matthew Schwartz Date: Tue, 27 May 2025 23:45:15 -0700 Subject: [PATCH 4/4] hardware: Add ROG Ally and ROG Ally X to board_lookup test --- src/hardware.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/hardware.rs b/src/hardware.rs index e03ab46..0108f4f 100644 --- a/src/hardware.rs +++ b/src/hardware.rs @@ -200,6 +200,48 @@ pub mod test { assert!(steam_deck_variant().await.is_err()); assert!(device_variant().await.is_err()); + write(crate::path(SYS_VENDOR_PATH), "ASUSTeK COMPUTER INC.\n") + .await + .expect("write"); + write(crate::path(BOARD_NAME_PATH), "INVALID\n") + .await + .expect("write"); + write(crate::path(PRODUCT_NAME_PATH), "INVALID\n") + .await + .expect("write"); + assert_eq!( + steam_deck_variant().await.unwrap(), + SteamDeckVariant::Unknown + ); + assert_eq!( + device_variant().await.unwrap(), + (DeviceType::Unknown, String::from("unknown")) + ); + + write(crate::path(BOARD_NAME_PATH), "RC71L\n") + .await + .expect("write"); + assert_eq!( + steam_deck_variant().await.unwrap(), + SteamDeckVariant::Unknown + ); + assert_eq!( + device_variant().await.unwrap(), + (DeviceType::RogAlly, String::from("RC71L")) + ); + + write(crate::path(BOARD_NAME_PATH), "RC72LA\n") + .await + .expect("write"); + assert_eq!( + steam_deck_variant().await.unwrap(), + SteamDeckVariant::Unknown + ); + assert_eq!( + device_variant().await.unwrap(), + (DeviceType::RogAllyX, String::from("RC72LA")) + ); + write(crate::path(SYS_VENDOR_PATH), "LENOVO\n") .await .expect("write");