#!/sbin/runscript # Copyright 2005-02-24 Carl Meyer # Distributed under the terms of the GNU General Public License v2 CPUFREQ_DIR=/sys/devices/system/cpu/cpu0/cpufreq load_modules() { for MODULE in ${CPUFREQ_MODULES} do if [ -z `cut -d' ' -f1 /proc/modules | egrep "^${MODULE}\$"` ] && [ -z `cut -d' ' -f1 /proc/modules | egrep "^${MODULE//-/_}\$"` ]; then ebegin " Loading: ${MODULE}" /sbin/modprobe ${MODULE} eend $? fi done if [ ! -d "${CPUFREQ_DIR}" ]; then eerror "ERROR: failed to load necessary modules" fi } start() { if [ -f /proc/modules ]; then ebegin "Loading cpufreq modules" if load_modules; then eend 0 else eend 1 return 1 fi fi ebegin "Switching to ${CPUFREQ_BATT_GOV} CPU frequency governor..." if [ -w "${CPUFREQ_DIR}/scaling_governor" ] && [ -n "`grep ${CPUFREQ_BATT_GOV} ${CPUFREQ_DIR}/scaling_available_governors`" ]; then echo "${CPUFREQ_BATT_GOV}" > ${CPUFREQ_DIR}/scaling_governor eend 0 else eend 1 fi } stop() { ebegin "Switching to ${CPUFREQ_NORMAL_GOV} CPU frequency governor..." if [ -w "${CPUFREQ_DIR}/scaling_governor" ] && [ -n "`grep ${CPUFREQ_NORMAL_GOV} ${CPUFREQ_DIR}/scaling_available_governors`" ]; then echo "${CPUFREQ_NORMAL_GOV}" > ${CPUFREQ_DIR}/scaling_governor eend 0 else eend 1 fi }