#! /bin/sh
#
# Laptop mode tools module that handles Intel's PState driver
#

INTEL_PSTATE_SYSFS=/sys/devices/system/cpu/intel_pstate

# Set intel_pstate sysfs parameter
# Parameter 1: parameter name
# Parameter 2: the value
set_intel_pstate_param () {
	if [ -f "$INTEL_PSTATE_SYSFS/$1" ]; then
		log "VERBOSE" "Executing: echo $2 > $INTEL_PSTATE_SYSFS/$1"
		if ! echo "$2" > "$INTEL_PSTATE_SYSFS/$1" ; then
			echo "SETTING OF KERNEL PARAMETER FAILED: echo $2 \> $INTEL_PSTATE_SYSFS/$1"
		fi
	fi
}

if [ x$CONTROL_INTEL_PSTATE = x1 ] || [ x$ENABLE_AUTO_MODULES = x1 -a x$CONTROL_INTEL_PSTATE = xauto ]; then
	if [ $ON_AC -eq 1 ] ; then
		if [ "$ACTIVATE" -eq 1 ] ; then
			INTEL_PSTATE_PERF_MIN_PCT="$LM_AC_INTEL_PSTATE_PERF_MIN_PCT"
			INTEL_PSTATE_PERF_MAX_PCT="$LM_AC_INTEL_PSTATE_PERF_MAX_PCT"
			INTEL_PSTATE_NO_TURBO="$LM_AC_INTEL_PSTATE_NO_TURBO"
		else
			INTEL_PSTATE_PERF_MIN_PCT="$NOLM_AC_INTEL_PSTATE_PERF_MIN_PCT"
			INTEL_PSTATE_PERF_MAX_PCT="$NOLM_AC_INTEL_PSTATE_PERF_MAX_PCT"
			INTEL_PSTATE_NO_TURBO="$NOLM_AC_INTEL_PSTATE_NO_TURBO"
		fi
	else
		INTEL_PSTATE_PERF_MIN_PCT="$BATT_INTEL_PSTATE_PERF_MIN_PCT"
		INTEL_PSTATE_PERF_MAX_PCT="$BATT_INTEL_PSTATE_PERF_MAX_PCT"
		INTEL_PSTATE_NO_TURBO="$BATT_INTEL_PSTATE_NO_TURBO"
	fi
	set_intel_pstate_param max_perf_pct "$INTEL_PSTATE_PERF_MAX_PCT"
	set_intel_pstate_param min_perf_pct "$INTEL_PSTATE_PERF_MIN_PCT"
	set_intel_pstate_param no_turbo "$INTEL_PSTATE_NO_TURBO"
fi
