diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx93/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx93/standby-actions new file mode 100644 index 000000000..00c80a8b2 --- /dev/null +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx93/standby-actions @@ -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