Now that the MHI&QRTR patches [1] are merged, we can add suspend/resume support for ath12k. The whole design is quite similar to that in ath11k: firmware is powered down when going to suspend and powered up when resume, this makes hibernation work as well in addition to suspend. To summary, this series first does some preparations in the first 8 patches. Then in patch [9/10] suspend/resume callbacks are implemented. And at last in [10/10] we enable suspend/resume functionality for WCN7850 because it's the only chip supporting it for now. [1] https://lore.kernel.org/linux-wireless/20240305021320.3367-1-quic_bqiang@xxxxxxxxxxx/ Baochen Qiang (10): wifi: ath12k: rearrange IRQ enable/disable in reset path wifi: ath12k: remove MHI LOOPBACK channels wifi: ath12k: do not dump SRNG statistics during resume wifi: ath12k: fix warning on DMA ring capabilities event wifi: ath12k: decrease MHI channel buffer length to 8KB wifi: ath12k: flush all packets before suspend wifi: ath12k: no need to handle pktlog during suspend/resume wifi: ath12k: avoid stopping mac80211 queues in ath12k_core_restart() wifi: ath12k: support suspend/resume wifi: ath12k: change supports_suspend to true for WCN7850 drivers/net/wireless/ath/ath12k/core.c | 108 ++++++++++++++---------- drivers/net/wireless/ath/ath12k/core.h | 4 + drivers/net/wireless/ath/ath12k/dp_rx.c | 48 ----------- drivers/net/wireless/ath/ath12k/dp_rx.h | 2 - drivers/net/wireless/ath/ath12k/hif.h | 14 ++- drivers/net/wireless/ath/ath12k/hw.c | 2 +- drivers/net/wireless/ath/ath12k/mac.c | 28 ++++-- drivers/net/wireless/ath/ath12k/mac.h | 1 + drivers/net/wireless/ath/ath12k/mhi.c | 91 +++++++------------- drivers/net/wireless/ath/ath12k/mhi.h | 5 +- drivers/net/wireless/ath/ath12k/pci.c | 41 +++++++-- drivers/net/wireless/ath/ath12k/pci.h | 2 +- drivers/net/wireless/ath/ath12k/qmi.c | 3 +- drivers/net/wireless/ath/ath12k/wmi.c | 1 + 14 files changed, 175 insertions(+), 175 deletions(-) base-commit: 363e7193eaf258fe7f04e8db560bd8a282a12cd9 -- 2.25.1