Search Linux Wireless

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@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>
Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>


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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux