Skip to content

Commit 44e0920

Browse files
committed
Optimize GPIO handling
1 parent d06a267 commit 44e0920

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

power_mute.sh

+26-22
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,10 @@ case $1 in
8989
# move on with lock ...
9090
echo -n "init $OUTPUT_DEVICE: " > $ECHO_OUT
9191
if [[ -n "$GPIO_PSU_RELAY" ]]; then
92-
echo -n "PSU relay: $GPIO_PSU_RELAY ..." > $ECHO_OUT
93-
gpio_init $GPIO_PSU_RELAY 0
92+
if [ "${GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN#*"$GPIO_MUTE"}" != "$GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN" ]; then
93+
echo -n "PSU relay: $GPIO_PSU_RELAY ..." > $ECHO_OUT
94+
gpio_init $GPIO_PSU_RELAY 0
95+
fi
9496
fi
9597
if [[ -n "$GPIO_SPS" ]]; then
9698
echo -n "SPS: $GPIO_SPS ..." > $ECHO_OUT
@@ -219,28 +221,30 @@ case $1 in
219221
echo -n "SPS: $GPIO_SPS ..." > $ECHO_OUT
220222
fi
221223
if [[ -n "$GPIO_PSU_RELAY" ]]; then
222-
# release gpio lock
223-
flock -u 200
224-
# wait without lock ...
225-
sleep $PSU_POWER_DOWN_DELAY
226-
# create lock in order to make sure we have exclusive access to GPIO
227-
exec 200>/var/lock/gpio || exit 1
228-
flock 200 || exit 1
229-
# move on with lock ...
230-
ALL_OFF=1
231-
IFS=\;
232-
for token in $GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN; do
233-
if [[ -n "$token" ]]; then
234-
GPIO_ON=$(gpio_get $token)
235-
if [[ $GPIO_ON == 1 ]]; then
236-
ALL_OFF=0
237-
break
224+
if [ "${GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN#*"$GPIO_MUTE"}" != "$GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN" ]; then
225+
# release gpio lock
226+
flock -u 200
227+
# wait without lock ...
228+
sleep $PSU_POWER_DOWN_DELAY
229+
# create lock in order to make sure we have exclusive access to GPIO
230+
exec 200>/var/lock/gpio || exit 1
231+
flock 200 || exit 1
232+
# move on with lock ...
233+
ALL_OFF=1
234+
IFS=\;
235+
for token in $GPIO_PSU_RELAY_OFF_ON_AMP_SHUTDOWN; do
236+
if [[ -n "$token" ]]; then
237+
GPIO_ON=$(gpio_get $token)
238+
if [[ $GPIO_ON == 1 ]]; then
239+
ALL_OFF=0
240+
break
241+
fi
238242
fi
243+
done
244+
if [[ $ALL_OFF == 1 ]]; then
245+
gpio_set $GPIO_PSU_RELAY 0
246+
echo -n "PSU relay: $GPIO_PSU_RELAY ..." > $ECHO_OUT
239247
fi
240-
done
241-
if [[ $ALL_OFF == 1 ]]; then
242-
gpio_set $GPIO_PSU_RELAY 0
243-
echo -n "PSU relay: $GPIO_PSU_RELAY ..." > $ECHO_OUT
244248
fi
245249
fi
246250
echo "" > $ECHO_OUT

0 commit comments

Comments
 (0)