#!/bin/bash

if [ -a /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
  for cpu in `ls --color=none /sys/devices/system/cpu/`; do
    if [ -a /sys/devices/system/cpu/$cpu/cpufreq/scaling_available_governors ]; then
        found="no"
        avail_gov=`cat /sys/devices/system/cpu/$cpu/cpufreq/scaling_available_governors`
        for ag in $avail_gov; do
            if [ "$ag" == "$1" ]; then
                found="yes"
                break
            fi
        done
        if [ "$found" == "yes" ]; then
            echo $1 > /sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
        fi
    else
        echo $1 > /sys/devices/system/cpu/$cpu/cpufreq/scaling_governor
    fi
  done
elif [ -a /proc/cpufreq ]; then
  if [ -a /proc/sys/cpu/0/speed ]; then
    for cpu in `ls --color=none /proc/sys/cpu/`; do
      echo "$cpu%0%100%$1" > /proc/cpufreq
    done
  fi
fi
