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
In sch_set_fixed_beacon_fields driver check if the additional IE
length + tDot11fBeacon2 length is less than the max beacon size
before appending the additional IE. But total beacon size also include
tDot11fBeacon1 and TIM IE. Thus additional IE may lead to beacon len
greater than SIR_MAX_BEACON_SIZE.
So consider tDot11fBeacon1 and TIM IE length as well, while checking
if additional IE can be appended.
Change-Id: I2e659e4f9eab4b558ecdb3daa076a5cfb0f3d7f3
CRs-Fixed: 2558911
Remove wlan_reg_freq_to_chan() reference in
function lim_send_ht40_obss_scanind()
Change-Id: I776500a9f127b0837f9c1eef65b381cd89845622
CRs-Fixed: 2556403
Currently, RSO STOP is going through CSR to WMA via LIM but VDEV_SET_PARAM
is going directly CSR to WMA. This results VDEV_SET_PARAM got processed
first and host sends VDEV_SET_PARAM (disable roaming) before
11K_OFFLOAD_REPORT to fw. If FW try to disable roaming without disabling
11k offload, leads to assert in fw.
In order to avoid asset in fw, host should send RSO cmd command before
disabling roaming via VDEV_SET_PARAM cmd.
Fix is, like RSO STOP, send VDEV_SET_PARAM from CSR to WMA via LIM.
Change-Id: Idbb602b717f46f88426ef36a738efd456ac7af8b
CRs-Fixed: 2554449
Presently in the driver, we get the MSI interrupt to wake up from
suspend which directs the call to the both kernel and driver. In the
driver, the HIF callback target_initial_wakeup_cb registered, gets
called in interrupt context while that through the kernel get scheduled
in thread context. These two call can potentially get into a deadlock.
The scenario can be described as:
- MSI interrupt raised
- callback invoked from kernel -> takes spinlock on psoc->lock
- hif callback in interrupt context -> spins on the same psoc->lock
- deadlock
The problem arises due to the fact that both the kernel thread and the
interrupt handler are executing on the same CPU. This causes the
spinlock in the interrupt context to spin forever.
The solution to mitigate this scenario is to not take the reference
inside the hif callback pmo_core_psoc_handle_initial_wake_up. This
reference was put in place to prevent the wake up callback from getting
affected by psoc creation and deletion. But there seems no need for this
as creation and deletion of psoc happens outside the time-scope of the
wake up callback.
Change-Id: I566ab08802ba3f38e154d26599c73d718ec74bfb
CRs-Fixed: 2556497
Make tx resource hi/low threshold configurable through
config files and update hi threashold from 7.5% to 8%.
Change-Id: I2e52b7910caedf6e0af24242b79e1e9d42c6b85b
CRs-Fixed: 2548100
Do not start motion detection if baselining is not done, or motion
detection config values are not available
CRs-Fixed: 2547648
Change-Id: I23a02dbd21e2b673e625938a35003f3730135327
Modify the following API' code and parameters to make
sure it is using frequency instead of channel:
csr_neighbor_roam_handoff_req_hdlr
Change-Id: I0af2bc8b3d59a6ca1bff83eff05364f9ac5b10db
CRs-Fixed: 2554953
In Genoa, FW thermal throttling feature do not use cmd
set_thermal_mgmt
Do not send this cmd via iwpriv cmd - set_thermal_cfg
CRs-Fixed: 2555975
Change-Id: Ib8f430b230568627faecdf3da683a76786d7c8a1
Currently MCL and WIN both have separate queue.h
files with the same declarations and definitions.
As part of cleanup single queue.h is created in cmn code,
use this newly created queue.h file instead of MCL
specific queue.h file.
Change-Id: I91619e5fff2040cb588cd0413cb42d5d7469f41f
CRs-fixed: 2505800
Increase value of AST skid limit for QCN7605 to avoid
peer create failure in FW in case of AST hash collision.
Change-Id: If931229d3b1458556a6e5c1023fb646b7274bedd
CRs-Fixed: 2517716
Presently, in hdd_reset_all_adapters, the removal of the sta_info
structures via hdd_deregister_sta happens inside a loop that is not safe
for removal. This can cause various potential invalid memory access from
use-after-free to null-dereference.
To rectify this, use the delete safe API to loop over the sta info
entries.
Change-Id: I3d5526af8d8f819874f6bcffabf27ceb74f6f32a
CRs-Fixed: 2557364
As part of Ie9ffc701d93ed1c050375dd56151b7a0da69cdce the STA mode
channel change was added in disconnected state for spectral scan
test at CV2X platform.
Now with iwpriv wlan0 setMonChan on STA mode, a monitor mode
pe_session is created in PE/LIM which take ref count with
WLAN_LEGACY_MAC_ID. As the interface is STA type this session
is not deleted when vdev is deleted. This lead to vdev ref leak.
This code is broken and is no longer in use and cause vdev
ref leak when executed. Thus revert
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce.
Also move the lim session create to hdd_set_mon_rx_cb during
vdev create, as it is deleted during vdev delete.
Change-Id: Ib60aa2bd2746a8cd17f20efa7506c18784a42630
CRs-Fixed: 2557160
In function hdd_association_completion_handler, there are missing NULL
checks for couple of heap allocated variables. This can lead to
potential NULL pointer dereference.
Add NULL pointer sanity check.
Change-Id: I4343833b9e12da0012cfbff006bd8891e9bae025
CRs-Fixed: 2556755
From android Q, it uses a random MAC to connect to different
SSIDs which causes the interface down/up, the vdev will be
deleted and the latency level info is lost in firmware.
To fix this, save the latency level and reconfig it to fw
after vdev creates.
Change-Id: Ifac93fb869553d0f9eb553d5c41da43c8b014ad8
CRs-Fixed: 2554736
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_operation_channel
wlan_hdd_update_survey_info
Change-Id: I90f05cc7fedd061bf08b47299d2fb6530c470136
CRs-Fixed: 2554149
Host will set HE IE by channel mode, and needn't copy he ie to
additional ie. Otherwise, there will be two he ies in beacon frames of
P2P GO.
Change-Id: Ia144bb5e96f00114658a371ef27c65f90a6c7df2
CRs-Fixed: 2549450
Populate HE 160MHz mcs map only from 5G band mac-phy capabilities.
Session bandwith is checked to disable HE mcs for 160MHz, but session
bandwidth is updated after the MCS is disabled. Update HE 160MHz
MCS map after session bandwidth is derived.
Change-Id: I94813ae269856b34cf1ea6c6a13013738909c674
CRs-Fixed: 2556457
Newly introduced WMI macro for group management cipher suite is:
WMI_CIPHER_BIP_GMAC_256 0xf
Currently, host updates the localy defined macro for group
management cipher suite to the firmware only as part of RSO
commands over the WMI_AP_PROFILE command. Host should update
group management cipher suite as per WMI cipher macro.
Fix is to update the group management cipher suite in RSO cmd
as per WMI cipher macro.
Change-Id: I81dc5e800c55d1eb6cd0447265205d3413b29177
CRs-Fixed: 2547507
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_roam_scan_channel_list
drv_cmd_get_roam_scan_channels
Change-Id: I4e6edee71ef25bf73c170813159f5078f0c3e612
CRs-Fixed: 2554148
Currently in the driver, the cache sta info is not being cleaned up
before deinit of the SAP operation. This can lead to potential memory
leaks during driver unload.
Cleanup the remaining cached sta structures before deinit.
Change-Id: I75a61d8dbf8a6a8372882d2dcc978cc1dd0fb406
CRs-Fixed: 2550245
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_sort_channel_for_early_stop
Change-Id: Ifaab55099d00988bf56f13dcadca8a1f6000e646
CRs-Fixed: 2554178