diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 4dec9291d7..74ca8426a3 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=base-files -PKG_RELEASE:=202 +PKG_RELEASE:=203 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ diff --git a/package/base-files/files/etc/diag.sh b/package/base-files/files/etc/diag.sh index 8eb36c6feb..37a8ec758e 100755 --- a/package/base-files/files/etc/diag.sh +++ b/package/base-files/files/etc/diag.sh @@ -37,6 +37,8 @@ set_led_state() { ;; done) status_led_off + [ "$status_led" != "$running" ] && \ + status_led_restore_trigger "boot" [ -n "$running" ] && { status_led="$running" status_led_on diff --git a/package/base-files/files/lib/functions/leds.sh b/package/base-files/files/lib/functions/leds.sh index 5b51e70b0a..14baeb37b4 100755 --- a/package/base-files/files/lib/functions/leds.sh +++ b/package/base-files/files/lib/functions/leds.sh @@ -1,17 +1,25 @@ #!/bin/sh # Copyright (C) 2013 OpenWrt.org -get_dt_led() { - local label +get_dt_led_path() { local ledpath local basepath="/proc/device-tree" local nodepath="$basepath/aliases/led-$1" [ -f "$nodepath" ] && ledpath=$(cat "$nodepath") + [ -n "$ledpath" ] && ledpath="$basepath$ledpath" + + echo "$ledpath" +} + +get_dt_led() { + local label + local ledpath=$(get_dt_led_path $1) + [ -n "$ledpath" ] && \ - label=$(cat "$basepath$ledpath/label" 2>/dev/null) || \ - label=$(cat "$basepath$ledpath/chan-name" 2>/dev/null) || \ - label=$(basename "$basepath$ledpath") + label=$(cat "$ledpath/label" 2>/dev/null) || \ + label=$(cat "$ledpath/chan-name" 2>/dev/null) || \ + label=$(basename "$ledpath") echo "$label" } @@ -36,6 +44,17 @@ led_off() { led_set_attr $1 "brightness" 0 } +status_led_restore_trigger() { + local trigger + local ledpath=$(get_dt_led_path $1) + + [ -n "$ledpath" ] && \ + trigger=$(cat "$ledpath/linux,default-trigger" 2>/dev/null) + + [ -n "$trigger" ] && \ + led_set_attr "$(get_dt_led $1)" "trigger" "$trigger" +} + status_led_set_timer() { led_timer $status_led "$1" "$2" [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2"