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>
This commit is contained in:
parent
c417aee9f1
commit
641dc50164
3 changed files with 9 additions and 4 deletions
|
@ -366,11 +366,12 @@ generate_led() {
|
||||||
;;
|
;;
|
||||||
|
|
||||||
switch)
|
switch)
|
||||||
local port_mask speed_mask
|
local port_mask speed_mask mode
|
||||||
json_get_vars port_mask speed_mask
|
json_get_vars port_mask speed_mask mode
|
||||||
uci -q batch <<-EOF
|
uci -q batch <<-EOF
|
||||||
set system.$cfg.port_mask='$port_mask'
|
set system.$cfg.port_mask='$port_mask'
|
||||||
set system.$cfg.speed_mask='$speed_mask'
|
set system.$cfg.speed_mask='$speed_mask'
|
||||||
|
set system.$cfg.mode='$mode'
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ load_led() {
|
||||||
config_get trigger $1 trigger "none"
|
config_get trigger $1 trigger "none"
|
||||||
config_get dev $1 dev
|
config_get dev $1 dev
|
||||||
config_get ports $1 port
|
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_bool default $1 default "nil"
|
||||||
config_get delayon $1 delayon
|
config_get delayon $1 delayon
|
||||||
config_get delayoff $1 delayoff
|
config_get delayoff $1 delayoff
|
||||||
|
@ -71,7 +71,7 @@ load_led() {
|
||||||
"netdev")
|
"netdev")
|
||||||
[ -n "$dev" ] && {
|
[ -n "$dev" ] && {
|
||||||
echo $dev > /sys/class/leds/${sysfs}/device_name
|
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
|
echo $interval > /sys/class/leds/${sysfs}/interval
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
@ -110,6 +110,8 @@ load_led() {
|
||||||
config_get speed_mask $1 speed_mask
|
config_get speed_mask $1 speed_mask
|
||||||
[ -n "$speed_mask" ] && \
|
[ -n "$speed_mask" ] && \
|
||||||
echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
|
echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
|
||||||
|
[ -n "$mode" ] && \
|
||||||
|
echo "$mode" > /sys/class/leds/${sysfs}/mode
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
|
@ -442,11 +442,13 @@ ucidef_set_led_switch() {
|
||||||
local trigger_name="$4"
|
local trigger_name="$4"
|
||||||
local port_mask="$5"
|
local port_mask="$5"
|
||||||
local speed_mask="$6"
|
local speed_mask="$6"
|
||||||
|
local mode="$7"
|
||||||
|
|
||||||
_ucidef_set_led_common "$1" "$2" "$3"
|
_ucidef_set_led_common "$1" "$2" "$3"
|
||||||
|
|
||||||
json_add_string trigger "$trigger_name"
|
json_add_string trigger "$trigger_name"
|
||||||
json_add_string type switch
|
json_add_string type switch
|
||||||
|
json_add_string mode "$mode"
|
||||||
json_add_string port_mask "$port_mask"
|
json_add_string port_mask "$port_mask"
|
||||||
json_add_string speed_mask "$speed_mask"
|
json_add_string speed_mask "$speed_mask"
|
||||||
json_select ..
|
json_select ..
|
||||||
|
|
Loading…
Reference in a new issue