Update systemd-sleep script for IPTS changes

Integrate the changes discussed in [1] as proposed by @kitakar5525 in
[2]. The IPTS suspend/resume mechanism should work without the need for
unloading/reloading the corresponding modules, so we comment-out and
update the workaround and will handle any issues coming from that via
the IPTS drivers. The workaround is not completely removed yet as want
to provide an easy-to-apply temporary fix in case anything goes wrong.

[1]: https://github.com/jakeday/linux-surface/issues/544
[2]: https://github.com/jakeday/linux-surface/issues/544#issuecomment-519126757
This commit is contained in:
qzed 2019-08-07 17:13:57 +02:00
parent e8a3d85b22
commit fadf055d5f

View file

@ -1,27 +1,36 @@
#!/bin/bash
case $1 in
pre)
# unload the modules before going to sleep
pre) # unload the modules before going to sleep
# handle wifi issues
systemctl stop NetworkManager.service
modprobe -r intel_ipts
modprobe -r mei_me
modprobe -r mei
modprobe -r mwifiex_pcie;
modprobe -r mwifiex;
modprobe -r cfg80211;
## IPTS: see notes below
## > Remove IPTS from ME side
#modprobe -r intel_ipts
#modprobe -r mei_hdcp
#modprobe -r mei_me
#modprobe -r mei
## > Remove IPTS from i915 side
#for i in $(find /sys/kernel/debug/dri -name i915_intel_ipts_cleanup); do echo 1 > $i; done
;;
post)
# need to cycle the modules on a resume and after the reset is called, so unload...
modprobe -r intel_ipts
modprobe -r mei_me
modprobe -r mei
post) # re-load modules after resume
## IPTS: see notes below
## > Load IPTS from i915 side
#for i in $(find /sys/kernel/debug/dri -name i915_intel_ipts_init); do echo 1 > $i; done
## > Load IPTS from ME side
#modprobe mei
#modprobe mei_me
#modprobe mei_hdcp
#modprobe intel_ipts
# handle wifi issues: complete cycle
modprobe -r mwifiex_pcie;
modprobe -r mwifiex;
modprobe -r cfg80211;
# and reload
modprobe -i intel_ipts
modprobe -i mei_me
modprobe -i mei
modprobe -i cfg80211;
modprobe -i mwifiex;
modprobe -i mwifiex_pcie;
@ -29,3 +38,12 @@ case $1 in
systemctl restart NetworkManager.service
;;
esac
# Notes:
# - For IPTS, see
# > https://github.com/jakeday/linux-surface/issues/544#issuecomment-519126757
# for an explanation/discussion. We do not unload/reload modules for now as
# the IPTS drivers should be able to resume/suspend without this. If you
# experience any issues on suspend/resume, please file an appropriate issue or
# join the discussion linked above so that we can fix it. As a temporary
# workaround, you may want to uncomment the IPTS-related lines above.