Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within ipa replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I82e4bed12122ad5aea47650f6d75e72a52207883
CRs-Fixed: 2418401
Currently the driver just start the vdev according to the ini
params, without consdering the tx, rx chainmask supported by the
FW per band, per mac, which can lead to connection in 2x2, even
though FW is not capable of 2 antennas on a particular band.
Fix is to intersect both the tx, rx chainmask for both bands,
and change the ini to minimum of the nss supported by ini, and
the BDF setting of the chains.
Change-Id: Ib0e9bac19959bbcf9bade7dbd78674be4099a23d
CRs-Fixed: 2414103
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within target_if replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: Id9b5185713b91b67ddf1d965a6c7e52508558d82
CRs-Fixed: 2418397
In function tdls_delete_all_tdls_peers, bss peer can be NULL
if the bss peer is removed from vdev object. Hence, add NULL
check before getting its reference.
Change-Id: I9b2b03bc6db899c1c06de95ec5ee680d4b600aa7
CRs-Fixed: 2419567
Currently, whenever roaming is triggered after a successful roam scan
firmware sends a BTM query to current connected AP when it is 11v
capable. Driver completes roaming with candidates received as part of
BTM request from AP. STA respond to AP with BTM response after
successful initiation of roaming.
Now the requirement is FW could send "BTM query with a preferred
candidate list" after a successful roam scan for some roam scan reasons
like PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE etc. Preferred candidate list
is obtained as part of roam scan based on firmware bss scoring logic.
Add new ini "btm_query_bitmask" to configure the bitmask for roam scan
reasons which is sent to firmware as part of RSO start via wmi btm config
cmd. Fw sends "BTM query with preferred candidate list" only for those
roam scans which are enabled through this bitmask.
New INI: btm_query_bitmask
Min: 0
Max: 0xFFFFFFFF
Default: 0x8
Bitmask : 0x8 (LOW_RSSI) refer enum WMI_ROAM_TRIGGER_REASON_ID.
Change-Id: I24b538745f2ac88d4e5c990573234e0f8a881b1f
CRs-Fixed: 2408111
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within cmn_services replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: I7141cd900916bd4bbab1bc8c7a1b90589286582b
CRs-Fixed: 2418402
Currently there is no support to configure the inactivity
timeout when driver goes to wow mode or when driver resumes
from wow mode.
Add support for PMO component to configure the wow mode
inactivity timeout with ini g_wow_data_inactivity_timeout
when driver enters into wow mode and when driver resumes
from wow mode add support to configure the inactivity
timeout for non wow mode with ini gDataInactivityTimeout.
CRs-fixed: 2412866
Change-Id: I0672f22a5dfec870e5e67b23058db2729b9a0848
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within mlme replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Iac19509c5fdcce036e0288653d61638cf04f01d6
CRs-Fixed: 2418400
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within disa replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Id25e4748819d206e361a55532a5ccfd648744b15
CRs-Fixed: 2418403
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within p2p replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I3f987cc2603bd3e4d41881db8c847046884d7e76
CRs-Fixed: 2418399
1) Refine the documentation text of 4 ini items:
gStaKeepAlivePeriod
gApKeepAlivePeriod
gChannelBondingMode5GHz
gChannelBondingMode24GHz
2) Fix a discrepancy which happens when ini cfg values
are converted from those defined in enum
eIniChanBondState to the corresponding values in
enum ePhyChanBondState.
3) Use the related APIs to setup channel bonding modes
instead of directly assigning values.
4) Remove the redundant inclusion of the following two
header files in csr_api_roam.c:
cfg_ucfg_api.h
wlan_mlme_api.h
Change-Id: I43c1e5a05bbb34952a5c7bdbde734f4014592c12
CRs-Fixed: 2416991
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within pmo replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I3697ede27e074252017e31be23caa93fc25885c5
CRs-Fixed: 2418398
Due to PTA master limitation, zigbee joining network success rate
is low while wlan is working. Wlan host driver need to configure
some parameters including Zigbee state and specific WLAN period to
enhance PTA master. This mechanism is called MPTA helper. The INI
parameter gMPTAHelperEnable is used to enable/disable this feature.
Change-Id: I070c06a00ec2c405540cc40251f5cb7fec211cbd
CRs-Fixed: 2407801
Current ACS logic sometimes selects MCC channel based on its
algo for SAP / GO which results in SAP / GO bring-up failures.
This issue is seen in below concurrency combinations:
1. SAP + SAP
2. SAP + P2P-GO
3. SAP + SAP + SAP
4. SAP + SAP + P2P-GO
So with this change driver restricts ACS scan to intersection of
PCL and ACS channel list.
This implementation will take care of existing STA + SAP case as well,
as PCL will have channels according to 1st connection being STA.
Change-Id: Ic715fb29533c20b63cffda8a82b7317904f0d291
CRs-Fixed: 2407289
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.
Refine the documentation text of the following items
in one batch:
gEnableDynamicDTIM
g_sap_chanswitch_mode
gVhtChannelWidth
gDataInactivityTimeout
Change-Id: I2b1455d0ea27fd35dc0cf66316c7dc3b348ee0ac
CRs-Fixed: 2416086
1) 'ssdp' in t_wma_handle structure is not used anymore,
remove this redundant field.
2) ucfg_pmo_set_sta_mod_dtim and ucfg_pmo_get_sta_mod_dtim
should have been accessing 'sta_mod_dtim' instead of
'sta_dynamic_dtim' in struct pmo_psoc_cfg.
Change-Id: Iedd7bed1c9f637a819f97b6d8c687b784739dd62
CRs-Fixed: 2415087
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.
Refine the documentation text of the following items
in one batch:
gEnableVendorVhtFor24GHzBand
hostArpOffload
ssdp
gEnableDynamicDTIM
gEnableModulatedDTIM
Change-Id: I3cd617e52e86e2a890e35edb33b37ba3df8f4f6e
CRs-Fixed: 2414259
If Firmware supports NDI DBS mode, driver can support NDI
concurrency along with NAN and STA type connecitons. Use
Policy Manager API's to add support for these concurrencies.
Add policy mgr related changes to support NDI concurrencies.
Change-Id: If272be34606c0897d0b145c602b4bc2ba4462cb0
CRs-Fixed: 2384549
Policy manager is not aware of NAN Datapath Interface(NDI)
which is used to establish datapath with NAN peers. Define
and enumerate policy manager definitions and tables to
support NDI alongside NAN Discovery and Station interfaces.
Important thing to note is that NDI cannot be active without
presence of a NAN Discovery interface.
Define NAN Datapath related definitions in Policy Manager.
Change-Id: I6ecdf5a89a8161d9c5d671e4e718dd615f46019e
CRs-Fixed: 2407225
NAN Datapath implementation allows more than one concurrent
NDI's to be active at the same time. But this isn't supported
if there is a higher priority incoming connection such as
STA. Add modules that check for unsupported NDI concurrency
and initiates termination of all NDP's on it.
Add modules that check and disable unsupported NDI concurrency.
Change-Id: I6ad9afbfc41beda1d1c8f31bf58a8ea70027f5ca
CRs-Fixed: 2407215
If DBS 2x2 mode is supported, to operate in 2.4Ghz the driver needs to
be in DBS mode before vdev start/restart is sent on 2.4Ghz channel.
In scenareo with gWlanMccToSccSwitchMode 4, when AP is in 5Ghz and
STA connect to any other channel in 5ghz, it force AP to switch to 2.4 Ghz
channel. Thus AP sends vdev restart without sending the HW mode change
to firmware.
Fix is to set HW mode before the AP start channel switch.
Change-Id: I2a1c176d5f3ed8cc2f62dc24c72959db1afbaae3
CRs-Fixed: 2414034
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the input argument type for sme_ser_cmd_callback().
Change-Id: I3f0b5df70163eca9282d2b1c2a48203448e4f0a6
CRs-Fixed: 2402977
When forming P2P connection, mgmt tx timer timeout when tx ack event
queued in scheduler but not processed, and then wild pointer access
in tx timer timeout callback since processed tx ack event and tx
context is freed.
Change-Id: I598e611a9e1d72bbaddbbe3541f37479f3cb9bbb
CRs-Fixed: 2372686
After STA or P2P cli disconnection, TDLS component is notfied
of the disconnection to check if the TDLS can be enabled in FW
and host. But while sending tdls set state command to FW,
the disconnected vdev_id is given to FW. This can result in
FW assert while processing the next tdls commands.
Change-Id: Ib79547ce9d192b1d8bba3767655b3dada36e5e95
CRs-Fixed: 2412170
CBF report is not sent as response to NDPA frames
sent by AP when STA goes to powersave. This is
resulting in VHT-5.2.63A cert test case failure,
where pass criteria is to check the last CBF frame
from STA.
Fix is to increase default value of bmps timer to
600secs.
Change-Id: Ibca5fe0af0be22f0bef463a5b4d11d617ac4391b
CRs-Fixed: 2412177
In functions ucfg_tdls_update_rx_pkt_cnt and
ucfg_tdls_update_tx_pkt_cnt, driver tries
to get the vdev ref, even if it is NULL.
This can result in assert.
Change-Id: I62b3a9b088324e06518e82203092a2ac9098ac13
CRs-Fixed: 2412095
Allow SSR during driver resume. Assume firmware goes down during driver
is in suspend state. Avoid get into bad state and wmi access during driver
resume.
Change-Id: Ie1689e0b080f940666fbbb19c9f0e3b0fecfe564
CRs-Fixed: 2412130
BOOLEAN is native c type so external range validation is not needed.
Cleanup references to cfg_in_range(), cfg_min and cfg_max for
BOOLEAN items
Change-Id: I4a60d1bbd12ad3cce00b33c551b3927b2f01f638
CRs-Fixed: 2359500
In SAP mode apps should wake up to handle the client kick out event
from fw and delete the remote peer such that remote peer is not hanging
in partial connected state when apps is in power save mode. Mark client
kick out event as wake event in SAP mode such that apps can wake up and
properly disconnect the kicked out remote client.
Change-Id: I9e2e56820be0bed8019d2fb810a12a129deadd37
CRs-Fixed: 2410124
In p2p go mode the peer type in wlan peer common object is always
set to P2P_CLI. This leads to non-cancellation of NoA after connecting
to legacy stations. Correct the peer type for legacy stations.
Change-Id: Ib706f9a80d0ad367e27fd21eca6cf026cba63f57
CRs-Fixed: 2406127
If the curr_peer link status is tearing or connected,
activate peer cmd is rejected and the return status is sent
to supplcant as success even.
But return failure status to supplicant if the link is tearing.
Change-Id: Ia976fee03c77191a7e617a3e21e8c5ddf98759d0
CRs-Fixed: 2411146
Unlike other connection types, vdev start parameters for NDI
do not reflect the correct connection information for the
datapath. Once an NDP is established on NDI this info in WMA
needs to be updated accordingly. Define a WMA callback and
use it after NDP confirm and NDP End to update the connection
info for NDI.
Use WMA callback for updating NDI connection info.
Change-Id: Iefb515a751bd3fb5e10610d191bdadaf3a01f59a
CRs-Fixed: 2407153
To support NAN Datapath concurrencies driver needs to be aware
of the primary NDP connection for each NDI. If the primary
NDP has ended, driver needs to update NDI with the second NDP
if it exists. For this purpose driver needs to track the NDP
connections for every peer associated with NDI. Store and
update the primary NDP connection info in peer object for
NDP confirm, NDP End & NDP schedule update.
Store and update NDP connection info in NAN's peer objects.
Change-Id: I7d2c8c513beceebf155596bfa73841a834d9a97a
CRs-Fixed: 2406402
Up layer tx probe response frame with wait/duration 0, which may be
start ROC with duration 0 and then tx mgmt frame fail since of very
short ROC and no enough time to wait for tx ack.
Change-Id: I5243ff10726b642d8cf18992a230d741f9d2655f
CRs-Fixed: 2397719
Allow the SAP to move from DFS channel to another DFS channel in
STA+SAP SCC concurrency scenario.
Change-Id: Ie2091bbdd758ed7f3bef1757ff42bbe5034fe908
CRs-Fixed: 2408892
Host presently stores NAN Peer specific info, such as number
of active NDP sessions, in an array inside vdev private object.
The array uses Peer index from HDD connection info. Instead,
use object manager to define peer private objects to store
this information.
Define NAN peer objects for storing NDP Peer info
Change-Id: I43d9339d06acc0eff61cafb337ccb084c372c7e1
CRs-Fixed: 2405507
Chk frame member of the tdls_mgmt_req is declared locally inside of
the local function wlan_cfg80211_tdls_mgmt and address is copied
in the mgmt request, and posted to scheduler thread.
But, the validity of the chk frame variable is lost once returned
from the wlan_cfg80211_tdls_mgmt function. And the chk_frame
is used when processing the tdls_mgmt_req in scheduler thread.
And the stale data of chk_frame can be used.
Hence, make the chk_frame as a variable instead pointer inside
tdls_action_frame_request request.
Change-Id: Ib2a8a81e8f6db5550b1d0abee31d9f7ea5dacd9b
CRs-Fixed: 2402124
If ACM is off and can't send AddTspec too, we should
be still ok to send uapsd info to AP via reassoc req.
If roam offload is enabled, when csr_reassoc is called, vdev
start cmd is sent during vdev started status, assert will happen.
Fix: call sme_fast_reassoc in sme_qos_request_reassoc to invoke
LFR3 roam if roam offload supported.
Reproduce steps:
1. Change ini: gAddTSWhenACMIsOff=0
2. DUT STA connected AP
3. iwpriv wlan0 addTspec 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Change-Id: Idbd53ff0af36cb3b68c514e399d0033c41c74a78
CRs-Fixed: 2402542
Currently, INI gSkipDfsChannelInP2pSearch is initialized in P2P
component and later copied to scan component for usage.
Since this INI is only used by scan component and not the P2P
component, move the initialization part also to the scan
component.
Change-Id: I44a6208ab5f3ee062073550143e23e5800342376
CRs-Fixed: 2405395
Currently while copying the MC address list, PMO
checks for the IPv6 router solicitation address. If this
address is found in the source list then this address is
ignored but the hole is created in the destination list.
As a result of this hole, FW does not filter the packets
for the last configured MC address in the list.
To mitigate this issue, add the correct logic of copying
the MC addresses from source list to destination list when
IPv6 router solicitation address is found in the source list.
Change-Id: If9412933d30259e7260e4d9e11cc514dec964355
CRs-Fixed: 2403419
The session_id field in struct pmo_wow_add_pattern does not serve any
purpose, so remove it.
Change-Id: I477b74c1360f124fb493440a8289fb2a4382c6d5
CRs-Fixed: 2404828
In function policy_mgr_is_restart_sap_allowed, STA+SAP concurrency is
decided based on return status of policy_mgr_get_concurrency_mode.
It can happen, SAP adapter is opened. But hostapd_open and start_ap
is not done. Then, this api will return SAP bit true even even though
SAP is not active. So, explicitly check if the SAP is active by
checking the SAP connection count along with the concurrency mode.
This can result in GO channel override with STA channel.
Hence check the sap and go mode connection count along
with the concurrency mode.
Change-Id: I672d503f34734d7e16175fedc685d2838e77d8f7
CRs-Fixed: 2405189