aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@gmail.com>2018-09-22 00:38:40 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2018-09-29 17:23:11 +0200
commit641dc50164d30d4962499e1974fafde9b337faaf (patch)
treefe3527eecd51f1733f5054add1b68601a020fe03 /package/base-files
parentc417aee9f146f26cd12642138bc0cedf5950a59a (diff)
downloadupstream-641dc50164d30d4962499e1974fafde9b337faaf.tar.gz
upstream-641dc50164d30d4962499e1974fafde9b337faaf.tar.bz2
upstream-641dc50164d30d4962499e1974fafde9b337faaf.zip
base-files: make it possible to specify switch led mode
The swconfig switch led driver has the ability to switch between a "link, rx and/or tx" mode. However, this feature was not implemented in uci, the led init script and config_generate. This patch adds a seventh parameter to the ucidef_set_led_switch() function. The accepted values for this parameter are: link, rx and tx. Any permutations of these three values are supported, as long as they are properly encased with quotes. If the parameter is not specified it will default to "all" (link rx tx). Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'package/base-files')
-rwxr-xr-xpackage/base-files/files/bin/config_generate5
-rwxr-xr-xpackage/base-files/files/etc/init.d/led6
-rwxr-xr-xpackage/base-files/files/lib/functions/uci-defaults.sh2
3 files changed, 9 insertions, 4 deletions
diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index c8b253da5b..df221cc26c 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -366,11 +366,12 @@ generate_led() {
;;
switch)
- local port_mask speed_mask
- json_get_vars port_mask speed_mask
+ local port_mask speed_mask mode
+ json_get_vars port_mask speed_mask mode
uci -q batch <<-EOF
set system.$cfg.port_mask='$port_mask'
set system.$cfg.speed_mask='$speed_mask'
+ set system.$cfg.mode='$mode'
EOF
;;
diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led
index c790e3e181..a3f1224a1a 100755
--- a/package/base-files/files/etc/init.d/led
+++ b/package/base-files/files/etc/init.d/led
@@ -20,7 +20,7 @@ load_led() {
config_get trigger $1 trigger "none"
config_get dev $1 dev
config_get ports $1 port
- config_get mode $1 mode "link"
+ config_get mode $1 mode
config_get_bool default $1 default "nil"
config_get delayon $1 delayon
config_get delayoff $1 delayoff
@@ -71,7 +71,7 @@ load_led() {
"netdev")
[ -n "$dev" ] && {
echo $dev > /sys/class/leds/${sysfs}/device_name
- echo $mode > /sys/class/leds/${sysfs}/mode
+ echo "${mode:-link}" > /sys/class/leds/${sysfs}/mode
echo $interval > /sys/class/leds/${sysfs}/interval
}
;;
@@ -110,6 +110,8 @@ load_led() {
config_get speed_mask $1 speed_mask
[ -n "$speed_mask" ] && \
echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
+ [ -n "$mode" ] && \
+ echo "$mode" > /sys/class/leds/${sysfs}/mode
;;
esac
}
diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh
index 7fa328ac20..315df7b708 100755
--- a/package/base-files/files/lib/functions/uci-defaults.sh
+++ b/package/base-files/files/lib/functions/uci-defaults.sh
@@ -442,11 +442,13 @@ ucidef_set_led_switch() {
local trigger_name="$4"
local port_mask="$5"
local speed_mask="$6"
+ local mode="$7"
_ucidef_set_led_common "$1" "$2" "$3"
json_add_string trigger "$trigger_name"
json_add_string type switch
+ json_add_string mode "$mode"
json_add_string port_mask "$port_mask"
json_add_string speed_mask "$speed_mask"
json_select ..