#! /bin/sh
#
# Laptop mode tools module that handles Intel's performance policy.
#

X86_ENERGY_PERF_POLICY=$(which x86_energy_perf_policy 2>/dev/null)
CPUPOWER=$(which cpupower 2>/dev/null)

# Set perf bias value
# Parameter 1: the value
set_intel_perf_bias_param () {
	local RESULT=1

	if [ -x "$X86_ENERGY_PERF_POLICY" ]; then
		log "VERBOSE" "Executing: '$X86_ENERGY_PERF_POLICY $1'"
		x86_energy_perf_policy $1
		RESULT=$?
	elif [ -x "$CPUPOWER" ]; then
		log "VERBOSE" "Executing: '$CPUPOWER set -b $1'"
		cpupower set -b $1
		RESULT=$?
	fi
	if [ $RESULT != 0 ]; then
		echo "SETTING CPU PERFORMANCE POLICY FAILED"
	fi
}

if [ x$CONTROL_INTEL_PERF_BIAS = x1 ] || [ x$ENABLE_AUTO_MODULES = x1 -a x$CONTROL_INTEL_PERF_BIAS = xauto ]; then
	if [ $ON_AC -eq 1 ] ; then
		if [ "$ACTIVATE" -eq 1 ] ; then
			INTEL_PERF_BIAS="$LM_AC_INTEL_PERF_BIAS"
		else
			INTEL_PERF_BIAS="$NOLM_AC_INTEL_PERF_BIAS"
		fi
	else
		INTEL_PERF_BIAS="$BATT_INTEL_PERF_BIAS"
	fi
	set_intel_perf_bias_param "$INTEL_PERF_BIAS"
fi
