ccimx93: standby: customize script support for systemd
We need to take in account if the IW612 chip (WiFi/Bt) is going to be powered off on suspend state. In such a case, we need to unload the driver modules and restore the expected tty speed for Bluetooth, so that functionality is restored back on resume. https://onedigi.atlassian.net/browse/DEL-8489 Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
This commit is contained in:
parent
b980c2f1ff
commit
fd5ee3a5e3
|
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
# standby-actions
|
||||||
|
#
|
||||||
|
# Copyright (C) 2023 by Digi International Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 as published by
|
||||||
|
# the Free Software Foundation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# !Description: manage interfaces before suspending and after resuming from
|
||||||
|
# suspend
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
SUSPEND_WLAN_IFACES="/tmp/suspend_wlan_ifaces"
|
||||||
|
|
||||||
|
actions_needed() {
|
||||||
|
[ -d "/proc/device-tree/wireless" ] && [ ! -e "/sys/firmware/devicetree/base/soc@0/bus@42800000/mmc@428b0000/keep-power-in-suspend" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${1}" = "pre" ]; then
|
||||||
|
# Stop NetworkManager before suspend
|
||||||
|
systemctl stop NetworkManager
|
||||||
|
|
||||||
|
if actions_needed; then
|
||||||
|
rm -f "${SUSPEND_WLAN_IFACES}"
|
||||||
|
for iface in mlan0 uap0 wfd0; do
|
||||||
|
if grep -qs ${iface} /var/run/ifstate; then
|
||||||
|
ifdown ${iface} && echo ${iface} >> "${SUSPEND_WLAN_IFACES}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
rmmod moal
|
||||||
|
rmmod mlan
|
||||||
|
|
||||||
|
systemctl stop bluetooth
|
||||||
|
systemctl stop bluetooth-init
|
||||||
|
stty -F /dev/ttyBt 115200
|
||||||
|
fi
|
||||||
|
elif [ "${1}" = "post" ]; then
|
||||||
|
if actions_needed; then
|
||||||
|
/etc/udev/scripts/load_iw612.sh
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
|
while read -r iface; do
|
||||||
|
ifup "${iface}"
|
||||||
|
done < "${SUSPEND_WLAN_IFACES}"
|
||||||
|
rm -f "${SUSPEND_WLAN_IFACES}"
|
||||||
|
|
||||||
|
systemctl start bluetooth-init
|
||||||
|
systemctl start bluetooth
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resume NetworkManager after suspend
|
||||||
|
systemctl start NetworkManager
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue