ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/network/utils/rssileds/files/rssi b/package/network/utils/rssileds/files/rssi
new file mode 100644
index 0000000..0c06733
--- /dev/null
+++ b/package/network/utils/rssileds/files/rssi
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+logger -t led-trigger "LED trigger rssi is handled by /etc/init.d/rssileds"
diff --git a/package/network/utils/rssileds/files/rssileds.init b/package/network/utils/rssileds/files/rssileds.init
new file mode 100644
index 0000000..4c9b549
--- /dev/null
+++ b/package/network/utils/rssileds/files/rssileds.init
@@ -0,0 +1,75 @@
+#!/bin/sh /etc/rc.common
+# (C) 2012 Daniel Golle, Allnet GmbH <dgolle@allnet.de>
+
+START=96
+STOP=89
+RSSILEDS_BIN="/usr/sbin/rssileds"
+
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
+
+start_rssid() {
+	local name
+	local dev
+	local threshold
+	local refresh
+	local leds
+	config_get name $1 name
+	config_get dev $1 dev
+	config_get threshold $1 threshold
+	config_get refresh $1 refresh
+	leds="$( cur_iface=$1 ; config_foreach get_led led )"
+	SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
+	service_start $RSSILEDS_BIN $dev $refresh $threshold $leds
+}
+
+stop_rssid() {
+	local dev
+	config_get dev $1 dev
+	SERVICE_PID_FILE=/var/run/rssileds-$dev.pid
+	service_stop $RSSILEDS_BIN
+}
+
+get_led() {
+	local name
+	local sysfs
+	local trigger
+	local iface
+	config_get sysfs $1 sysfs
+	config_get name $1 name "$sysfs"
+	config_get trigger $1 trigger "none"
+	config_get iface $1 iface
+	config_get minq $1 minq
+	config_get maxq $1 maxq
+	config_get offset $1 offset
+	config_get factor $1 factor
+	[ "$trigger" = "rssi" ] || return
+	[ "$iface" = "$cur_iface" ] || return
+	[ ! "$minq" ] || [ ! "$maxq" ] || [ ! "$offset" ] || [ ! "$factor" ] && return
+	echo "none" > /sys/class/leds/$sysfs/trigger
+	echo "$sysfs $minq $maxq $offset $factor"
+}
+
+off_led() {
+	local name
+	local sysfs
+	local trigger
+	config_get sysfs $1 sysfs
+	config_get name $1 name "$sysfs"
+	config_get trigger $1 trigger "none"
+	[ "$trigger" = "rssi" ] || return
+	echo "0" > /sys/class/leds/$sysfs/brightness
+}
+
+start() {
+	[ -e /sys/class/leds/ ] && [ -x "$RSSILEDS_BIN" ] && {
+		config_load system
+		config_foreach start_rssid rssid
+	}
+}
+
+stop() {
+	config_load system
+	config_foreach stop_rssid rssid
+	config_foreach off_led led
+}