X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fchunkeey.git;a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Flib%2Ffunctions%2Fleds.sh;fp=package%2Fbase-files%2Ffiles%2Flib%2Ffunctions%2Fleds.sh;h=936b165e1cf9298dffe7cfa38e58b05c58391394;hp=a7532faa2fd553f2ebc6555cad2001fc84297e6f;hb=0a7a4a0f77a26009eb6429674b83e544761d74c9;hpb=7d5f6d0d675eb6af6a1efe323c45f8f8c0fce861 diff --git a/package/base-files/files/lib/functions/leds.sh b/package/base-files/files/lib/functions/leds.sh index a7532faa2f..936b165e1c 100644 --- a/package/base-files/files/lib/functions/leds.sh +++ b/package/base-files/files/lib/functions/leds.sh @@ -13,13 +13,26 @@ get_dt_led_path() { get_dt_led() { local label + local of_path local ledpath=$(get_dt_led_path $1) - [ -n "$ledpath" ] && \ + [ -n "$ledpath" ] && { label=$(cat "$ledpath/label" 2>/dev/null) || \ label=$(cat "$ledpath/chan-name" 2>/dev/null) || \ label=$(basename "$ledpath") + [ -d "/sys/class/leds/$label" ] || { + label="" + for node in /sys/class/leds/*; do + of_path=$(grep OF_FULLNAME "$node/uevent" | cut -f2 -d'=') + [ "/proc/device-tree$of_path" = "$ledpath" ] && { + label=$(basename "$node") + break + } + done + } + } + echo "$label" }