Do not send assoc indication to hostapd until tx is completed over the
air. This ensures on receiving assoc resp tx status, M1 is triggered
from hostapd.
Otherwise, race condition happens between assoc response and M1 packet.
Change-Id: I1da7d5b2abcc35dc39fd8e3d8b834e1481d369f3
CRs-Fixed: 2507446
Currently the bitmap of action frames that can wake up the host
during suspend is sent via the wmi command
WMI_WOW_SET_ACTION_WAKE_UP_CMDID. This bitmap doesn't include
RRM action frames so currently the host doesn't wake up for rrm
action frames when in suspend mode.
Selectively enable wake up for rrm action frames during runtime PM
alone. Don't enable host wake up during normal suspend as it will
consume more power.
Change-Id: I097596118c2888fc9ea24802e4dbe69d02c5c5f7
CRs-Fixed: 2507185
Driver caches the assoc request received from an SAE STA if it's
received before getting external auth(SAE) status from hostapd.
Station might retry the assoc frame(ex: if it doesn't get assoc
response within a specific interval) and the cached assoc request
is overwritten with new assoc request, but the cached assoc
request is not freed. Free the same to avoid memleaks.
Change-Id: I576f3b8b05d17afc66481419d1b5bdc0765c84aa
CRs-Fixed: 2535425
Linux coding style doesn't allow camel case notations. So
rename limTimers to be in compliance.
Change-Id: I83807e8e5318cfad300365780f8cf9dc29037312
CRs-Fixed: 2482564
When the QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK feature is enabled
along with ptp feature, the req_tx_comp is not sent to the fw in
the htt header.
Since the driver expects tx completion from fw, the descriptors
are not freed.
Fix this by setting tx_comp_req appropriately.
CRs-Fixed: 2520686
Change-Id: I3960fb67fa5864b461d74cd3a683032e15cc460c
After sanity check in lim_set_ch_phy_mode the channel width is
updated but is not copied to des_chan.
So copy the new channel width to des_chan.
Change-Id: Iffdcabaa3bfe25083e9c4368621f8df71c152806
CRs-Fixed: 2536201
While wlan driver is shutting down and target_if response timer for
vdev is running then, target_if response timers for vdev are flushed.
Change-Id: Idecd5a54c5d824e3dafa992529ca54564bb73c93
CRs-Fixed: 2529278
As a part of vdev convergence, struct wma_tx_rx_node's handle &
rate_flags members are no more unused. These values are derived
from mlme_obj.
So no more used members of struct wma_txrx_node are cleaned.
Change-Id: I0b536c50717edc293ab27e5d520eb490266ba2ce
CRs-Fixed: 2534222
In STA use iface->chanmode which is updated during vdev restart to
set the bss peer channel width.
Also remove the API to set phymode during this as the phymode is
already set during vdev start or restart, so no need to set the
phymode again.
So just check if the new BW is valid for the current phymode
and if so set the BW for the peer.
Change-Id: Ic258703acbab0a97629ff4e1945f6729b3fe517f
CRs-Fixed: 2535576
Cleanup unused params from struct bss_params after moving to
vdev target if for add bss request.
Change-Id: Ib3cf3726b4b4c692a0323669770632f2031d4e9a
CRs-Fixed: 2535156
If AP auth type is WEP eCSR_AUTH_TYPE_SHARED_KEY, auth mode
set to firmware becomes 0:WMI_AUTH_NONE, while firmware expect
2:WMI_AUTH_SHARED, so can't roam to AP of WEP auth mode
eCSR_AUTH_TYPE_SHARED_KEY by LFR3 offload roaming.
Change-Id: Ib674d36fd27d759a6fca443a13d0cf7fec108837
CRs-Fixed: 2534703
When vdev_mgr_start_send is introduced, the Dfs->dfs_curchan
will be filled from mlme "des_chan" by tgt_dfs_set_current_channel.
Set correct channel flags to des_chan so that dfs radar functions
can get correct channel information.
Change-Id: I643acadb97c3924261b45f598a50fa82d9a224e6
CRs-Fixed: 2529996
Use separate band - NL80211_BAND_6GHZ for 6GHz channel
list population. And 6GHz channels are reported only
when CFG80211_6GHZ_BAND_SUPPORTED and CONFIG_BAND_6GHZ
feature flags are defined.
Change-Id: Ieec30b304a7c3e8e856f290afdb4177206aeb2c7
CRs-Fixed: 2524262
Linux coding style doesn't allow camel case notations. So
replace tLimMlmStaContext with the original structure.
Change-Id: Iea2968d9cf993c405390f0ff9712755137cebc07
CRs-Fixed: 2482105
Use channel number will get invalid band.
Change csr_roam_get_phy_mode_band_for_bss API
and CSR_GET_BAND to use channel frequency as parameter.
Change-Id: I0c4d39f6b5689bc330e4e09302d84deaf209b9cb
CRs-Fixed: 2518428
Some of the code in set channel and add bss API is duplicate so move
it to a API which can be called from both place.
Change-Id: I73f1f7b06034cff88589f6818a94a202604287e1
CRs-Fixed: 2535158
Refactor LFR2 and OCB vdev start, fill vdev mlme directly,
don't use wma_vdev_start_req.
Clean up wma_vdev_start_req
Clean up wma_vdev_start
Change-Id: Ic647271dee8c69f8cb9500fa3b5388ce7ef39ace
CRs-Fixed: 2534828
In LFR2.0, number of connection count is already decremented
in hdd_sme_roam_callback. No need to again decrement this count
after roaming.
Change-Id: I185b5f7f2f79c1ba29b61797b6e879edb2c6b726
CRs-Fixed: 2519376
In the legacy code, "wma_set_ibss_pwrsave_params" was called from
code protected under "QCA_IBSS_SUPPORT". Refactor ap vdev start
change call this function, hence dummy definition for
"wma_set_ibss_pwrsave_params" is added.
Inline dummy function "wma_set_ibss_pwrsave_params" is added to
overcome compilation errors if QCA_IBSS_SUPPORT is disabled.
Change-Id: Idff86469480d607c9ce1cc4f65fcd65b01a83308
CRs-Fixed: 2535135
Set chainmask for 2x2 dbs capable device if enable2x2,
AS, and diversity are disabled.
Change-Id: I3ec8da95b868e79af1f44fdba63b2ee57e4365fa
CRs-Fixed: 2528035
Currently, sme_config_fast_roaming is called to set the
supplicant disabled roaming flag in the driver, which is
received over the vendor command
QCA_NL80211_VENDOR_SUBCMD_ROAMING. This supplicant disabled
roaming flag is used to toggle between RSO start and RSO stop.
When the driver is in disconnected state, the roaming module
would be in de-init state already. So the driver should return
success whenever a state change is received in disconnected
state. But currently the driver sends failure when its in
disconnected state. This results in sending failure status to
userspace.
Return QDF_SUCCESS status if any roam state change is requested
in disconnected state.
Change-Id: I520ab92b014eb1239e0164a39e0135e1bb4c2d70
CRs-Fixed: 2533019
Currently in STA+STA scenario roaming is enabled on the
first connected STA1 and is enabled on the other STA2 on
STA1 disconnection. This change adds support to dynamically
enable or disable roaming on any STA.
Change-Id: I34dc2730fb38193ea3dd0ec35c79df233f270913
CRs-Fixed: 2520827
During hdd_start_all_adapters for QDF_MONITOR_MODE,
wlan_hdd_set_mon_chan fails to change hw mode as recovery
is always in progress at this point. Since recovery is in
progress, the check for wlan_hdd_validate_context inside
wlan_hdd_change_hw_mode_for_given_chnl always returns -EINVAL.
Remove wlan_hdd_validate_context check from
wlan_hdd_change_hw_mode_for_given_chnl as caller
to this function has to validate the HDD context.
Change-Id: I818e0cfb6f9752d205c13b7a81889a3c1f023fc9
CRs-Fixed: 2529485
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
1. Add configurable dfs_pri_multiplier, controlled by
DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
QCS405 target report RSSI range [18, 45] while radar power
is 3 dbm. By using default rssi_threshold 24 will reject
many radar pulses, which leads to low detection ratio.
3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
in dfs_count_the_other_delay_elements(), check deltapri
between [1, dfs_pri_multiplier] * refpri and searchpri, if
the primargin is desired, mark it as matched pulse.
4. Pick lowpri as refpri for the radar filter with
rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
enabled. Observed original findref logic has some problems
which selects refpri is bigger than lowpri, which leads to
the lowpri pulses pri_match are set to 0, and in this case,
radar was not detected. Example for the issue, assume
rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
leads to: index 0, 4, 6 pulses with pri_match 0 in
dfs_count_the_other_delay_elements(). The fix is to select
lowpri as refpri(1489 in this case).
Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2522506