On 3/27/2025 1:48 AM, Julian Wollrath wrote: > Hi, > > Am Mi, 26 Mär 2025 09:33:04 +0800 > schrieb Baochen Qiang <quic_bqiang@xxxxxxxxxxx>: > >> To handle the Lenovo unexpected wakeup issue [1], previously we revert >> commit 166a490f59ac ("wifi: ath11k: support hibernation"). However we >> need to bring it back, of course with additional changes such that >> Lenovo machines would not break. >> >> For suspend (S3), as those machines work well in WoWLAN mode, the >> thought here is that we put WLAN target into WoWLAN mode on those >> machines while into non-WoWLAN mode (which is done in the reverted >> commit) on other machines. This requires us to identify Lenovo >> machines from others. For that purpose, read machine info from DMI >> interface, match it against all known affected machines. If there is >> a match, choose WoWLAN suspend mode, else choose non-WoWLAN mode. >> This is done in patches [1 - 4/6] >> >> For hibernation (S4), non-WoWLAN mode is chosen for all machines. The >> unexpected wakeup issue should not happen in this mode, since WLAN >> target power is cut off. To know if the system is going to suspend or >> to hibernate, register a notifier such that kernel can notify us of >> such infomation. This is done in patch [5/6] > > with this, I just want to confirm, everything now works as expected > after hibernation. Thank you for testing. > > > Best regards, > Julian > >> >> The last patch bring the reverted "wifi: ath11k: restore country code >> during resume" commit back. >> >> [1] https://bugzilla.kernel.org/show_bug.cgi?id=219196 >> >> Signed-off-by: Baochen Qiang <quic_bqiang@xxxxxxxxxxx> >> --- >> Changes in v2: >> - fix compile warnings >> - support hibernation on Lenovo machines listed in quirk table >> - Link to v1: >> https://lore.kernel.org/linux-wireless/20250320023003.65028-1-quic_bqiang@xxxxxxxxxxx/ >> >> --- >> Baochen Qiang (6): >> wifi: ath11k: determine PM policy based on machine model >> wifi: ath11k: introduce ath11k_core_continue_suspend_resume() >> wifi: ath11k: refactor ath11k_core_suspend/_resume() >> wifi: ath11k: support non-WoWLAN mode suspend as well >> wifi: ath11l: choose default PM policy for hibernation >> Reapply "wifi: ath11k: restore country code during resume" >> >> drivers/net/wireless/ath/ath11k/ahb.c | 4 +- >> drivers/net/wireless/ath/ath11k/core.c | 294 >> ++++++++++++++++++++++++++++++--- >> drivers/net/wireless/ath/ath11k/core.h | 16 ++ >> drivers/net/wireless/ath/ath11k/hif.h | 14 +- >> drivers/net/wireless/ath/ath11k/mhi.c | 14 +- >> drivers/net/wireless/ath/ath11k/mhi.h | 5 +- >> drivers/net/wireless/ath/ath11k/pci.c | 45 ++++- >> drivers/net/wireless/ath/ath11k/qmi.c | 4 +- 8 files changed, 350 >> insertions(+), 46 deletions(-) --- >> base-commit: b6f473c96421b8b451a8df8ccb620bcd71d4b3f4 >> change-id: 20250324-ath11k-bring-hibernation-back-e11ad8e82adf >> >> Best regards, > > >