Search Linux Wireless

Re: [PATCH v7 0/8] wifi: ath12k: Introduce device group abstraction

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

 




On 5/29/2024 6:04 AM, Jeff Johnson wrote:
> On 5/27/2024 11:35 PM, Harshitha Prem wrote:
>> To support multi-link operation, multiple devices with different bands say
>> 2 GHz or 5 GHz or 6 GHz can be combined together as a group and provide
>> an abstraction to mac80211.
>>
>> Device group abstraction - when there are multiple devices that are
>> connected by any means of communication interface between them, then these
>> devices can be combined together as a single group using a group id to form
>> a group abstraction. In ath12k driver, this abstraction would be named as
>> ath12k_hw_group (ag).
>>
>> Please find below illustration of device group abstraction with two
>> devices.
>>
>>                  Grouping of multiple devices (in future)
>> +------------------------------------------------------------------------+
>> |  +-------------------------------------+       +-------------------+   |
>> |  |   +-----------+ | | +-----------+   |       |   +-----------+   |   |
>> |  |   | ar (2GHz) | | | | ar (5GHz) |   |       |   | ar (6GHz) |   |   |
>> |  |   +-----------+ | | +-----------+   |       |   +-----------+   |   |
>> |  |          ath12k_base (ab)           |       | ath12k_base (ab)  |   |
>> |  |         (Dual band device)          |       |                   |   |
>> |  +-------------------------------------+       +-------------------+   |
>> |                 ath12k_hw_group (ag) based on group id                 |
>> +------------------------------------------------------------------------+
>>
>> 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 (6GHz) 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.
>>
>> Add base infrastructure changes to add device grouping abstraction with
>> a single device.
>>
>> This patch series brings the base code changes with following order:
>>         1. Refactor existing code which would facilitate in introducing
>>            device group abstraction.
>>         2. Create a device group abstraction during device probe.
>>         3. Start the device group only after QMI firmware ready event is
>>            received for all the devices that are combined in the group.
>>         4. Move the hardware abstractions (ath12k_hw - ah) from device
>>            (ath12k_base - ab) to device group abstraction (ag) as it would
>>            ease in having different combinations of group abstraction that
>>            can be registered to mac80211.
>>
>> v7:
>>    - Added linux-wireless mailer to cc.
>>    - Removed Acked-by tag from "[PATCH v6 8/8]" as it has minor change.
>>
>> v6:
>>   - Addressed smatch error seen on "[PATCH v5 8/8] wifi: ath12k: move
>>     ath12k_hw from per soc to group"
>>   - Rebased to ToT
>> v5:
>>   - on "[PATCH 8/8] wifi: ath12k: move ath12k_hw from per soc to
>>     group", refactor the ath12k_mac_hw_allocate() api based on ag rather
>>     than ab and update hardware abstraction array size in ath12k_hw_group
>>     as ATH12K_GROUP_MAX_RADIO.
>>   - Rebased to ToT
>> v4:
>>   - Modified the cover letter
>> v3:
>>   - Removed depends-on tag of "wifi: ath12k: Refactor the hardware recovery
>>     procedures" as it is merged to ToT
>>   - Addressed the deadlock warning seen during rmmod.
>>
>> v2:
>>  - Rebased to ToT
>>
>> Karthikeyan Periyasamy (8):
>>   wifi: ath12k: Refactor core start api
>>   wifi: ath12k: Add helpers to get or set ath12k_hw
>>   wifi: ath12k: Add ath12k_get_num_hw api
>>   wifi: ath12k: Introduce QMI firmware ready flag
>>   wifi: ath12k: move ATH12K_FLAG_REGISTERED flag set to mac_register api
>>   wifi: ath12k: Introduce device group abstraction
>>   wifi: ath12k: refactor core start based on hardware group
>>   wifi: ath12k: move ath12k_hw from per device to group
>>
>>  drivers/net/wireless/ath/ath12k/core.c | 431 +++++++++++++++++++++----
>>  drivers/net/wireless/ath/ath12k/core.h |  87 ++++-
>>  drivers/net/wireless/ath/ath12k/dp.c   |  19 +-
>>  drivers/net/wireless/ath/ath12k/dp.h   |   2 +-
>>  drivers/net/wireless/ath/ath12k/mac.c  | 117 ++++---
>>  drivers/net/wireless/ath/ath12k/mac.h  |   9 +-
>>  drivers/net/wireless/ath/ath12k/pci.c  |   2 +
>>  drivers/net/wireless/ath/ath12k/qmi.c  |  10 +-
>>  8 files changed, 544 insertions(+), 133 deletions(-)
>>
>>
>> base-commit: f8320064a28242448eeb9fece08abd865ea8a226
> 
> With this series I'm seeing a firmware crash upon resume from hibernation, but 
> I'm not sure if it is the same intermittent crash I reported in another thread 
> where firmware is not correctly handling a low physical memory address.
> 
> Baochen & Kalle, since this issue may be specific to my laptop, can you 
> validate hibernation on your setups?
I can also see a firmware crash upon resume. I am using ath-202405281746 as code base.
> 




[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