From 37636a8752ecdc0ab399c3f38979c6cfb5576bc6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Wed, 3 Jul 2024 20:56:56 +0200 Subject: [PATCH] bcm27xx: base-files: diag: improve LEDs behaviour MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- 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 } -- 2.30.2