On 4/24/2024 10:57 PM, Harshitha Prem wrote: > From: Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> > > Currently, hardware abstractions (ah) of different radio bands > are tightly coupled to a single device (ab). But, with hardware > device group abstraction (ag), multiple radios across different > devices in a group can possibly form different combinations of > hardware abstractions (ah) within the group. Hence, the mapping > between ah to ab can be removed and instead it can be mapped with ag. > > Please find below illustration of how mapping between ath12k_hw (ah), > ath12k_base (ab) and ath12k_hw_group (ag) is changed. > > current mapping of hardware abstraction (ah) with device (ab) > +------------------------------------------------+ > | +-------------------------------------+ | > | | +---------------+ +---------------+ | | > | | |ath12k_hw (ah) | |ath12k_hw (ah) | | | > | | +---------------+ +---------------+ | | > | | | | > | | +-----------+ | +-----------+ | | > | | | ar (2GHz) | | | ar (5GHz) | | | > | | +-----------+ | +-----------+ | | > | | Dual band device-1 (ab) | | > | +-------------------------------------+ | > | ath12k_hw_group (ag) based on group id | > +------------------------------------------------+ > > After, with hardware device group abstraction > (moving ah array out of ab to ag) > +----------------------------------------------+ > | +---------------+ +---------------+ | > | |ath12k_hw (ah) | |ath12k_hw (ah) | | > | +---------------+ +---------------+ | > | +-------------------------------------+ | > | | +-----------+ +-----------+ | | > | | | ar (2GHz) | | ar (5GHz) | | | > | | +-----------+ +-----------+ | | > | | Dual band device-1 (ab) | | > | +-------------------------------------+ | > | ath12k_hw_group (ag) based on group id | > +----------------------------------------------+ > > This decoupling of ath12k_hw (ah) from ath12k_base (ab) and mapping it > to ath12k_hw_group (ag) will help in forming different combinations of > multi-link devices. > > Say for example, device 1 has two radios (2 GHz and 5 GHz band) and > device 2 has one radio (6 GHz). > > In existing code - > device 1 will have two hardware abstractions hw1 (2 GHz) and > hw2 (5 GHz) will be registered separately to mac80211 as phy0 > and phy1 respectively. Similarly, device 2 will register its > hw (6 GHz) as phy2 to mac80211. > > In future, with multi-link abstraction > > combination 1 - Different group id for device1 and device 2 > Device 1 will create a single hardware abstraction hw1 > (2 GHz and 5 GHz) and will be registered to mac80211 as > phy0. similarly, device 2 will register its hardware > (6 GHz) to mac80211 as phy1. > > combination 2 - Same group id for device1 and device 2 > Both device details are combined together as a group, say > group1, with single hardware abstraction of radios 2 GHz, > 5 GHz and 6 GHz band details and will be registered to > mac80211 as phy0. > > Hence, Add changes to decouple ath12k_hw (ah) from ath12k_base (ab) and > map it to ath12k_hw_group (ag). > > Refactor the following APIs to help simplify the registration based on > ath12k_hw_group (ag) rather than ath12k_base (ab) > * ath12k_mac_allocate() > * ath12k_mac_destroy() > * ath12k_mac_register() > * ath12k_mac_unregister() > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx> > Signed-off-by: Harshitha Prem <quic_hprem@xxxxxxxxxxx> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>