Commit graph

61 commits

Author SHA1 Message Date
Vicki Pfau
cf4d7b9ba9 manager: Add manual_gpu_clock tests 2024-04-04 18:08:21 -07:00
Vicki Pfau
8b59bd3a39 manager: Fix property capitalization 2024-04-04 18:08:21 -07:00
Vicki Pfau
3c62c57d52 manager: Add get/set_gpu_performance_level tests 2024-04-04 18:08:21 -07:00
Vicki Pfau
eabf6d5a98 power: Implement get_tdp_limit and TDPLimit 2024-04-04 18:08:21 -07:00
Vicki Pfau
d13010dcb0 power: Implement get_gpu_clocks and ManualGPUClock 2024-04-04 18:08:21 -07:00
Vicki Pfau
d751110086 manager: Add emits_changed_signal where appropriate 2024-04-04 18:08:21 -07:00
Vicki Pfau
35e520712d Realign enums that had UnsupportedFeature to start at 0 2024-04-04 18:08:21 -07:00
Vicki Pfau
1c825797be manager: Implement wifi_power_management_state 2024-04-04 18:08:21 -07:00
Vicki Pfau
36c34fcbda Run cargo fmt 2024-04-04 18:08:21 -07:00
Vicki Pfau
9431ae9474 wifi: Remove get_wifi_backend_from_script
The script does exactly the same thing as what the _from_conf function did
2024-04-04 18:08:21 -07:00
Vicki Pfau
b0250bda01 manager: Fix method order 2024-04-04 18:08:21 -07:00
Vicki Pfau
8d92fae7db manager: Add stub implementations of min/max properties 2024-04-04 18:08:21 -07:00
Vicki Pfau
406988fbdf manager: Implement fan_control_state 2024-04-04 18:08:21 -07:00
Vicki Pfau
853ce3dd84 systemd: Add new module for interacting with systemd 2024-04-04 18:08:21 -07:00
Vicki Pfau
9ec6fc8852 manager: Clean up Result<_, zbus::fdo::Error> into zbus::fdo::Result<_> 2024-04-04 18:08:21 -07:00
Vicki Pfau
86515aceaf Run cargo fmt 2024-04-04 18:08:21 -07:00
Vicki Pfau
b0628fc7b9 Add support to get/set WiFi back-end
This change implements the ability to get and set the WiFi back-end,
by leveraging a new script created for that purpose.

The idea is to be able to use 'wpa_supplicant' (which is the default
back-end in NetworkManager upstream) when 'iwd' (the default in
SteamOS) does not work for some reason.

This change interacts with another feature of steamos-manager, which
is to set debug mode for WiFi.  Handling debug mode complicates things
substantially because those methods write config for 'iwd' and restart
the daemons/systemd units, with many interdependencies.

Instead of trying to implement all at once and attempt feature-parity
between back-ends on this aspect from the start, as a first step the
operations are just declared incompatible.  As a result, if
WifiDebugMode=on the back-end cannot be changed, and conversely the
WifiDebugMode cannot be turned on when the back-end is
'wpa_supplicant'.

Co-authored-by: Manuel A. Fernandez Montecelo <mafm@igalia.com>
2024-04-04 18:08:21 -07:00
Vicki Pfau
452690adee Kill UnsupportedFeature 2024-04-04 18:08:21 -07:00
Vicki Pfau
ffebee0930 manager: Start writing tests 2024-04-04 18:08:21 -07:00
Vicki Pfau
8ae6c98554 process: Make API less fiddly 2024-04-04 18:08:13 -07:00
Vicki Pfau
fd14514d6c manager: Implement format_device 2024-04-04 18:08:13 -07:00
Vicki Pfau
69e6477053 manager: Implement new API 2024-04-04 18:08:13 -07:00
Vicki Pfau
6a5e693e5b manager: Pass an empty slice instead of a slice with a single empty string 2024-04-04 18:01:38 -07:00
Vicki Pfau
6e3ac42e8e power: Split out from manager 2024-04-02 18:20:09 -07:00
Vicki Pfau
309f2acc1b wifi: Split out from manager 2024-04-02 18:20:09 -07:00
Vicki Pfau
0d90859841 process: Split out from manager 2024-04-02 18:20:09 -07:00
Vicki Pfau
3565886d3f Turn galileo detection into generalized model detection 2024-03-29 14:59:48 -07:00
Vicki Pfau
ebd89f4f72 manager: Just don't call start-/stop_tracing if should_trace is false 2024-03-29 14:59:48 -07:00
Vicki Pfau
3c3505c311 Move license text to LICENSE file 2024-03-22 19:24:18 -07:00
Vicki Pfau
6f1f1c032c manager: Use anyhow::ensure 2024-03-20 18:25:48 -07:00
Vicki Pfau
87ef532ce4 manager: Move std::fs operations back into tokio::fs 2024-03-20 18:19:33 -07:00
Vicki Pfau
f8d390d6ff Update copyrights 2024-03-20 18:13:58 -07:00
Vicki Pfau
7e262a1d96 manager: Move paths to constants 2024-03-20 18:13:58 -07:00
Vicki Pfau
96efd91228 Clean up logging 2024-03-19 18:02:17 -07:00
Vicki Pfau
4a4b021ea5 manager: Fix typo, remove redundant comments 2024-03-19 18:02:17 -07:00
Vicki Pfau
2599d6fb20 manager: Move work functions outside of DBus interface
This enables using more idiomatic Result and ? return instead of having to
match and return false
2024-03-19 17:46:41 -07:00
Vicki Pfau
dce3ad8437 manager: Make match indent towers more idiomatic 2024-03-19 17:46:41 -07:00
Vicki Pfau
2e55bc2330 manager: Clean up non-idiomatic code 2024-03-19 17:46:41 -07:00
Vicki Pfau
cf416c8a56 manager: Unify error handling on anyhow 2024-03-19 17:41:00 -07:00
Vicki Pfau
7217b0c2b1 Run cargo fmt 2024-03-19 17:41:00 -07:00
Vicki Pfau
5afe7222ca Upgrade to zbus 4 2024-03-19 17:41:00 -07:00
Jeremy Whiting
ce95a53ee8 wifidebug: Add GetWifiDebugMode to get the current wifi debug mode.
This may be useful in cases where SetWifiDebugMode has failed to
check what the current state/setting is.
Though if SetWifiDebugMode has failed we may be in weird state
so logs of steamos-manager should be checked to see what failed.

Signed-off-by: Jeremy Whiting <jpwhiting@kde.org>
2024-02-07 14:23:31 -07:00
Jeremy Whiting
ec819e6d00 wifidebug: Only run trace-cmd commands on Galileo devices.
Differentiate Galileo devices from others by checking the
contents of /sys/class/drm/id/board_name.

Signed-off-by: Jeremy Whiting <jeremy.whiting@collabora.com>
2024-02-06 10:16:03 -07:00
Jeremy Whiting
c1d1951773 wifidebug: Add error checking with println! statements on all failures.
Signed-off-by: Jeremy Whiting <jeremy.whiting@collabora.com>
2024-02-05 11:00:01 -07:00
Jeremy Whiting
40d25971c9 wifidebug: Make WifiDebugMode a real enum with parsing from u32 for dbus.
Changed mode parameter from i32 to u32 as well.
Change from Result<bool, Box<dyn std::error::Error>> to
std::io::Result<bool>
Adjust the xml to add the new method.
Make all private api use Result<()> types so we can do error checking.

Signed-off-by: Jeremy Whiting <jeremy.whiting@collabora.com>
2024-02-05 10:59:46 -07:00
Jeremy Whiting
07e3843c3f wifidebug: Add trace-cmd usage to start and stop gathering data.
When wifi debug mode is started trace-cmd start is executed with
the given buffer_size parameter.
Later when wifi debug mode is stopped, trace-cmd stop is executed
as well as trace-cmd extract to write the data to a file on disk.
In this way the steam client (or any dbus users...) can decide how
long to run trace-cmd for.
Change to create_dir_all so we don't get errors if it exists.

Signed-off-by: Jeremy Whiting <jeremy.whiting@collabora.com>
2024-02-05 10:59:41 -07:00
Jeremy Whiting
cd241445b4 wifidebug: Add some iwd override and a way to enable/disable.
Adds set_wifi_debug_mode to enable or disable wifi debug mode.
Parameters are
mode (0 for off, 1 for on for now, expandable in the
future if more modes are needed).
buffer_size: a size in kilobytes per cpu (so 16 on the deck)
for the ring buffer that debug messages will get written into.

For now just adds or removes a iwd debug mode override and restarts
iwd.
next will add some trace-cmd commands to write the debug messages
to a file on disk.

Signed-off-by: Jeremy Whiting <jeremy.whiting@collabora.com>
2024-02-05 10:59:25 -07:00
Jeremy Whiting
0c4b661d16 Run cargo fmt --all.
Fixes code styling in all source files.
2023-11-15 16:05:54 -07:00
Jeremy Whiting
bf3cca29ac Implement GetAlsIntegrationTimeFileDescriptor.
And this attempt works now. I guess this is adequate to release
as a throw away implementation to replace later with something better.
Also add strip="symbols" for release builds to get it down to a lean
3.2M size.
2023-11-15 15:23:43 -07:00
Jeremy Whiting
bc3ad0a54f Implement SetTdpLimit.
Write given limit to /sys/class/hwmon/hwmon5/power[12]_cap if in the
range of 3..15.
Return false if out of range or unable to write.
2023-10-18 15:09:16 -06:00