Message ID | 20240507045702.2858954-1-quic_hprem@quicinc.com (mailing list archive) |
---|---|
Headers | show |
Series | wifi: ath12k: Introduce device group abstraction | expand |
Harshitha Prem <quic_hprem@quicinc.com> writes: > 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. > > 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. Thanks, after a quick test I don't see the warning anymore.
On 5/6/2024 9:56 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. > > 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 soc to group > > drivers/net/wireless/ath/ath12k/core.c | 433 +++++++++++++++++++++---- > drivers/net/wireless/ath/ath12k/core.h | 87 ++++- > drivers/net/wireless/ath/ath12k/mac.c | 108 ++++-- > drivers/net/wireless/ath/ath12k/mac.h | 9 +- > drivers/net/wireless/ath/ath12k/pci.c | 2 + > drivers/net/wireless/ath/ath12k/qmi.c | 10 +- > 6 files changed, 534 insertions(+), 115 deletions(-) > > > base-commit: 2c4d8e19cf060744a9db466ffbaea13ab37f25ca Gentle reminder that when you post a new version of a previous patchset you should propagate any Acked-by/Reviewed-by/Tested-by/etc tags given to the previous patches unless the patches were modified significantly enough to render those tags invalid (in which case document that in the cover letter). /jeff
On 5/10/2024 7:56 AM, Jeff Johnson wrote: > On 5/6/2024 9:56 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. >> >> 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 soc to group >> >> drivers/net/wireless/ath/ath12k/core.c | 433 +++++++++++++++++++++---- >> drivers/net/wireless/ath/ath12k/core.h | 87 ++++- >> drivers/net/wireless/ath/ath12k/mac.c | 108 ++++-- >> drivers/net/wireless/ath/ath12k/mac.h | 9 +- >> drivers/net/wireless/ath/ath12k/pci.c | 2 + >> drivers/net/wireless/ath/ath12k/qmi.c | 10 +- >> 6 files changed, 534 insertions(+), 115 deletions(-) >> >> >> base-commit: 2c4d8e19cf060744a9db466ffbaea13ab37f25ca > > Gentle reminder that when you post a new version of a previous patchset you > should propagate any Acked-by/Reviewed-by/Tested-by/etc tags given to the > previous patches unless the patches were modified significantly enough to > render those tags invalid (in which case document that in the cover letter). > > /jeff Sure, Thank you Jeff. I will take care of these going forward. Thanks, Harshitha