Message ID | 20250522-ath12k-sbs-dbs-v1-0-54a29e7a3a88@quicinc.com |
---|---|
Headers | show |
Series | wifi: ath12k: handle link select and inactivate | expand |
On 5/22/2025 2:24 PM, Baochen Qiang wrote: > Currently host activate all useful links: > > ieee80211_set_active_links(vif, ieee80211_vif_usable_links(vif)) > > this leads to 2 issues: > > 1#: If 2 links are created/activated on the same device, and both channels > used by them fall on the same hardware MAC, throughput would be lower > compared with even one link due to MAC switching between them. > > 2#: If there are more than 2 useful links, WCN7850 firmware crashes when > host tries to bringup the 3rd link, because firmware supports at most 2 > links for a ML connection. > > To address the first issue, host needs to send > WMI_MLO_LINK_SET_ACTIVE_CMDID command to firmware such that firmware can > deactivate one of the links. This is done in patches 4 and 5. > > To address the second issue, host needs to make decision to select 2 > links out of the useful links to activate. This is done in patch 6. > > The link select and inactivate are both based on the knowledge of hardware > modes, which are advertised by firmware in WMI_SERVICE_READY_EXT_EVENTID > and WMI_SERVICE_READY_EXT2_EVENTID events. Such preparation work is done > in the first three patches. > > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> > --- > Baochen Qiang (6): > wifi: ath12k: parse and save hardware mode info from WMI_SERVICE_READY_EXT_EVENTID event for later use > wifi: ath12k: parse and save sbs_lower_band_end_freq from WMI_SERVICE_READY_EXT2_EVENTID event > wifi: ath12k: update freq range for each hardware mode > wifi: ath12k: support WMI_MLO_LINK_SET_ACTIVE_CMDID command > wifi: ath12k: update link active in case two links fall on the same MAC > wifi: ath12k: don't activate more links than firmware supports > > drivers/net/wireless/ath/ath12k/core.h | 6 + > drivers/net/wireless/ath/ath12k/mac.c | 364 +++++++++++++++- > drivers/net/wireless/ath/ath12k/mac.h | 2 + > drivers/net/wireless/ath/ath12k/wmi.c | 759 ++++++++++++++++++++++++++++++++- > drivers/net/wireless/ath/ath12k/wmi.h | 180 +++++++- > 5 files changed, 1305 insertions(+), 6 deletions(-) Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Currently host activate all useful links: ieee80211_set_active_links(vif, ieee80211_vif_usable_links(vif)) this leads to 2 issues: 1#: If 2 links are created/activated on the same device, and both channels used by them fall on the same hardware MAC, throughput would be lower compared with even one link due to MAC switching between them. 2#: If there are more than 2 useful links, WCN7850 firmware crashes when host tries to bringup the 3rd link, because firmware supports at most 2 links for a ML connection. To address the first issue, host needs to send WMI_MLO_LINK_SET_ACTIVE_CMDID command to firmware such that firmware can deactivate one of the links. This is done in patches 4 and 5. To address the second issue, host needs to make decision to select 2 links out of the useful links to activate. This is done in patch 6. The link select and inactivate are both based on the knowledge of hardware modes, which are advertised by firmware in WMI_SERVICE_READY_EXT_EVENTID and WMI_SERVICE_READY_EXT2_EVENTID events. Such preparation work is done in the first three patches. Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> --- Baochen Qiang (6): wifi: ath12k: parse and save hardware mode info from WMI_SERVICE_READY_EXT_EVENTID event for later use wifi: ath12k: parse and save sbs_lower_band_end_freq from WMI_SERVICE_READY_EXT2_EVENTID event wifi: ath12k: update freq range for each hardware mode wifi: ath12k: support WMI_MLO_LINK_SET_ACTIVE_CMDID command wifi: ath12k: update link active in case two links fall on the same MAC wifi: ath12k: don't activate more links than firmware supports drivers/net/wireless/ath/ath12k/core.h | 6 + drivers/net/wireless/ath/ath12k/mac.c | 364 +++++++++++++++- drivers/net/wireless/ath/ath12k/mac.h | 2 + drivers/net/wireless/ath/ath12k/wmi.c | 759 ++++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath12k/wmi.h | 180 +++++++- 5 files changed, 1305 insertions(+), 6 deletions(-) --- base-commit: db5a2f8ef8d4be926d29ed62182d003110c1a6ca change-id: 20250520-ath12k-sbs-dbs-890937668e4f Best regards,