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. --- 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 | 89 ++- 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 | 921 +++++++++++++++-------- drivers/net/wireless/ath/ath12k/mac.h | 9 +- 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 | 12 +- 15 files changed, 728 insertions(+), 400 deletions(-) base-commit: e72048809ec7355a947415ae6836d2eb7fdcda39 -- 2.34.1