[PATCH v5 8/8] wifi: ath12k: move ath12k_hw from per soc to group

Harshitha Prem quic_hprem at quicinc.com
Sun May 26 21:43:57 PDT 2024



On 5/23/2024 1:28 AM, Jeff Johnson wrote:
> On 5/22/2024 2:54 AM, Harshitha Prem wrote:
>> From: Karthikeyan Periyasamy <quic_periyasa at quicinc.com>
>>
>> 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 at quicinc.com>
>> Signed-off-by: Harshitha Prem <quic_hprem at quicinc.com>
> Acked-by: Jeff Johnson <quic_jjohnson at quicinc.com>
> 

Thanks Jeff.

With this patch seeing below smatch error:

drivers/net/wireless/ath/ath12k/mac.c:8918 ath12k_mac_hw_allocate() 
error: uninitialized symbol 'ab'.
   CC [M]  drivers/net/wireless/ath/ath12k/reg.o
   CHECK   drivers/net/wireless/ath/ath12k/reg.c

Will fix it in next patchset.

Regards,
Harshitha



More information about the ath12k mailing list