#!/bin/sh
shopt -s nullglob
paths="/sys/bus/pci/devices /sys/bus/i2c/devices"
for p in $paths; do
  for f in ${p}/*/power/control; do
    echo auto > $f
  done
done

# Some USB devices:
# Card reader, webcam, BT
devs="1-1.5 1-1.8 1-1.7"
for d in $devs; do
  echo auto > /sys/bus/usb/devices/$d/power/control
done

# on-demand governor
for i in $(seq 0 3); do
  echo ondemand > /sys/devices/system/cpu/cpu${i}/cpufreq/scaling_governor
done

#SATA
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

# GPU

# SandyBridge
if [ ! -e /usr/src/linux/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy ]; then
  pushd /usr/src/linux/tools/power/x86/x86_energy_perf_policy
  make
  popd
fi
/usr/src/linux/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy powersave

# HDA
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

# wifi powersave
iw wlan0 set power_save on
