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

Jeff Johnson
2024-06-03T16:12:09Z

On 5/31/2024 11:04 AM, 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.
>
> v8:
> - Addressed firmware assert issue seen during hibernation scenario in
> "[PATCH v7 7/8] wifi: ath12k: refactor core start based on hardware group"
>
> 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 | 427 +++++++++++++++++++++----
> 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, 540 insertions(+), 133 deletions(-)
>
>
> base-commit: 6e7a5c6d5e38b93f9cc3289d66a597b9a4ca0403

this no longer applies cleanly to ath/master or ath/ath-next,
can you please rebase and repost?