linux/drivers/net/wireless/ath/ath11k
Carl Huang d1b0c33850 ath11k: implement suspend for QCA6390 PCI devices
Now that all the needed pieces are in place implement suspend support QCA6390
PCI devices. All other devices will return -EOPNOTSUPP during suspend. The
suspend is implemented by switching the firmware to WoW mode during suspend, so
the firmware will be running on low power mode while host is in suspend.

At the moment we are not able to shutdown and fully power off the device due to
bugs in MHI subsystem, so WoW mode is a workaround for the time being.

During suspend we enable WoW mode, disable CE irq and DP irq, then put MHI to
suspend state.  During resume, driver resumes MHI firstly, then enables CE irq
and dp IRQ, and sends WoW wakeup command to firmware.

Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1

Signed-off-by: Carl Huang <cjhuang@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1607708150-21066-11-git-send-email-kvalo@codeaurora.org
2020-12-12 06:41:44 +02:00
..
ahb.c ath11k: fix rmmod failure if qmi sequence fails 2020-12-09 09:00:29 +02:00
ahb.h ath11k: Remove rproc references from common core layer 2020-09-21 16:11:28 +03:00
ce.c ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
ce.h ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
core.c ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
core.h ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
dbring.c ath11k: hal: create hw_srng_config dynamically 2020-08-17 13:18:38 +03:00
dbring.h ath11k: Add direct buffer ring support 2020-06-15 17:21:52 +03:00
debug.c ath11k: refactor debugfs code into debugfs.c 2020-09-22 10:41:41 +03:00
debug.h ath11k: refactor debugfs code into debugfs.c 2020-09-22 10:41:41 +03:00
debugfs.c ath11k: fix rmmod failure if qmi sequence fails 2020-12-09 09:00:29 +02:00
debugfs.h ath11k: fix undefined reference to 'ath11k_debugfs_htt_ext_stats_handler' 2020-09-25 19:09:48 +03:00
debugfs_htt_stats.c ath11k: debugfs: move some function declarations to correct header files 2020-09-22 10:41:49 +03:00
debugfs_htt_stats.h ath11k: fix undefined reference to 'ath11k_debugfs_htt_ext_stats_handler' 2020-09-25 19:09:48 +03:00
debugfs_sta.c ath11k: debugfs: move some function declarations to correct header files 2020-09-22 10:41:49 +03:00
debugfs_sta.h ath11k: debugfs: move some function declarations to correct header files 2020-09-22 10:41:49 +03:00
dp.c ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
dp.h ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
dp_rx.c ath11k: dp: stop rx pktlog before suspend 2020-12-12 06:41:31 +02:00
dp_rx.h ath11k: dp: stop rx pktlog before suspend 2020-12-12 06:41:31 +02:00
dp_tx.c ath11k: Don't cast ath11k_skb_cb to ieee80211_tx_info.control 2020-12-02 20:19:00 +02:00
dp_tx.h
hal.c ath11k: remove unnecessary casts to u32 2020-10-01 22:33:20 +03:00
hal.h ath11k: start a timer to update TCL HP 2020-10-01 22:33:09 +03:00
hal_desc.h ath11k: Fix the hal descriptor mask 2020-11-07 10:05:02 +02:00
hal_rx.c ath11k: start a timer to update REO cmd ring 2020-10-01 22:33:12 +03:00
hal_rx.h ath11k: add packet log support for QCA6390 2020-10-01 22:32:04 +03:00
hal_tx.c ath11k: hal: create hw_srng_config dynamically 2020-08-17 13:18:38 +03:00
hal_tx.h ath11k: Remove bus layer includes from upper layer 2020-05-11 15:35:06 +03:00
hif.h ath11k: hif: add ce irq enable and disable functions 2020-12-12 06:41:41 +02:00
htc.c ath11k: set credit_update flag for flow controlled ep only 2020-12-12 06:41:34 +02:00
htc.h ath11k: htc: implement suspend handling 2020-12-12 06:41:28 +02:00
hw.c ath11k: fix wmi init configuration 2020-11-07 10:05:37 +02:00
hw.h ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
Kconfig ath11k: use remoteproc only with AHB devices 2020-08-17 13:07:17 +03:00
mac.c ath11k: dp: stop rx pktlog before suspend 2020-12-12 06:41:31 +02:00
mac.h ath11k: remove "ath11k_mac_get_ar_vdev_stop_status" references 2020-11-24 18:04:37 +02:00
Makefile ath11k: implement WoW enable and wakeup commands 2020-12-12 06:41:37 +02:00
mhi.c ath11k: mhi: hook suspend and resume 2020-12-12 06:41:16 +02:00
mhi.h ath11k: mhi: hook suspend and resume 2020-12-12 06:41:16 +02:00
pci.c ath11k: implement suspend for QCA6390 PCI devices 2020-12-12 06:41:44 +02:00
pci.h ath11k: pci: disable VDD4BLOW 2020-12-12 06:40:20 +02:00
peer.c ath11k: peer delete synchronization with firmware 2020-11-24 18:04:34 +02:00
peer.h ath11k: peer delete synchronization with firmware 2020-11-24 18:04:34 +02:00
qmi.c ath11k: fix rmmod failure if qmi sequence fails 2020-12-09 09:00:29 +02:00
qmi.h ath11k: cold boot calibration support 2020-11-07 10:01:46 +02:00
reg.c ath11k: Add new dfs region name for JP 2020-11-07 10:06:12 +02:00
reg.h ath11k: Add new dfs region name for JP 2020-11-07 10:06:12 +02:00
rx_desc.h ath11k: remove repeated words in comments and warnings 2020-10-28 15:44:04 +02:00
spectral.c ath11k: Add support spectral scan for IPQ6018 2020-09-22 10:42:36 +03:00
spectral.h ath11k: add support for spectral scan 2020-06-15 17:21:54 +03:00
testmode.c ath11k: remove repeated words in comments and warnings 2020-10-28 15:44:04 +02:00
testmode.h
testmode_i.h
thermal.c net: ath11k: constify ath11k_thermal_ops 2020-08-26 16:21:17 -07:00
thermal.h ath11k: fix compiler warnings without CONFIG_THERMAL 2020-04-06 17:21:23 +03:00
trace.c
trace.h ath11k: add pktlog checksum in trace events to support pktlog 2020-04-06 19:15:50 +03:00
wmi.c ath11k: implement WoW enable and wakeup commands 2020-12-12 06:41:37 +02:00
wmi.h ath11k: implement WoW enable and wakeup commands 2020-12-12 06:41:37 +02:00
wow.c ath11k: implement WoW enable and wakeup commands 2020-12-12 06:41:37 +02:00
wow.h ath11k: implement WoW enable and wakeup commands 2020-12-12 06:41:37 +02:00