WIFI: systemd: add suspend/resume service
For supporting suspend/resume with wifi activate, brcmfmac MUST be unbinding before each suspend. Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.com>
This commit is contained in:
parent
0e99b96fa6
commit
9bd86c65c7
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Copyright (C) 2018, STMicroelectronics - All Rights Reserved
|
||||||
|
|
||||||
|
DESCRIPTION = "Systemd service to suspend/resume correctly the wifi"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||||
|
|
||||||
|
SRC_URI = " \
|
||||||
|
file://wifi_brcmfmac_driver.sh \
|
||||||
|
file://wifi-brcmfmac-sleep.service \
|
||||||
|
"
|
||||||
|
|
||||||
|
inherit systemd
|
||||||
|
SYSTEMD_PACKAGES += "${PN}"
|
||||||
|
SYSTEMD_SERVICE_${PN} = "wifi-brcmfmac-sleep.service"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}${bindir}
|
||||||
|
install -m 0755 ${WORKDIR}/wifi_brcmfmac_driver.sh ${D}${bindir}/
|
||||||
|
|
||||||
|
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||||
|
install -d ${D}${systemd_unitdir}/system/
|
||||||
|
|
||||||
|
install -m 0644 ${WORKDIR}/wifi-brcmfmac-sleep.service ${D}${systemd_unitdir}/system/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ALLOW_EMPTY_${PN} = "1"
|
||||||
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Wifi brcmfmac sleep hook
|
||||||
|
Before=sleep.target
|
||||||
|
StopWhenUnneeded=yes
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=-/usr/bin/wifi_brcmfmac_driver.sh unbind
|
||||||
|
ExecStop=-/usr/bin/wifi_brcmfmac_driver.sh bind
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sleep.target
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/sh
|
||||||
|
SDMMC_PATH=/sys/bus/amba/drivers/mmci-pl18x
|
||||||
|
|
||||||
|
if [ -d $SDMMC_PATH ];
|
||||||
|
then
|
||||||
|
|
||||||
|
if [ ! -d /sys/bus/sdio/drivers/brcmfmac ];
|
||||||
|
then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
bind)
|
||||||
|
echo "bind driver brcmfmac/sdmmc";
|
||||||
|
echo "bind driver brcmfmac/sdmmc" > /dev/kmsg
|
||||||
|
echo 58007000.sdmmc > $SDMMC_PATH/bind
|
||||||
|
;;
|
||||||
|
unbind)
|
||||||
|
echo "unbind driver brcmfmac/sdmmc";
|
||||||
|
echo "unbind driver brcmfmac/sdmmc" > /dev/kmsg
|
||||||
|
echo 58007000.sdmmc > $SDMMC_PATH/unbind
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$0 [bind|unbind]"
|
||||||
|
echo "Bind/Unbind wifi driver brcmfmac."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue