Currently, PCL returns all 5 GHz channel and SCC channel for SAP
when an ML-STA is present. But this may lead to a case
where the CSA request might be for a DFS channel which needs CAC.
This needs a dedicated mac and ML-STA can't move to MLMR in such
cases. When firmware attempts to move STA to MLMR from MLSR,
firmware asserts as the other mac is occupied by DFS SAP for
CAC operation.
So, allow CSA to a DFS channel only if the channel is present in
PCL list as it covers the supported channel list anyway. Fix
policy mgr table entries also by allowing SCC channels only.
Change-Id: I079fa6beea97fcd7c926ad4bd2bf928a0442d146
CRs-Fixed: 3484572
Currently host driver uses wma->interfaces to fetch vdev
info.
This change is to use object manager instead of wma interface
to check vdev info.
Change-Id: I356e002ba6b43382e96c8e2da6d433df68de603b
CRs-Fixed: 3525139
Driver doesn't enable RSO currently for SL + Open auth cases.
Enable the RSO from connect complete path for open auth. Add changes
to enable the RSO only after all the ML links are up in case of
N-link MLO.
Change-Id: Ie3540493660e3605fe6739dc6d7706782b8a78ea
CRs-Fixed: 3509724
Add vdev id sanity check when searching SAP adapter
on DFS channel, to avoid accessing obsolete adapter(s) stopped already.
Change-Id: I0ea565f343e449132de54367566656a6d6f989b0
CRs-Fixed: 3471773
In populate_dot_11_f_ext_chann_switch_ann API, will read current country
code from mac context which is not have the updated country code.
So, read the current country code directly from regulatory API,
wlan_reg_read_current_country.
Remove unused variables mac->scan.countryCodeCurrent,
mac_ptr->scan.countryCodeDefault and tagCsr11dinfo->countryCode.
Change-Id: Ice64ef1be5b775125ff3bcacfcab7684c6833cad
CRs-Fixed: 3529808
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor cmd.
2.Parse new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONTROL_MODE.
3.Restore mlo link(s) state as per driver.
Change-Id: I79327618a007cd1f50ca1eafcb3633bcbac2e13f
CRs-Fixed: 3529507
Currently mlo interfaces are not getting cleaned up properly
during virtual interface delete. During the driver unload
sequence host is cleaning up these link adapters but not
removing the DSC vdevs associated with these which leads
to memory leakage.
To address this issue, de-initialize and close link adapters
during virtual interface delete properly.
Change-Id: I427b9ef5ec82b4ad651bd6d4a36b9fef3f120c99
CRs-Fixed: 3515367
1. Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2. parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_MIXED_MODE_ACTIVE_NUM_LINKS
and get the number of MLO links to operate in the active state.
3. If any of the links is in an inactive state due to concurrency,
we need to reject the request.
4. Host sends to FW via WMI command WMI_MLO_LINK_SET_ACTIVE_CMDID
via the below WMI attributes with mode
WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM and set the wmi flag
control_flags to indicate if FW need to use force link number
instead of force link bitmap.
Change-Id: I7596c4815630563cbc419e0e9df28f1330775334
CRs-Fixed: 3529488
The API uses BSSID in sta_ctx which is per link data structure now.
To request the link speed on each link info, modify the API
to accept link info pointer as argument. The caller can pass
link info pointer corresponding to the sta ctx.
Change-Id: Ideb79265b64d959d6464c5d5bfc9a6380faf3ede
CRs-Fixed: 3520873
Modify the following functions to take link info as function
argument to get the RSSI and SNR values from FW on per link.
The existing callers moved to deflink pointer in adapter.
1) wlan_hdd_get_rssi()
2) wlan_hdd_get_snr()
Change-Id: I2ebefab54192ca7e7672794d446b41a6d0dffec6
CRs-Fixed: 3520838
Modify the API to have link info pointer as function argument
so the caller can request per link stats to query from DP stats.
Existing callers moved to deflink pointer in adapter.
Change-Id: Ie231a7a024d1a05cdb2d9e8cf022c4f5bf3e2947
CRs-Fixed: 3520700
To get the peer Rx stats per link, modify the following API
to take link info argument which corresponds to the VDEV for
which the stats are to be fetched as saved in respective
stats structure in link info pointer.
The existing callers moved to deflink pointer.
1) wlan_hdd_get_peer_rx_rate_stats()
Change-Id: I0c3b1532ef9352f00d871b2c9b3073d72bef1bd4
CRs-Fixed: 3520672
Modify the following API to request station stats on per link
in the adapter. Request and store FW stats corresponding to
the VDEV in the link info structure.
The existing callers moved to deflink pointer.
Change-Id: I6cc9dd7609ce754e2ab7bcb53977aa6637051143
CRs-Fixed: 3520654
To fetch the SAP stats per link, change the function prototype to take
link info pointer as argument. The callers moved to deflink pointer.
Change-Id: I4e5850e055a90ca21cd75deb530dbd179476ba59
CRs-Fixed: 3518207
To save per link big data stats received from FW and later send to
userspace, move the big_data_stats member in adapter to link_info.
Update the existing references to deflink in adapter.
Change-Id: I0b68e60f51c4f7b9dbe996d71754530f53350cb2
CRs-Fixed: 3518185
To query station stats on per link, change the following API
function prototype to pass link info pointer as argument.
The caller can pass the link info corresponding to the link.
The existing calllers moved to deflink.
Change-Id: Iad84be510cfcc3154124d28f6b9902a39e711a8c
CRs-Fixed: 3518094
Modify the following API to take link info pointer as function
argument to fetch per link bcn protect stats.
The existing callers moved to deflink pointer in adapter.
1) hdd_add_pmf_bcn_protect_stats()
Change-Id: I0a09238586c6dbb8b7e7a49ddfb9dca211ff3428
CRs-Fixed: 3517954
To fetch the each link's individual stats, modify the following APIs
to take link info pointer as function argument.
Existing callers moved to deflink pointer in adapter.
1) wlan_hdd_update_rssi()
2) wlan_hdd_update_rate_info()
3) wlan_hdd_get_sta_stats()
Change-Id: I22cfa45c045f4fea0860e756ae088f7889ed4d62
CRs-Fixed: 3517920
Iterate through all link info in adapter to return any VDEV
in connecting state.
If found the API will return link info pointer corresponding
API: hdd_get_sta_connection_in_progress()
Change-Id: I5433ccdf9cb7be26e38ab6523b29009afa3e8c99
CRs-Fixed: 3517822
Modify the following API to return link info pointer where the
matching BSSID is found. As the API iterates all the indices in
the link info array, keep a NULL BSSID check to avoid false match
with uninitialized link info pointer.
The existing callers moved to deflink pointer in adapter.
Change-Id: I6f71344b86d53488c30211be8bef730e133876c2
CRs-Fixed: 3517810
The adapter argument to hdd_cm_rec_connect_info() API is not
referenced anywhere in the function making it obsolete, hence
remove the argument.
Change-Id: I45682ada67bf74f6acafbc5ca1db7f1aa2468dd0
CRs-Fixed: 3517807
Modify the following API to take link info pointer as function
argument to copy the hdd_stats from FW into the corresponding
VDEV stats in adapter.
The existing callers moved to deflink pointer in adapter.
Change-Id: I5a776930e833b2c864eca2c3131d5a69e9b54f81
CRs-Fixed: 3517804
As the APIs retrieve information from per link data structure
changing the function prototype to take link info as argument
so that callers can query for each link info.
Existing APIs changed to deflink pointer in adapter.
1) hdd_is_legacy_connection()
2) hdd_get_tdls_connected_peer_count()
Change-Id: I29bc2b32583ecc7af26e295a6b338b4261b1ed23
CRs-Fixed: 3517800
Modify the following API to configure antenna switch for TDLS
to take link info pointer as function argument.
Pass the link info corresponding to VDEV. The existing callers
moved to deflink pointer in adapter.
API: wlan_hdd_tdls_antenna_switch()
Change-Id: Ic81ca38cea0314767bfc988d013f7f21eaebc40e
CRs-Fixed: 3517796
To get the Tx/Rx NSS configuration per link in adapter, modify
the following function prototype to take link info as argument.
Existing callers moved to deflink pointer.
1) hdd_get_sta_rx_nss()
2) hdd_get_sap_rx_nss()
3) hdd_get_sap_tx_nss()
4) hdd_get_sta_tx_nss()
Change-Id: I735ab21d5c0d49a570721cc2993ab7e7c76a2089
CRs-Fixed: 3517793
Change the function prototype to take link_info pointer
instead of adapter to get per link connected band information.
Existing callers moved to deflink pointer in adapter.
1) hdd_conn_get_connected_band()
2) hdd_get_sap_operating_band_by_adapter()
Change-Id: Ifbfb09dabc8ba2da51bdb704df33fc5b934c15b1
CRs-Fixed: 3517703
Modify the hdd_get_rssi_snr_by_bssid() API to take mac ctx as
function argument directly instead of adapter, so as to save the
RSSI in link info and avoid having adapter in the calling function.
Change-Id: Id783f84266205ac948b4e7d98c37eeea264e0335
CRs-Fixed: 3517698
MACRO: hdd_adapter_for_each_active_link_info()
The new iterator will only iterate through the link info
elements in the link_info array which are set to active.
The bitmap of active link info indices is saved in
active_links member in adapter structure.
MACRO: hdd_adapter_for_each_link_info()
Modify the existing hdd_adapter_for_each_link_entry()
iterator MACRO to have similar prototype as
hdd_adapter_for_each_active_link_info()
Change-Id: I02b8a297ea809f860e041a71c180af2a8f946b3d
CRs-Fixed: 3515068
Configure PCIE Gen Speed and Lane width INI based on the
MCS, BW and TXRX throughput using traffic monitor.
Change-Id: Ie899033dfe54dea1533b47b895bda52deb12d0e9
CRs-Fixed: 3532028
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2.Parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONFIG and get the
link and corresponding link state.
3.Send it to FW via WMI command
WMI_MLO_LINK_SET_ACTIVE_CMDID
Change-Id: I78a055f4a9fb60ccce106f9e4761fbf6d4d2f262
CRs-Fixed: 3529456
When roamed from mlo to single link, link vdev1 disconnected, assoc vdev0
RSO is disabled, after vdev1 disconnected, even vdev0 RSO is enabled again,
roam scan channel list is trimmed.
To fix it, when link vdev disconnect, just stop RSO, don't disable RSO,
roam scan channel list won't be trimmed.
Disable RSO only when assoc vdev disconnect.
Change-Id: Ie624cffa3acaebcd73abb7be54ce1016e88447f6
CRs-Fixed: 3522793
In current scenario during OWE roaming when HB failure occurs, it
should clean copied reassoc response and roaming info. But it is not
getting freed which leads to host driver crash while on idle shutdown.
In mlo_roam_copy_reassoc_rsp() memory is allocated for
sta_ctx->cpied_reassoc_rsp, sta_ctx->cpied_reassoc_rsp->roaming_info
and connect_ies->assoc_rsp.ptr but if memory allocation fails for
these it directly retuning without feeing previously allocated memory.
Add change to free the prevoiusly allocated memory if memory
sta_ctx->cpied_reassoc_rsp->roaming_info and connect_ies->assoc_rsp.ptr
fails to allocate memory which avoid the memory leak issue.
Change-Id: I7ca6ee526bf08c614ff25e4c3457db0dd58fc9aa
CRs-Fixed: 3507296
Currently policy_mgr_modify_sap_pcl_for_6G_channels() only find the
first STA or P2P-CLI, then check its channel is 6 GHz or not,
It will lead to different behavior if there is MLO STA which has one
link connected on 6 GHz, sometime PCL modify for 6 GHz channels,
sometime not.
Change to find first 6 GHz STA or P2P-CLI, only if has, continue to
do 6 GHz channels modify.
Change-Id: I96d01ded297fb900f0ea715b75cbdadb9faade3d
CRs-Fixed: 3526650
Add pld_pcie_set_tsf_sync_period and pld_reset_tsf_sync_period to
update time sync period vote from wlan driver based on use-case
e.g. tsf sync start / stop. Extend gtsf_ptp_options ini config
to control this functionality.
Change-Id: Ie4a6c80beccd6d315c9f3b31263de7f3b8e0ac2a
CRs-Fixed: 3501976
320 MHz channel has overlap between adjacent bonding, so the certer
frequency is not unique, it will check fail if check certer frequency
differ and may not included as a valid bonding.
Remove certer frequency check when doing ACS at 320 MHz.
Fix static analyze error in this file.
Change-Id: Icf500e92ebe64071737161ac1e5a0d22f2a0e08d
CRs-Fixed: 3509363