[openwrt/openwrt] bcm27xx: base-files: diag: improve LEDs behaviour

LEDE Commits lede-commits at lists.infradead.org
Wed Jul 3 12:03:13 PDT 2024


noltari pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/37636a8752ecdc0ab399c3f38979c6cfb5576bc6

commit 37636a8752ecdc0ab399c3f38979c6cfb5576bc6
Author: Álvaro Fernández Rojas <noltari at gmail.com>
AuthorDate: Wed Jul 3 20:56:56 2024 +0200

    bcm27xx: base-files: diag: improve LEDs behaviour
    
    As reported in https://github.com/openwrt/openwrt/issues/15834 using the PWR
    LED for indicating diag status is confusing since this is usually used for
    power supply failures on RPi devices.
    This commit uses ACT LED for diag status and restores it to mmc activity.
    
    Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
---
 target/linux/bcm27xx/base-files/etc/diag.sh | 26 +++++++++++++++++++-------
 1 file 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
 }




More information about the lede-commits mailing list