diff --git a/modules/wowlan.nix b/modules/wowlan.nix index 69e42bca..7163a680 100644 --- a/modules/wowlan.nix +++ b/modules/wowlan.nix @@ -56,6 +56,10 @@ # - CONFIG_ROAMING_FLAG = 0x3 # - may fail to wake on LAN, even without any signature like the above # - observed after a suspension of 10 minutes, trying to contact from laptop (laptop would have previously not contacted moby) +# - in many cases the wake reason is still 0x23, even as it sleeps for the whole alloted 300s. +# - then it's likely a race condition with the WiFi chip raising the wake signal *as* the CPU is falling asleep, and the CPU misses it. +# - this is testable: phone would wake 100% if all networked services are disabled (so it's not receiving packets near the time it enters sleep) +# - TODO: change the wake event from edge-triggered to level-triggered. # - may disassociate from WiFi and *refuse to reassociate even via nmtui, restarting NetworkManager/wpa_supplicant/polkit* # - solution is `modprobe -r 8723cs && modprobe 8723cs`, then way a couple minutes. # - possible this only happens when the driver is compiled with CONFIG_GTK_OL (or CONFIG_ARP_KEEP_ALIVE). diff --git a/pkgs/additional/linux-megous/default.nix b/pkgs/additional/linux-megous/default.nix index 9d08975a..dccead12 100644 --- a/pkgs/additional/linux-megous/default.nix +++ b/pkgs/additional/linux-megous/default.nix @@ -159,7 +159,8 @@ let # this patch just uncomments some commented-out #defines. # they were commented out from the first time megi imported this driver, never touched. # this may be problematic, occasionally requiring a driver re-probe. see other notes on wowlan/8723cs. - # if continued errors, try removing the CONFIG_GTK_OL and keeping just CONFIG_ARP_KEEP_ALIVE + # if continued errors, try removing the CONFIG_GTK_OL and keeping just CONFIG_ARP_KEEP_ALIVE. + # seems to infrequently disrupt waking on ARP packets, as well. name = "enable-wowlan-offloads"; patch = fetchpatch { url = "https://git.uninsane.org/colin/linux/commit/c4d2d12e31ae70bb43c6190eccc49e42ad645090.patch";