This change addresses 2 issues:
1. Currently the ini for SAR version specify the SAR
version. If value of the ini is 1 it specifies the SAR
version 1 and if value of ini is 2 it specifies SAR
version 2 and driver converts SAR version 1 (SARV1)
command to SAR version 2 (SARV2) command based on FW
capability.
2. If the value of the ini is SARV1 and FW expects
SARV2 command, currently driver is sending SARV1
command to FW which results in undefined behavior
at FW.
Since the use of this ini is to convert the SARV1 command
to SARV2 command, change this ini from int type to bool
type to just specify if the conversion is enabled or not
to avoid any kind of confusion.
If the ini is SARV1 and FW expects SARV2 command, reject
the user space command to set SAR power limits.
Change-Id: Ie8e3790bd8737fcb251a0481e2e6001a26295773
CRs-Fixed: 2581034
g_pcl_band_priority - Set 5G/6G Channel order
This ini is used to set preference between 5G and 6G channels
during population of PCL.
0 - Prefer 5G channels, 5G channels will be placed before
the 6G channels in PCL.
1 - Prefer 6G channels, 6G channels will be placed before
the 5G chennels in PCL.
The change will only add 6Ghz channel to PCL for SAP or STA
mode.
Change-Id: I51b3073d6f4fb01af72ccb0a50d10822ac115bca
CRs-Fixed: 2590007
Presently, during Subsystem Restart(SSR) the object references
are not released cleanly, invoke stop adapter during the SSR
to have common functionality between the netdevice going down
and SSR.
Change-Id: I2980379022f62ef27dea92868c8033c087544d50
CRs-Fixed: 2587443
Use frequency as parameter for channel overlap handling
APIs - csr_check_concurrent_channel_overlap,
csr_calc_chb_for_sap_phymode, csr_get_ch_from_ht_profile,
csr_handle_conc_chnl_overlap_for_sap_go.
Change-Id: Ie3c9d466f21d7313998328432c063b1f6c7e5d0f
CRs-Fixed: 2577706
For vht bw, there is a transformation of rx_status->vht_flag_values2
in qdf_nbuf_update_radiotap_vht_flags(), so strictly copy
rx_status->vht_flag_values2 from rx_desc, do not transform twice which
leads to wrong vht bw.
For rssi, only show first mpdu rssi info in a ppdu, firmware reports
-86 rssi_comb for mpdus other than the first one, calculate
ANTSIGNAL by adding with noise floor will show a wrong rssi for those
mpdus.
Change-Id: I776d85cea2cf0f48beeed351ed0643699d805d54
CRs-Fixed: 2588768
Currently, In function lim_is_pkt_candidate_for_drop
to drop excessive management frames subType should be
SIR_MAC_MGMT_ASSOC_REQ, SIR_MAC_MGMT_DISASSOC and
SIR_MAC_MGMT_DEAUTH. As subType can not be equal to
3 management subtypes at same time,excessive frames for Assoc,
Disassoc and Deauth will never drop.
To drop excessive frames keep a check of OR instead of AND for
ASSOC, DISASSOC AND DEAUTH subTypes. Send diag event after all
duplicate checks in lim_process_disassoc_frame and
lim_process_deauth_frame.
Change-Id: I595378d409804d3fbd9c5d22a37090d6dc429075
CRs-Fixed: 2588832
Force STA connection in VHT mode if AP HE adveritised rates
does not match with STA supported HE rates
Change-Id: Ia691a66ad4a2d2d2d59e07d07104e6771c6e4a84
CRs-Fixed: 2580041
For some IOT issue on specific AP:
STA failed to connect to SAE AP due to incorrect password is used.
Then AP will still reject the authentication even correct password
is used unless STA send deauth to AP upon authentication failure.
Change-Id: I394041177425267e1b213ae468ec316e207cc0fc
CRs-Fixed: 2576247
The connected profile in csr_roam_session is filled after join
success with an AP in csr_roam_process_join_res(). The connected
profile information also has the country code advertised by the
AP over its beacon in the Country Element (EID 7). When STA
roams from AP1 having country IE to AP1 which doesn't have
country IE, the driver checks if the country IE is present in
the AP2 beacon IEs. If the country code is present, new value is
copied, else the older country code value is not cleared.
This results in beacon report failure when roamed to AP2 due
to country code and op class mismatch.
Clear the country code in connected profile before checking if the
country code IE is present.
Change-Id: I503f9761ff33fb245a25b23893360389d7a0b258
CRs-Fixed: 2590117
Currently, bus bandwidth is initialized and deinitialized in
different memory domains which may cause leaks due to async bandwidth
init and deinit.
Fix is to initialize and de-initialize bus bandwidth in active domain.
Change-Id: I67cf9ecdd47c8f3ca6e9b272ca379f0cac9a6c7b
CRs-Fixed: 2568881
Don't set unload flags earlier before unregister_driver when driver
unloading to avoid runtime resume failure. And set this flags earlier
before wait_for_ops in the pld_pcie_remove to give chance SSR will be
skipped if unloading is in progress.
Change-Id: I084db32b436148932a2a90e3e1dcb1122f4303b5
CRs-Fixed: 2589413
When 5G band is disabled by set band, need SAP switch channel
to 2G. When 5G band is enabled again, need SAP switch back to
original 5G channel. When sta connecting, SAP can't switch
channel.
Merge logic of SAP channel switch for band change and for force
scc with sta, both are implemented in:
policy_mgr_check_concurrent_intf_and_restart_sap now.
After sta associate succeed or fail,
policy_mgr_check_concurrent_intf_and_restart_sap is called again
to check and try SAP CSA for band capability change.
Change-Id: I8574209aac3cabb748a8ec05050244f480e1a0e9
CRs-Fixed: 2589021
Reinitialize pcl_weight index in policy_mgr_get_channel_list
for correct connection count.
Change-Id: I96d38f1cb29014517f2c22e360db5d942eb66519
CRs-Fixed: 2589478
LFR2 also need set roam offload flag to fw:
WMI_ROAM_FW_OFFLOAD_ENABLE_FLAG of
WMI_VDEV_PARAM_ROAM_FW_OFFLOAD.
Change-Id: Idbb602b717f46f88426ef36a738efd456ac7af8b
only sets roam offload flag to fw for LFR3.
Change-Id: I0abdab998b7a7c336379ab44ca43ac2fb823eed9
CRs-Fixed: 2580519
Firmware needs maximum amsdu size for through-put optimization.
Send host configured amsdu size to firmware when vdev is created.
Change-Id: Ib292c6d9ddc828d5d0a02cf8f6d9a577c8a5c01a
CRs-Fixed: 2573857
Host still create new P2P IE for NoA attribute even if there is P2P
IE in additional IE from up layer. This change adds NoA attribute to
existing P2P IE directly.
Change-Id: I8585e09ce3d97eb2f6eb67e552659be9962913c9
CRs-Fixed: 2583887
Currently, enable_snr_monitoring doesn't be initialized properly, in
some acs scenario, hostapd will dump survey(NL80211_CMD_GET_SURVEY),
driver return error due to uninitialized enable_snr_monitoring, this
will result in acs won't be started and sap fail to start.
Fix is to remove enable_snr_monitoring from hdd_config struct,
calling ucfg_scan_is_snr_monitor_enabled() everywhere that
enable_snr_monitoring is being used.
Change-Id: I8784867683b21d9441e980a1215b2db712db381a
CRs-Fixed: 2585661
Below are the scenarios where host fails to clear roam in
progress flag:
Case 1: While processing disconnection request
Host should clear roam in progress flag irrespective of
connection state of STA.
case 2: While processing a try-disconnect request
Currently, Host waits for WLAN_WAIT_TIME_STOP_ROAM (4 sec) to
process disconnection, if firmware has already started roaming.
In case if Host doesn't receive roam completion indication from
fw, Host set connection state to not connected and fails to clear
roaming in progress flag. This results host refuses all further
connection request with reason connection in progress.
Fix is to clear roaming_in_progress flag in both cases.
Change-Id: I45d9771bcd546d8914321e3be1a6d0ce6566cdac
CRs-Fixed: 2588803
When SSR sap restart, vdev objmgr object will recreate new, if put set
vdev crypto pararams in wlan_hdd_cfg80211_start_bss(), it will not be
invoked by SSR sap restart procedure, so there is no crypto pararams in
vdev and lead to association failure when compare crypto pararams.
Move back set vdev crypto pararams to wlansap_start_bss so sap start
and restart will both invoke it.
Change-Id: I56656ffacbe153fbe73fb6e474048e055cb6a153
CRs-Fixed: 2584138
When radar is injected at +/-30MHz separation from center frequency
in VHT 80MHz mode incorrect pulse duration is reported in the radar
summary reports and lead to decreased radar probablity detection.
Fix the issue by capturing pulses with such characteristics and
modify them to fit within the valid phyerror pulse duration range.
Change-Id: Ic6314a372d6909448fbe4eb694c41736d1719712
CRs-Fixed: 2577632
Currently, ch_width of session is checked without validating
session which may lead to NULL pointer derefrence.
validate session_entry before accessing element of
pe_session
Change-Id: I1f785555fa77a0c588e9b5245ad513fe059974d0
CRs-Fixed: 2585928
1. Update pAddBssParams->ch_width to 160Mhz ch width value
based on VHT operation IE's ch width, channel segment 0
and channel segment 1 fields.
2. Report link rate information to OS for 160Mhz based on
rate flag TX_RATE_VHT160.
The change will fix the incorrect bandwdith reported by
IW commmand (iw wlan0 link) when STA is connected to AP
in VHT160 mode.
Change-Id: I698b12da825619e8e8f28f0cf4ea1ccf2e7072e6
CRs-Fixed: 2585986
Update tx rate flags to include 160Mhz bandwidth in
wma_set_bss_rate_flags_he.
Add HE 160 mcs to rate mapping for nss 1 and nss 2.
This change will fix incorrect bandwidth report via
IW command: iw wlan0 link.
Change-Id: Idd1adc4f2783b86a2a837999ea87bb38c813f213
CRs-Fixed: 2585078
Currently use of comamnd QCA_NL80211_VENDOR_SUBCMD_OEM_DATA
is to pass data blobs from Application to FW but there is
no mechanism to send the data blobs from FW to Application.
To meet the above requirement update the usage of existing
OEM DATA command to use it as a vendor event as well to
send data blob from host to Application.
Change-Id: I502312f25d2754984b86e1cc4e011800a5d4b58a
CRs-Fixed: 2573464
with a new change I9b2b1ead3b4502022aeefc08359037457bb051f9 added for
to switch from 2.4g from 5g when an indication is received, During the
driver re-initliazation also this function is getting invoked and trying
access freed memory resulting in null pointer deference.
Donot process the function wlansap_set_band_csa when the driver is
recovering.
Change-Id: Iab67d5b77ffc98166bf421ff30bcf641e37fef6a
CRs-Fixed: 2587706
Whenever there is a process waiting on a response from firmware it has the
option of using either a qdf_event or a linux completion event.
The primary difference between these is that if there is an SSR all
qdf_events are immediately completed whereas Linux completion events are
only completed by the normal flow of code.
With new upcoming changes SSR processing will take the normal path for
releasing all of its resources, and the qdf_session_close_event is used for
synchronization.
If we define this as a qdf_event, it will be completed when the SSR begins,
defeating its purpose.
Therefore change this to be a Linux completion event.
Change-Id: Ia6fe504e2a2d01f12c3d3446fffc2fc397566966
CRs-Fixed: 2586190