#!/bin/sh

# Released under CC0
# by Hanno Boeck, http://hboeck.de


shopt -s nullglob

for i in /sys/class/scsi_host/host*/link_power_management_policy; do
	echo min_power > $i
done

[ -e /proc/sys/vm/dirty_writeback_centisecs ] && echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

for i in /sys/bus/pci/devices/*/power/control; do
	echo auto > $i
done

ethtool -s eth0 wol d

[ -e /proc/sys/vm/laptop_mode ] && echo 5 > /proc/sys/vm/laptop_mode

for i in /sys/bus/usb/devices/*/power/autosuspend; do
	echo 1 > $i
done

for i in /sys/bus/usb/devices/*/power/level; do
	echo auto > $i
done

[ -e /sys/module/snd_ac97_codec/parameters/power_save ] && echo 1 > /sys/module/snd_ac97_codec/parameters/power_save
# scheint mir ein kernel-bug dass das nicht automatisch geht
[ -e /sys/module/snd_hda_intel/parameters/power_save ] && echo 1 > /sys/module/snd_hda_intel/parameters/power_save


[ -e /proc/sys/kernel/nmi_watchdog ] && echo 0 > /proc/sys/kernel/nmi_watchdog
