diff --git a/usr/bin/steamos-polkit-helpers/steamos-priv-write b/usr/bin/steamos-polkit-helpers/steamos-priv-write index 8fcd1d4..4b47d21 100755 --- a/usr/bin/steamos-polkit-helpers/steamos-priv-write +++ b/usr/bin/steamos-polkit-helpers/steamos-priv-write @@ -3,6 +3,9 @@ set -euo pipefail shopt -s nullglob +source /etc/default/steam-hardware-control +SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)" + if [[ $EUID -ne 0 ]]; then exec pkexec --disable-internal-agent "$0" "$@" @@ -37,13 +40,14 @@ function MatchFilenamePattern() function CommitWrite() { + chmod a+w "$WRITE_PATH" + echo "chmod a+w: $WRITE_PATH" | systemd-cat -t p-steamos-priv-write -p warning + if [ -n "$WRITE_VALUE" ]; then Log "commit: $WRITE_VALUE -> $WRITE_PATH" printf "%s" "$WRITE_VALUE" > "$WRITE_PATH" fi - chgrp deck "$WRITE_PATH" - chmod g+w "$WRITE_PATH" exit 0 } @@ -65,15 +69,35 @@ if MatchFilenamePattern "$WRITE_PATH" "/dev/drm_dp_aux0"; then fi if MatchFilenamePattern "$WRITE_PATH" "/sys/class/drm/card*/device/power_dpm_force_performance_level"; then - CommitWrite + if /usr/libexec/hwsupport/valve-hardware || [[ "$ENABLE_HARDWARE_CONTROL_ON_NON_DECK_HARDWARE" = 1 ]]; then + for i in $(ls /sys/class/drm/card*/device/power_dpm_force_performance_level) + do + WRITE_PATH="$i" + CommitWrite + done + else + echo "commit: Skipped $WRITE_VALUE -> $WRITE_PATH - see /etc/default/steam-hardware-control" | systemd-cat -t p-steamos-priv-write -p warning + fi fi if MatchFilenamePattern "$WRITE_PATH" "/sys/class/drm/card*/device/pp_od_clk_voltage"; then - CommitWrite + if /usr/libexec/hwsupport/valve-hardware || [[ "$ENABLE_HARDWARE_CONTROL_ON_NON_DECK_HARDWARE" = 1 ]]; then + for i in $(ls /sys/class/drm/card*/device/pp_od_clk_voltage) + do + WRITE_PATH="$i" + CommitWrite + done + else + echo "commit: Skipped $WRITE_VALUE -> $WRITE_PATH - see /etc/default/steam-hardware-control" | systemd-cat -t p-steamos-priv-write -p warning + fi fi if MatchFilenamePattern "$WRITE_PATH" "/sys/class/hwmon/hwmon*/power*_cap"; then - CommitWrite + if /usr/libexec/hwsupport/valve-hardware || [[ "$ENABLE_HARDWARE_CONTROL_ON_NON_DECK_HARDWARE" = 1 ]]; then + CommitWrite + else + echo "commit: Skipped $WRITE_VALUE -> $WRITE_PATH - see /etc/default/steam-hardware-control" | systemd-cat -t p-steamos-priv-write -p warning + fi fi if MatchFilenamePattern "$WRITE_PATH" "/sys/devices/platform/*/*/*/iio:device*/in_illuminance_integration_time"; then