For devices without a dedicated 'diag' LED, we use sometimes one of other LEDs for indicating at least 'boot', 'failsafe' and 'upgrade' stages. In some cases, at the same time these LEDs have defined default triggers in DTS using 'linux,default-trigger' property. Current 'diag' setup removes the trigger and turns off 'boot' LED after bootup. This patch extends 'diag.sh' and 'leds.sh' scripts to make sure default trigger defined in DTS is restored for 'diag' LED which isn't used for indicating 'running' stage. Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
53 lines
948 B
Bash
Executable File
53 lines
948 B
Bash
Executable File
#!/bin/sh
|
|
# Copyright (C) 2006-2019 OpenWrt.org
|
|
|
|
. /lib/functions/leds.sh
|
|
|
|
boot="$(get_dt_led boot)"
|
|
failsafe="$(get_dt_led failsafe)"
|
|
running="$(get_dt_led running)"
|
|
upgrade="$(get_dt_led upgrade)"
|
|
|
|
set_led_state() {
|
|
status_led="$boot"
|
|
|
|
case "$1" in
|
|
preinit)
|
|
status_led_blink_preinit
|
|
;;
|
|
failsafe)
|
|
status_led_off
|
|
[ -n "$running" ] && {
|
|
status_led="$running"
|
|
status_led_off
|
|
}
|
|
status_led="$failsafe"
|
|
status_led_blink_failsafe
|
|
;;
|
|
preinit_regular)
|
|
status_led_blink_preinit_regular
|
|
;;
|
|
upgrade)
|
|
[ -n "$running" ] && {
|
|
status_led="$running"
|
|
status_led_off
|
|
}
|
|
status_led="$upgrade"
|
|
status_led_blink_preinit_regular
|
|
;;
|
|
done)
|
|
status_led_off
|
|
[ "$status_led" != "$running" ] && \
|
|
status_led_restore_trigger "boot"
|
|
[ -n "$running" ] && {
|
|
status_led="$running"
|
|
status_led_on
|
|
}
|
|
;;
|
|
esac
|
|
}
|
|
|
|
set_state() {
|
|
[ -n "$boot" -o -n "$failsafe" -o -n "$running" -o -n "$upgrade" ] && set_led_state "$1"
|
|
}
|