amdgpu: update fan controller

This commit is contained in:
Leonardo Eugênio 2025-01-17 20:29:22 -03:00
parent 72dfd33750
commit 2ae616758b

View file

@ -18,7 +18,7 @@ bail() {
exit 1 exit 1
} }
if ! [ -d $HWMON ]; then if ! [ -d "$HWMON" ]; then
bail "Invalid HWMON" bail "Invalid HWMON"
fi fi
@ -28,20 +28,31 @@ if ! [ -f $TEMP_INPUT ]; then
bail "Invalid TEMP_INPUT" bail "Invalid TEMP_INPUT"
fi fi
MIN="$2" TEMP_MIN="$2"
MAX="$3" TEMP_MAX="$3"
if [ -z "$TEMP_MIN" ];then
bail "No minimum temperature provided"
fi
if [ -z "$TEMP_MAX" ];then
bail "No maximum temperature provided"
fi
PWM_MIN=0
PWM_MAX=255
echo "Running..." >&2 echo "Running..." >&2
while true; do while true; do
TEMPERATURE_RAW=$(cat "$TEMP_INPUT") TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))" TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
# Remap from a number between 60_000..90_000 to 0..255 # Remap from a number between 60_000..90_000 to 0..255
PWM=$(( ($TEMPERATURE - $MIN) * 255 / ($MAX - $MIN) )) PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
if [ "$PWM" -gt 255 ]; then if [ "$PWM" -gt $PWM_MAX ]; then
PWM=255 PWM=$PWM_MAX
elif [ "$PWM" -lt 0 ]; then elif [ "$PWM" -lt $PWM_MIN ]; then
PWM=0 PWM=$PWM_MIN
fi fi
echo 1 > "$HWMON/pwm1_enable" echo 1 > "$HWMON/pwm1_enable"