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
For 3th connection bring up, if first two connections
are SCC on same mac (STA+SAP or SAP+SAP), third connection
(STA or SAP) is not supported on same mac. Previous
commit If30cf58d2b16fc3ff4dfff4f75d7eeaa51786cad
lost the same mac check.
Change-Id: I278e94cbb1e368af57327da869bd961237e7b4b6
CRs-Fixed: 2534987
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
Currently, TDLS set state command is sent to FW after any session
decrement without checking the HW mode is DBS. This can lead to
FW assert.
Check for HW mode before enabling TDLS in FW.
Change-Id: I70d5ba15c9b891f5d9b411960d51d684105061e8
CRs-Fixed: 2530773
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
In lim_send_link_report_action_frame(), the link report action
frame is filled in response to the link measurement request from
the AP. wma_tx_frame() is called to send the frame to the firmware.
But the vdev_id is initialized to 0 in
lim_send_link_report_action_frame(), but is not updated from
pe_session before passing it in wma_tx_frame. SO when STA comes
up on vdev 1, the vdev value is still sent as 0. This results in
the action frame dropped in firmware.
Fill the vdev_id from pe_session before sending it to firmware.
Change-Id: I5ee830fc6ca542c29f555bce63a77c3309777d3b
CRs-Fixed: 2530258
The max value of gReportMaxLinkSpeed should be
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED.
Set the max value of gReportMaxLinkSpeed to
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED, otherwise
gReportMaxLinkSpeed does not work.
Change-Id: I164de224a4f4bfdd2dea55fe0a943fc4884326ff
CRs-Fixed: 2532054
1. When AP/IBSS/NAN vdev start, fill parameters into
vdev mlme directly.
2. LIM call wma API directly instead of post msg.
3. Add pre/post vdev start handlers
4. Remove following functions:
wma_add_bss
wma_add_bss_ap_mode
wma_add_bss_ibss_mode
wma_add_bss_ndi_mode
mlm_add_sta
5. Add lim_set_ch_phy_mode to set phy mode for all vdev start
cases.
Change-Id: I0dc32e399dc9b49c9bbca16fbc4bd0f44eab284d
CRs-Fixed: 2533714
Currently, MBO IE is included in assoc request if the peer
advertizes MBO IE and DUT is of MBO capability. But PMF (11w) is
a mandatory requirement for MBO. So include the MBO IE in assoc
request only if peer supports MBO along with PMF.
Change-Id: Ic0b542acdd8fc5011e7a2a4555973129c474100f
CRs-Fixed: 2528148
There is a race condition of vdev_to_iface, it is referenced in IPA W2I
callback routine, but it's updated after IPA enable operation. If frames
received right after IPA enabled, callback function will return failure
due to vdev_to_iface value is not filled.
Change-Id: Iff831b66771539d1de4af89e395821dc50d13af3
CRs-Fixed: 2517515
As a part of vdev convergence, struct wma_tx_rx_node's bssid & addr
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: I2462a25f91b66b9efac42935a599f1362cb268f1
CRs-Fixed: 2532061
In __wlan_ipa_wlan_evt, for QDF_IPA_STA_DISCONNECT event,
ipa_ctx->vdev_to_iface[session_id] is reset back to
WLAN_IPA_MAX_SESSION only when ipa_ctx->sap_num_connected_sta
is greater than 0. So, in STA+SAP concurrency case, when
no client is connected to SAP, if STA is disconnected,
vdev_to_iface is not reset for that particular session id,
making it unusable for further events involving IPA iface
creation.
Fix is to move the code to reset vdev_to_iface outside the check
for ipa_ctx->sap_num_connected_sta in QDF_IPA_STA_DISCONNECT
scenario, so that vdev_to_iface is reset irrespective of SAP.
Change-Id: I06c79b62c540546cf4842f81d235f96b2965661e
CRs-Fixed: 2525709
Because it has clock drift between Qtimer and target timer, so host
driver need to get two timer offset periodically, then transform the
tsf time from each RX packet to qtime according to this offset value.
If the intervel is too large, the result will not very accurate.
Modify the value from 9 seconds to 3 seconds for STA mode.
Modify the SAP tsf sync intervel to be the same as STA mode.
Change-Id: Id915cbf386059df8233246e196279cb376e2a25b
CRs-Fixed: 2531940
In current code, if mac_provision is enabled, the
checking for return value of hdd_platform_wlan_mac
will be bypassed, this is not the intention.
Change as:
when mac_provision is enabled, it returns
only when getting mac address from platform failed.
Change-Id: I76aca9e4560c914a165f2042818746b6a2bb3661
CRs-Fixed: 2529981
roam_info may be null pointer and be explicitly
dereferenced when roam_status is
eCSR_ROAM_LOSTLINK in hdd_dis_connect_hanler.
Add null check for roam_info before
getting roam_info->reasonCode.
Change-Id: I11be7b722921a9be8ed1419251f6cbf19506a11d
CRs-Fixed: 2531563
Replace channel ID with frequency in struct hdd_channel_info
& oem_channel_info.
Change-Id: I1a14ab40da4824d2861a7ec862cc322a158f0cd1
CRs-Fixed: 2532299
If the ready event times out the waiting thread in the error condition
starts closing the modules but in the other
thread the wmi_rx_work_queue could be executing trying to access the
data which being freed in the other thread.
Flush the wmi_rx_work_queue when the ready event times out.
Change-Id: I7d91b3fa5f3468c607ce3669eabf7d2e3789774d
CRs-Fixed: 2524305
Roam control enable sends default values for roam scan period and
full roam scan period to make sure undesirable values are not
used. But user might want to update values dynamically through
vendor cmd/DRIVER cmd before issuing roam control enable and
doesn't want to overwrite these values with default values.
So, consider default values sent only if user hasn't configured
already. This can be done by comparing configured value with
ini values.
Change-Id: I68ac6a9afbe4a45c1a1ade3286c57f36303c49e9
CRs-Fixed: 2530344