mbox series

[v6,0/3] wifi: ath12k: prepare vif and sta datastructure

Message ID 20240711165511.3100433-1-quic_ramess@quicinc.com (mailing list archive)
Headers show
Series wifi: ath12k: prepare vif and sta datastructure | expand

Message

Rameshkumar Sundaram July 11, 2024, 4:55 p.m. UTC
To prepare the driver for MLO support, split the driver vif and sta
data structure to scale for multiple links. This requires changing
the use of arvif and arsta to per link and not per hw which can now
comprise of multiple links.
Also since most configurations from mac80211 are done per link,
do refactoring of the driver functions to apply these configurations
at link level.
Add the required locking changes to synchronize the usage of these
per link objects.

---
v6:
 - In PATCH 1/3
      - Updated comments about lock usage in ath12k_mac_op_sta_state()
      - on return cases released ah->conf_mutex() before WARN_ON()s
        and error prints in multiple places
v5:
 - Rebased PATCH 1/3 on ToT as few more instances of arvif were introduced.
 - Changed ath12k_vif_to_vif() -> ath12k_ahvif_to_vif() and
   ath12k_sta_to_sta() -> ath12k_ahsta_to_sta()
 - Used ahvif->link[0] instead of deflink as preparation for MLD in
   ath12k_mac_op_sta_rc_update()

v4:
 - Extensive rebase on PATCH 1/3 on ToT as MBSSID changes are
   introduced since v3.
v3:
 - Rebased on ToT

v2:
 - Rebased PATCH 1/3 on ToT as b0afabc4d7e0 (wifi: ath12k: add support to
   handle beacon miss for WCN7850) has introduced few APIs that use
   arvif.

Sriram R (3):
  wifi: ath12k: prepare vif data structure for MLO handling
  wifi: ath12k: pass ath12k_link_vif instead of vif/ahvif
  wifi: ath12k: prepare sta data structure for MLO handling

 drivers/net/wireless/ath/ath12k/core.h   |  91 ++-
 drivers/net/wireless/ath/ath12k/dp.c     |  21 +-
 drivers/net/wireless/ath/ath12k/dp.h     |   3 +-
 drivers/net/wireless/ath/ath12k/dp_mon.c |  14 +-
 drivers/net/wireless/ath/ath12k/dp_rx.c  |  16 +-
 drivers/net/wireless/ath/ath12k/dp_rx.h  |   2 +-
 drivers/net/wireless/ath/ath12k/dp_tx.c  |   9 +-
 drivers/net/wireless/ath/ath12k/dp_tx.h  |   2 +-
 drivers/net/wireless/ath/ath12k/mac.c    | 962 +++++++++++++++--------
 drivers/net/wireless/ath/ath12k/mac.h    |  11 +-
 drivers/net/wireless/ath/ath12k/p2p.c    |  17 +-
 drivers/net/wireless/ath/ath12k/p2p.h    |   2 +-
 drivers/net/wireless/ath/ath12k/peer.c   |   7 +-
 drivers/net/wireless/ath/ath12k/peer.h   |   4 +-
 drivers/net/wireless/ath/ath12k/wmi.c    |  22 +-
 drivers/net/wireless/ath/ath12k/wmi.h    |   8 +-
 drivers/net/wireless/ath/ath12k/wow.c    |  59 +-
 17 files changed, 801 insertions(+), 449 deletions(-)


base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45