From 8bae398da7ed345e875f4a2c81e5ce54609cc10e Mon Sep 17 00:00:00 2001 From: Sukru Senli Date: Tue, 8 Dec 2015 13:23:25 +0100 Subject: [PATCH] add power management package --- power-management/Makefile | 30 ++++++++++++++ power-management/files/etc/config/power_mgmt | 6 +++ power-management/files/etc/init.d/power_mgmt | 43 ++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 power-management/Makefile create mode 100644 power-management/files/etc/config/power_mgmt create mode 100755 power-management/files/etc/init.d/power_mgmt diff --git a/power-management/Makefile b/power-management/Makefile new file mode 100644 index 000000000..dd937a507 --- /dev/null +++ b/power-management/Makefile @@ -0,0 +1,30 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=power-management +PKG_RELEASE:=1 +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/power-management + CATEGORY:=Base system + TITLE:=Port management tool +endef + +define Package/power-management/description + Control Broadcom power options +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./files/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile +endef + +define Package/power-management/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,power-management)) diff --git a/power-management/files/etc/config/power_mgmt b/power-management/files/etc/config/power_mgmt new file mode 100644 index 000000000..61c6b0b8b --- /dev/null +++ b/power-management/files/etc/config/power_mgmt @@ -0,0 +1,6 @@ +config power_mgmt 'power_mgmt' + option avs 'stopped' + option cpuspeed '0' + option cpur4kwait '0' + option ethapd '0' + option eee '0' diff --git a/power-management/files/etc/init.d/power_mgmt b/power-management/files/etc/init.d/power_mgmt new file mode 100755 index 000000000..19e67ffd4 --- /dev/null +++ b/power-management/files/etc/init.d/power_mgmt @@ -0,0 +1,43 @@ +#!/bin/sh /etc/rc.common + +START=13 +USE_PROCD=1 + +. /lib/functions.sh + +parsebool() { + [ "$1" = "1" ] && echo "on" || echo "off" +} + +start_service() { + config_load power_mgmt + + local speed + config_get speed power_mgmt cpuspeed + pwrctl config --cpuspeed $speed + + local cpur4kwait + config_get cpur4kwait power_mgmt cpur4kwait + pwrctl config --cpur4kwait $(parsebool $cpur4kwait) + + local sr + config_get sr power_mgmt sr + pwrctl config --sr $(parsebool $sr) + + local ethapd + config_get ethapd power_mgmt ethapd + pwrctl config --ethapd $(parsebool $ethapd) + + local eee + config_get eee power_mgmt eee + pwrctl config --eee $(parsebool $eee) + + local avs + config_get avs power_mgmt avs + pwrctl config --avs $avs +} + +service_triggers() { + procd_add_reload_trigger power_mgmt +} +