lantiq: Fix LED handling.
authorJohn Crispin <blogic@openwrt.org>
Tue, 26 Apr 2016 07:52:00 +0000 (07:52 +0000)
committerJohn Crispin <blogic@openwrt.org>
Tue, 26 Apr 2016 07:52:00 +0000 (07:52 +0000)
Backport of r47914 to CC.

Without this patch the TDW8970 is left without any status LED at all,
even during preinit and failsafe.

Signed-off-by: Vittorio Gambaletta <openwrt@vittgam.net>
git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49230 3c298f89-4303-0410-b956-a3cf2f4a3e73

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

index 26f0a3c..57a7055 100644 (file)
@@ -3,40 +3,48 @@
 
 . /lib/functions/leds.sh
 
-status_led="power"
+status_led=power
+[ ! -d /sys/class/leds/power/ ] && [ ! -d /sys/class/leds/power1/ ] && [ ! -d /sys/class/leds/power2/ ] && [ -d /sys/class/leds/wps/ ] && status_led=wps
 
 set_state() {
-       [ -d /sys/class/leds/power2/ ] && {
-
-               case "$1" in
-               preinit)
-                       led_set_attr "power2" "trigger" "heartbeat"
-                       status_led_on
-                       ;;
-               failsafe)
-                       led_off "power2"
-                       status_led_set_timer 100 100
-                       ;;
-               done)
-                       led_off "power2"
-                       ;;
-               esac
-               return
-       }
-
        case "$1" in
        preinit)
-               status_led_set_heartbeat
+               if [ -d /sys/class/leds/power2/ ]; then
+                       status_led_on
+                       status_led=power2
+                       status_led_blink_preinit
+                       status_led=power
+               else
+                       status_led_blink_preinit
+               fi
                ;;
        failsafe)
-               [ -d /sys/class/leds/power1 ] && {
+               if [ -d /sys/class/leds/power2/ ]; then
+                       led_off power2
+                       status_led_blink_failsafe
+               elif [ -d /sys/class/leds/power1/ ]; then
                        status_led_off
-                       led_timer "power1" 100 100
-               } || status_led_set_timer 100 100
+                       status_led=power1
+                       status_led_blink_failsafe
+                       status_led=power
+               else
+                       status_led_blink_failsafe
+               fi
+               ;;
+       preinit_regular)
+               if [ -d /sys/class/leds/power2/ ]; then
+                       status_led_on
+                       status_led=power2
+                       status_led_blink_preinit_regular
+                       status_led=power
+               else
+                       status_led_blink_preinit_regular
+               fi
                ;;
        done)
                status_led_on
-               led_off "power1"
+               led_off power1
+               led_off power2
                ;;
        esac
 }