mbox series

[v4,0/8] wifi: ath12k: add support for WoW

Message ID 20240604055407.12506-1-quic_bqiang@quicinc.com
Headers show
Series wifi: ath12k: add support for WoW | expand

Message

Baochen Qiang June 4, 2024, 5:53 a.m. UTC
Add support for WoW (Wakeup on Wireless) funtionalities, this including
magic-pattern, net-detect, disconnect and patterns, HW data filter, ARP
and NS offload, GTK rekey offload.

Also enable keepalive before suspend to avoid unexpected kick out by AP.

v4:
 - wifi: ath12k: add ATH12K_DBG_WOW log level
	1. update copyright
 - wifi: ath12k: support ARP and NS offload
	1. don't cache idev in _ipv6_changed() callback, but instead back
	   reference it in ath12k_wow_prepare_ns_offload. Also remove
	   _ipv6_changed() since not needed any more.

v3:
 - wifi: ath12k: add ATH12K_DBG_WOW log level
        1. new addition.
 - wifi: ath12k: support ARP and NS offload
        1. move ipv6 infomation parse to ath12k_wow_arp_ns_offload() to
           avoid memory leak issue.
        2. move ARP/NS related definition from core.h to wmi.h
        3. rename ath12k_arp_ns_offlaod to wmi_arp_ns_offload_arg
        4. rename some macros
 - wifi: ath12k: support GTK rekey offload
        1. add rcu_read_lock/unlock in ath12k_wmi_gtk_offload_status_event()


v2:
 - [2/7] wifi: ath12k: add basic WoW functionalities
        1. In ath12k_wow_convert_8023_to_80211(), change to use 'size_t'
           instead of 'int' to make GCC happy
 - [5/7] wifi: ath12k: support ARP and NS offload
        1. In ath12k_mac_arvif_get_arp_ns_offload(), change to use
           GFP_ATOMIC to fix kernel crash due to sleep in invalid context
 - rebased on ToT

Baochen Qiang (8):
  wifi: ath12k: add ATH12K_DBG_WOW log level
  wifi: ath12k: implement WoW enable and wakeup commands
  wifi: ath12k: add basic WoW functionalities
  wifi: ath12k: add WoW net-detect functionality
  wifi: ath12k: implement hardware data filter
  wifi: ath12k: support ARP and NS offload
  wifi: ath12k: support GTK rekey offload
  wifi: ath12k: handle keepalive during WoWLAN suspend and resume

 drivers/net/wireless/ath/ath12k/Makefile |    1 +
 drivers/net/wireless/ath/ath12k/core.c   |   48 +-
 drivers/net/wireless/ath/ath12k/core.h   |   19 +
 drivers/net/wireless/ath/ath12k/debug.h  |    3 +-
 drivers/net/wireless/ath/ath12k/htc.c    |    6 +
 drivers/net/wireless/ath/ath12k/mac.c    |   96 ++
 drivers/net/wireless/ath/ath12k/mac.h    |    4 +
 drivers/net/wireless/ath/ath12k/wmi.c    |  720 +++++++++++++++
 drivers/net/wireless/ath/ath12k/wmi.h    |  578 ++++++++++++
 drivers/net/wireless/ath/ath12k/wow.c    | 1018 ++++++++++++++++++++++
 drivers/net/wireless/ath/ath12k/wow.h    |   62 ++
 11 files changed, 2546 insertions(+), 9 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath12k/wow.c
 create mode 100644 drivers/net/wireless/ath/ath12k/wow.h


base-commit: a116bf2be795eb1db75fa6a48aa85c397be001a6