amdgpu: update fan controller
This commit is contained in:
		
							parent
							
								
									75da9cfb7b
								
							
						
					
					
						commit
						af4431b9ef
					
				
					 1 changed files with 19 additions and 8 deletions
				
			
		| 
						 | 
					@ -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"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue