#!/bin/sh

# name        : cpufreq
# author      : Dominik Brodowski <Linux@brodo.de>
#               Davin Kimdon <dwhedon@debian.org> 
# modified    : Matthias Grimm <matthiasgrimm@users.sourceforge.net>
# description : Set processor frequency
# requirements: 
# limitations : only first CPU supported 
#
# --- end of public part -- don't change below this line ---

# source configuration
. pmcs-config

KVER=`uname -r`

case "$1" in
  powersave|custom)
    case "$KVER" in
      2.6.*)
        if [ -d /sys ]; then
          echo -n "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
          cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
        elif [ -f /proc/cpufreq ]; then
          echo -n "0:0:0:powersave" > /proc/cpufreq
	elif [ -d /proc/sys/cpu ]; then
          cat /proc/sys/cpu/0/speed-min > /proc/sys/cpu/0/speed
	fi
        ;;
      2.4.*)
        if [ -f /proc/cpufreq ]; then
	  echo -n "0:0:0:powersave" > /proc/cpufreq
        elif [ -d /proc/sys/cpu ]; then
          cat /proc/sys/cpu/0/speed-min > /proc/sys/cpu/0/speed
	fi
        ;;
    esac
   ;;
  performance)
     case "$KVER" in
      2.6.*)
        if [ -d /sys ]; then
          echo -n "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
          cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
        elif [ -f /proc/cpufreq ]; then
          echo -n "0%76%100%performance" > /proc/cpufreq
	elif [ -d /proc/sys/cpu ]; then
           cat /proc/sys/cpu/0/speed-max > /proc/sys/cpu/0/speed
	fi
        ;;
      2.4.*)
        if [ -f /proc/cpufreq ]; then
	  echo -n "0%76%0100%performance" > /proc/cpufreq
        elif [ -d /proc/sys/cpu ]; then
          cat /proc/sys/cpu/0/speed-max > /proc/sys/cpu/0/speed
	fi
        ;;
    esac
   ;;
  suspend)
    ;;
  resume)
    ;;
esac


