brcm47xx: fix led indication
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Jan 2014 18:56:36 +0000 (18:56 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Jan 2014 18:56:36 +0000 (18:56 +0000)
Use the new led api also on brcm47xx.
The led for failsafe indication is searched for.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39255 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/brcm47xx/base-files/etc/diag.sh

index 3b08554..539af36 100644 (file)
@@ -1,28 +1,38 @@
 #!/bin/sh
 # Copyright (C) 2006 OpenWrt.org
 
-set_led() {
-       local led="$1"
-       local state="$2"
-       [ -f "/proc/diag/led/$1" ] && echo "$state" > "/proc/diag/led/$1"
+. /lib/functions/leds.sh
+
+get_status_led() {
+       status_led_file=$(find /sys/class/leds/ -name "*power*" |head -n1)
+       if [ ! -f $status_led_file ]; then
+               status_led=$(basename $status_led_file)
+               return
+       fi;
+       status_led_file=$(find /sys/class/leds/ -name "*diag*" |head -n1)
+       if [ ! -f $status_led_file ]; then
+               status_led=$(basename $status_led_file)
+               return
+       fi;
+       status_led_file=$(find /sys/class/leds/ -name "*wps*" |head -n1)
+       if [ ! -f $status_led_file ]; then
+               status_led=$(basename $status_led_file)
+               return
+       fi;
 }
 
 set_state() {
+       get_status_led
+
        case "$1" in
-               preinit)
-                       set_led dmz 1
-                       set_led diag 1
-                       set_led power 0
+       preinit)
+               status_led_blink_preinit
                ;;
-               failsafe)
-                       set_led diag f
-                       set_led power f
-                       set_led dmz f
+       failsafe)
+               status_led_blink_failsafe
                ;;
-               done)
-                       set_led dmz 0
-                       set_led diag 0
-                       set_led power 1
+       done)
+               status_led_on
                ;;
        esac
 }