meta-digi/meta-digi-dey/recipes-core/busybox/busybox/ccimx93/standby-actions

61 lines
1.7 KiB
Bash

#!/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
#
#===============================================================================
RESUME_ACTIONS="/tmp/resume_actions"
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 "${RESUME_ACTIONS}"
for iface in wlan0 uap0 wfd0; do
if grep -qs ${iface} /var/run/ifstate; then
ifdown ${iface} && echo "ifup ${iface}" >> "${RESUME_ACTIONS}"
fi
done
rmmod moal
rmmod mlan
if systemctl is-active bluetooth-init; then
#
# bluetooth service relies on bluetooth-init service, so stop/start it unconditionally
echo "systemctl start bluetooth-init" >> "${RESUME_ACTIONS}"
echo "systemctl start bluetooth" >> "${RESUME_ACTIONS}"
systemctl stop bluetooth-init
systemctl stop bluetooth
stty -F /dev/ttyBt 115200
fi
fi
elif [ "${1}" = "post" ]; then
if actions_needed; then
/etc/udev/scripts/load_iw612.sh
sleep 0.5
sh "${RESUME_ACTIONS}"
rm -f "${RESUME_ACTIONS}"
fi
# Resume NetworkManager after suspend
systemctl start NetworkManager
fi