#!/usr/bin/env sh

# Vendor and product ID for card
VID="0x1002"
PID="0x73bf"

# Find hwmon device for associated vendor and product ID
for d in /sys/class/hwmon/hwmon*; do
	if [ "$(cat "$d/device/vendor" 2>/dev/null)" = $VID ] \
		&& [ "$(cat "$d/device/device" 2>/dev/null)" = $PID ]; then
		HWMONPATH="$(echo "$d" | awk -F / '{print $NF}')"
	fi
done

echo "hwmon path to card: $HWMONPATH"

## Enable overclocking
echo "manual" > "/sys/class/hwmon/${HWMONPATH}/device/power_dpm_force_performance_level"

# Increase power limit
cat "/sys/class/hwmon/${HWMONPATH}/power1_cap_max" > "/sys/class/hwmon/${HWMONPATH}/power1_cap" 

## Undervolt p states
# Ignore state 0 since it's below (?) the minimum voltage by default
#echo "vc 0 500 900"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
#echo "vc 1 2400 900"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
# Set max clock speed to 1900MHz
echo "vo -100"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
echo "s 1 2400"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
echo "m 1 1050"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
echo "c"  > "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"

# Display current info
echo "Settings applied"
cat "/sys/class/hwmon/${HWMONPATH}/device/pp_od_clk_voltage"
