Currently the command to get nss checks the max capability
of enable 2x2, and if the capability is 1, and the
hw mode is currently DBS, it lowers the nss capability
to 1 which is expected in helium, but not in hastings.
Fix is to check whether the device supports DBS 2x2
capability and then only downgrade the value of nss.
Change-Id: I18acef455c0790862ba786f87af776b65646aca6
CRs-Fixed: 2557587
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.
An example of this issue is seen when the following happens in parallel.
1. del_virtual_interface -> hdd_remove_adapter -> removes node
2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration
To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.
Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_get_phy_mode_band_for_bss
Change-Id: I98be07f9bcca3b85fd1dedbc532fc9810a8d5e4d
CRs-Fixed: 2560010
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.
Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.
Change-Id: I6240b8ae2f0c7389c43dd310d894a35411503d6e
CRs-Fixed: 2550431
Add the support for the ini gTDLSDiscoveryWakeTimeout.
with this ini gTDLSDiscoveryWakeTimeout, FW will be awake
for configured value after sending the discovery request.
Change-Id: I194e5c99972968bbaa46ffb6b8e83604bff15a0a
CRs-Fixed: 2546515
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.
Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.
Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_chk_lnk_set_ctx_rsp
Change-Id: Ia96b78406fc09d0ee4383a446bdd5e09d8f7f12c
CRs-Fixed: 2559993
In DBS scenario(SAP + STA) when all SPA clients disconnect, while STA is
still connected, IPA pipes are disabled on the lithium target. At this
time, its possible that some packets TX from IPA over WLAN are still
pending. If these completions come after IPA pipes are disabled, it can
lead to a NOC error, since the GSI doorbell register for WBM2SW2 ring
may be clock gated (after IPA pipes are disabled).
To avoid this situation, wait for some time before disabling IPA pipes.
IPA pipes are disabled after a timeout, when system suspend call tries
to suspend the bus. A driver unload or a softap tear-down will also
disable the pipes.
Change-Id: I542049fa19d0dcf5c31d9b8a2d836388847dd6c1
CRs-Fixed: 2553670
Presently as part of the vdev creation the self peer for the vdev
is created in the object manager and in the firmware. The self
peer creation in the object manager needs the vdev to be in the
created state. As part of new changes to send the vdev create to
firmware as part of the vdev creation notification there will be
failure in creating in the self peer.
Hence, drive the self peer creation from the SME layer which will
create the vdev.
Change-Id: I0875f4ec5bd96438c0f21056e1d6920d3be2a177
CRs-Fixed: 2555868
The datapath vdev handle is not to be used outside
datapath layer. So the cdp api for getting txrx stats
will pass vdev_id instead of the vdev handle.
Pass vdev id instead of vdev handle for the cdp api
used to get txrx stats.
CRs-Fixed: 2560363
Change-Id: I761966c2a7c7145e511b679556477beea74eda06
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_is_valid_channel
Change-Id: Ie0c912459daf8bcd907b27a288ad82edd18c22f1
CRs-Fixed: 2554177
1. Add whunt_defconfig for whunt target. New Features can be
enabled in it to run related whunt test cases.
2. Enable CONFIG_BAND_6GHZ and CONFIG_WLAN_FEATURE_11AX
for whunt 6GHz test.
Change-Id: I63b84086cbf28e1fe3ab44bedb4977e73212af29
CRs-Fixed: 2550575
In the REO status callback function for RX tid delete if the
cache flush cmd is not sent successfully to REO, add the REO
descriptor back to the free desc list and defer the deletion
to the callback function.
Changes are made under MCL feature flag REO_DESC_DEFER_FREE.
Change-Id: Ib6c077ebf763ab8feb4c45c17ff37d03252fe093
CRs-Fixed: 2558052
The mechanism of overriding ARP frames with AC will not work since
firmware always defaults to BE. Since this overriding is not going to
be supported, remove the arp_ac_category INI and all areas that use it.
Change-Id: I8bff251ded5842f3d0c95bb916eb98a051696ae0
CRs-Fixed: 2555459
Modify the following API' code and parameters to make
sure it is using frequency instead of channel:
csr_add_to_occupied_channels
Change-Id: I002b4d4fe08ee14c8daa3ed113a030d5ab0f5557
CRs-Fixed: 2554988
1) Change hdd_parse_plm_cmd's code to populate frequency
list instead of channel ID list into struct
plm_req_params.
2) Use frequencies instead of channel IDs in the following
APIs' parameter/code:
sme_set_plm_request
csr_is_supported_channel
3) Stop populating channel freq list in function
wma_plm_start, as the frequency list will be included
in struct plm_req_params automatically.
Change-Id: I6704752317248ac4cfe800629d777f4a127e7be7
CRs-Fixed: 2560088
1) Change csr_get_cfg_valid_channels's code to make it
use channel frequencies directly to calculate a
valid channel list.
2) Add kernel-doc for csr_get_cfg_valid_channels.
3) Remove the definition, declaration and usage of
csr_get_cfg_valid_freq as csr_get_cfg_valid_channels
does exactly the same job.
Change-Id: I6745cb2220bf9387c64ac8c271297cb89f821ab3
CRs-Fixed: 2560091
In non concurrency scenario with TDLS Offchan link, FW is sending
two pauses namely PAUSE_TYPE_CHOP and PAUSE_TYPE_CHOP_TDLS_OFFCHAN
back to back when DUT dwells between TDLS Off channel and AP channel
respectively. HOST handles these events as vdev based event instead
of peer based event and remove all the tx queues from scheduler for
all the peer irrespective of the pause type. This will lead to data
stall in TDLS offchan scenarios, as at any point of time, host will
be receiving one of the two pauses and keep its peer queues out of
scheduler.
Changes are done to decouple the handling of pause/unpause events
for TDLS peers with Offchan enabled from vdev based pause/unpause.
TDLS peers will be paused/unpaused based on PAUSE_TYPE_CHOP_TDLS_OFFCHAN
pause type. Other pause/unpause events will be handled as usual.
Change-Id: Iccb46fd6d121d5df6d53633c9978ddc8e02f588f
CRs-Fixed: 2558612
On detecting RADAR, if SAP / GO is operating on DFS channel, host
driver updates Beacon / Probe response template with CSA / ECSA IE
to firmware.
Once the count in CSA IE is reached to 0, host should remove these
IEs from both Beacon / Probe response template and send it to FW.
But with INI gDisableDFSChSwitch=1, After detecting RADAR, host
driver updates the Beacon and Probe response template with (E)CSA
IEs but doesn't remove these after count reaches to 0.
Updated the code to remove these IEs when INI gDisableDFSChSwitch
is set.
Change-Id: I91ea557b23a9bbd01dbad32a21ea4a21d43dc8fe
CRs-Fixed: 2552192
Change the log level to debug for HE operation IE information and
check for 6G session to log 6G operation IE information.
Change-Id: I9bcad23022253438381a68fe37f68d525d265035
CRs-Fixed: 2552012
Modify the following API's code and parameters to make
sure it is using frequency instead of channel ID:
sme_get_connected_roaming_vdev_band
Change enum band_info band field in struct set_pcl_req
to uint32_t band_mask
Change-Id: I8ad6fc2676c2306043aa9415eefb2b89d8c49a4d
CRs-Fixed: 2555041
As FW required, send WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID when there
is no beaconing session in DFS channel for FW which supports dfs offload.
Change-Id: Ib3c24758b81d6218d2504729d44cdbfb122933ee
CRs-Fixed: 2544846
If the force peer is removed from wpa_cli, then without
checking the current link status link status is set to tearing.
Then if the same peer is again marked as forced then that peer
status is not reset to idle and that can lead to tdls connection
denial of that peer.
Reset the tdls link status to tearing only in connected state.
Change-Id: Idd4128b4599fc2dfbb768984f8f9390fc14ab5f6
CRs-Fixed: 2551180
Motion detection baselining can be started during Motion detection
phase which results in false motion detection
Do not send baselining start/stop during Motion detection phase,
to prevent false motion detection
CRs-Fixed: 2556575
Change-Id: I20de48b3d09cf8adec3a3a2d9585ad3754f12a9e
For helium/Hastings, two port STA+STA MCC is PORed
anyway, DBS is preferred for latency usecases.
Change-Id: I71b52974470a562372b5b1981fec1cde1ebdfcf8
CRs-Fixed: 2557583
While operating in SCC mode for AP+STA, STA receives CSA
and switches to a channel in the other band.
After channel switch trigger the NSS update for AP mode.
HW mode switch to DBS1/DBS2 gets triggered after nss update
completion.
POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH is set as the
reason for hw mode update. For NSS update AP vdev id
is used but for HW mode switch STA vdev id is getting used.
This leads to assert in vdev SM while handling the event
WLAN_VDEV_SM_EV_CSA_RESTART in vdev up state.
For NSS mode update followed by HW mode switch cases,
Policy manager need to use the same vdev id for both operations.
Change-Id: I986fa971c0c525ecada4805c70dd629ef8a1cac7
CRs-fixed: 2547119