Using the old script I regulary had the problem, that after resuming
from suspend (or hibernate) the wifi would just break. The only way
to fix it was to restart network manager, or disable it in the GNOME
network settings.
I am not a 100% sure *why*, but this change greatly improved the wifi
stability after resume. I am running this for like 5 days now and
didn't see the wifi breaking once. I suppose, that `modprobe` vs
`modprobe -i` is what makes the difference.
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
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
Note:
NVMe part will be merged into Linux 5.3. Remove the part in
0002-suspend.patch when it arrives.
For 5.2
- (Reverted NVMe part of 0002-suspend.patch to apply following patch set)
- nvme: export get and set features · torvalds/linux@1a87ee6torvalds/linux@1a87ee6
- nvme-pci: use host managed power state for suspend · torvalds/linux@d916b1b
torvalds/linux@d916b1b#diff-bc4c090f021c046a7d256a3fcf86b7da
For 4.19, this patch is also applied
- nvme-pci: Sync queues on reset · torvalds/linux@d6135c3
torvalds/linux@d6135c3#diff-bc4c090f021c046a7d256a3fcf86b7da
See
- Surface Book with Performance Base: NVMe SSD breaks suspend (s2idle) · Issue jakeday#123 · jakeday/linux-surface
jakeday#123
Revert a3a3ed3: "updating 4.19 patches to fix touch and suspend".
Calling intel_ipts_cleanup during suspend causes destroy_doorbell to
fail. Furthermore, removing intel_ipts_cleanup from suspend does not
seem to cause any issues on the Surface Book 1 and 2, and the
introduction of the device link in the previous commit may have fixed
some of the edge-cases/race conditions that may have made this call
necessary in the past. If any issue arises from this, we will deal with
it later in a more subtle way.
See https://github.com/jakeday/linux-surface/issues/544 for an
exhaustive discussion on this.
The newer surface devices Pro 4 and up do not define _PRW to specify
which GPE interrupt belongs to the lid. Thus they may not be marked as
wake-up sources automatically, so we have to do this manually.
This patch ensures that a GPIO driver is loaded and set up before the
button driver can bind to the MSHW0040 device. Without this the driver
may not bind to the MSHW0040 device at all.
Adds a driver for the Surface platform Integration Device (SID) of the
Surface Book 2. This allows for setting the performance-mode, which can
be used to choose between performance-optimized vs. quiet operation.
The performance-mode can be set via the perf_mode sysfs attribute on the
corresponding device (MSHW0107).