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. As those machines work well in Non-WoWLAN suspend mode, the thought here is that we do WoWLAN suspend on Lenovo machines while do non-WoWLAN suspend (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. [1] https://bugzilla.kernel.org/show_bug.cgi?id=219196 Baochen Qiang (5): 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 Reapply "wifi: ath11k: restore country code during resume" drivers/net/wireless/ath/ath11k/ahb.c | 4 +- drivers/net/wireless/ath/ath11k/core.c | 245 +++++++++++++++++++++++-- drivers/net/wireless/ath/ath11k/core.h | 11 ++ 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 | 44 ++++- drivers/net/wireless/ath/ath11k/qmi.c | 4 +- 8 files changed, 301 insertions(+), 40 deletions(-) base-commit: b6f473c96421b8b451a8df8ccb620bcd71d4b3f4 -- 2.25.1