diff --git a/usr/bin/steamos-polkit-helpers/steamos-priv-write b/usr/bin/steamos-polkit-helpers/steamos-priv-write index d78a81d..c7e1434 100755 --- a/usr/bin/steamos-polkit-helpers/steamos-priv-write +++ b/usr/bin/steamos-polkit-helpers/steamos-priv-write @@ -2,6 +2,9 @@ set -eu +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" "$@" @@ -12,21 +15,21 @@ WRITE_VALUE="$2" function CommitWrite() { + chmod a+w "$WRITE_PATH" + echo "chmod a+w: $WRITE_PATH" | systemd-cat -t p-steamos-priv-write -p warning + if [ ! -z "$WRITE_VALUE" ] then echo "commit: $WRITE_VALUE -> $WRITE_PATH" | systemd-cat -t p-steamos-priv-write -p warning echo "$WRITE_VALUE" > "$WRITE_PATH" fi - chmod a+w "$WRITE_PATH" - echo "chmod a+w: $WRITE_PATH" | systemd-cat -t p-steamos-priv-write -p warning exit 0 } function DeclineWrite() { echo "decline: $WRITE_VALUE -> $WRITE_PATH" | systemd-cat -t p-steamos-priv-write -p err - echo "$WRITE_VALUE" > "$WRITE_PATH" exit 1 } @@ -40,15 +43,35 @@ if [[ "$WRITE_PATH" == /dev/drm_dp_aux0 ]]; then fi if [[ "$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 [[ "$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 [[ "$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 [[ "$WRITE_PATH" == /sys/devices/platform/*/*/*/iio:device*/in_illuminance_integration_time ]]; then