summaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/bcm27xx/base-files/etc/diag.sh26
1 files changed, 19 insertions, 7 deletions
diff --git a/target/linux/bcm27xx/base-files/etc/diag.sh b/target/linux/bcm27xx/base-files/etc/diag.sh
index 601448fbe3..c0c8e7f2cf 100644
--- a/target/linux/bcm27xx/base-files/etc/diag.sh
+++ b/target/linux/bcm27xx/base-files/etc/diag.sh
@@ -5,11 +5,23 @@
. /lib/functions.sh
. /lib/functions/leds.sh
+status_led_restore_trigger() {
+ local led_lc=$(echo "$status_led" | awk '{print tolower($0)}')
+ local led_path="/proc/device-tree/leds/led-$led_lc"
+ local led_trigger
+
+ [ -d "$led_path" ] && \
+ led_trigger=$(cat "$led_path/linux,default-trigger" 2>/dev/null)
+
+ [ -n "$led_trigger" ] && \
+ led_set_attr $status_led "trigger" "$led_trigger"
+}
+
set_state() {
- if [ -d "/sys/class/leds/PWR" ]; then
- status_led="PWR"
- else
+ if [ -d "/sys/class/leds/ACT" ]; then
status_led="ACT"
+ else
+ return
fi
case "$1" in
@@ -22,11 +34,11 @@ set_state() {
preinit_regular)
status_led_blink_preinit_regular
;;
- upgrade)
- status_led_blink_preinit_regular
- ;;
+ upgrade)
+ status_led_blink_preinit_regular
+ ;;
done)
- status_led_on
+ status_led_restore_trigger
;;
esac
}