Due to channel number duplication with introduction of 6Ghz band
support update hdd channel validation function to check channel
frequency instead of channel number. Also remove channel references
in start_bss path.
Change-Id: I5f37524b71a2b224ca79b0f67f871e50523e16be
CRs-fixed: 2545103
The host driver updates the group management cipher suite to the
firmware as part of RSO commands over the WMI_AP_PROFILE
command. The group management cipher suite is updated from the
group cipher suite which is not correct. As part of join success
update the group management cipher suite from roam_profile
in the roam serialization command in
csr_roam_save_connected_information().
Update the group management cipher suite from the roam profile
to the roam_request and copy it to the WMI_AP_PROFILE command
params in wma.
Change-Id: Ic8dca6938c487396e0202202efbb44ff214ecdcc
CRs-Fixed: 2542225
Driver uses old scan filter and old scan filter is converted
into new scan filter while sending scan command.
TO avoid this conversion use and fill new scan filter whenever
required.
Change-Id: Ib7e1c571c042a36f0b5864033ba640e8df1cd2f1
CRs-Fixed: 2544677
Get channel power information by center_freq from "defaultPowerTable"
list instead of chan_num because duplicated channel number exists if
enable 6GHz band.
Change-Id: I88c8ae2b14e1b2c48410fdf7bff5bba96b73f32d
CRs-Fixed: 2531046
Currently the interrupts are enabled before the datapath
srngs are initialized. This causes an invalid access of srngs
when any interrupt is received before srngs initialization,
which can happen during operation mode switch, eg during switch
from monitor mode to mission mode.
To avoid this invalid access of srngs, enable the interrupts
only after the srngs are initialized.
CRs-Fixed: 2486050
Change-Id: I9e436f30e2f6b67e02db3ed32231570ab51d5f7b
struct csr_roam_session is used in LIM in func
lim_get_session_by_macaddr to get if SA is same as one of the vdev.
struct csr_roam_session should not be used by LIM, so raise change
to used vdev obj manager to find a vdev with same MAC address.
Change-Id: I13bf65a65023a2a8dc82013e2668a075883c111a
CRs-Fixed: 2544552
Since NAN has higher priority over TDLS, disallow TDLS link
when NAN is active.
Change-Id: I7de34dbb2f808c36358ac5266c26e2729b901941
CRs-fixed: 2537158
HDD indicate mgmt frame API is called from scheduler context to send mgmt
frames to user which can happen in parallel to del virtual interface which
can lead to race conditions and stale netdev pointer usage and hence add
OS_IF DSC vdev op protection to indicate mgmt frame API such that when
management frames are getting indicated to user space del virtual interface
transaction is synchronized.
Change-Id: I620225f7a0a46efa6da6d615e3014a8f4f5e43cf
CRs-Fixed: 2543244
IBSS code is protected by "QCA_IBSS_SUPPORT" feature flag, at SME
layer CSR API checks the connection state. For IBSS disable, these
SME APIs to check connection state must return flase.
Change-Id: I1bcd20a07d484cea2769c5b3171d805c8b82b308
CRs-Fixed: 2542724
IBSS code is placed under "QCA_IBSS_SUPPORT" feature flag. IBSS code is
disabled and to enable it define "QCA_IBSS_SUPPORT" in default_defconfig.
ex. CONFIG_QCA_IBSS_SUPPORT := y
Change-Id: I08619dbed4661d9fc132adbcd1de2cd4470a2737
CRs-Fixed: 2542078
HDD open can come in the middle of idle shutdown and if the vdev start
wait API is not in use, HDD open will fail which will result into WIFI
on failure. Hence, use dsc vdev start wait api for HDD open.
Change-Id: I398879d9669d0a9124e844fc325065299a1d7259
CRs-Fixed: 2540661
Fw down indication is received after disconnection
is triggered on STA vdev. After peer delete command
is sent to fw, peer_detach is invoked and peer unmap
timer is started. Since fw is down, peer unmap is
not sent by firmware. Shutdown is not invoked by
pld within the peer unmap timeout value which results
in assert in peer_unmap_timer_handler even though
driver is in recovery state.
Fix is remove the assert in peer_unmap_timer_handler
and trigger recovery which already has the necessary
checks.
Change-Id: Iffd83305d2c1eaec836fcea53d406cada5bfe095
CRs-Fixed: 2542886
Add new runtime pm wakelock for user such that runtime PM can be
disabled for certain scenarios.
Change-Id: Ibaa64f351393b63559b55827f77cdf126e7038b3
CRs-Fixed: 2534535
Based on the ini "ignore_fw_reg_offload_ind" ignore regulatory
offload indicatin from fw.
Change-Id: I6e20f2100eeac8e93baa5c5d3f3d1c8b33356aed
CRs-Fixed: 2532989
In csr_roam_connect, driver check and move to DBS before the connect
is requested if required and once connection is completed, it check
if SMM can be achieved depending on the channel it connected to or
if it failed to connect.
Thus there is no need to check before connection is completed
if SMM is required as driver is not aware of the channel in which
STA will end up connected.
Thus remove the duplicate logic to move to SMM from STA connect.
Change-Id: I0d069fba3c47dec78601a0f3529fde381d4936ed
CRs-Fixed: 2543601
It has "ISO C90 forbids mixed declarations and code"
build issue on the LE.UM.4.1.1, so fix it.
Change-Id: I0bc918f55e9a7d3c540a455ed292977c15300456
CRs-Fixed: 2542657
If proper queue_type is not added the serialization command is not
removed from the queue. Thus the connect command is not removed
from pending queue on receiving the disconnect command.
This lead to HDD and SME out of sync with SME in connected state
and HDD in disconnected state. Thus during stop adapter HDD
doesn't try to disconnect the connected session.
Thus add queue_type as active or pending while calling cancel cmd.
Change-Id: I4af2c63a895065aefbb76609808a972354460cb2
CRs-Fixed: 2543246
In a connect request if there are multiple BSSID, opportunistic
timer is started for each failed BSSID. If connection to a BSSID
takes more than opportunistic time, driver may end up starting
opportunistic timer and queueing SMM request multiple times.
To avoid this unnecessary multiple start of opportunistic timer,
start it only once after final connect failure.
Change-Id: I351cb631fe832239e5f5539f00c306f90192880b
CRs-Fixed: 2543631
PTK and GTK are installed to firmware and installation status
of each key is maintained in driver. Data transmission is allowed
only if both the keys are installed.
Currently these flags are getting cleared after installing both
ptk and gtk to firmware.
But if one key is installed and the other key is not installed
due to some reason(e.g. connection abort), corresponding status
is not cleared and being referred in the next connection attempt.
This is causing the data transmission to happen from driver to
firmware after installing GTK before installing PTK, as the
ptk_installed from previous connection is still set. This is
not allowed by firmware and issues an assertion.
PTK and GTK are invalid once the station disconnects. So reset
the flags as part of connection info cleanup.
Reset the flags before issuing connection also to avoid usage
of previous connect status or garbage values.
Change-Id: I8fa7bd0a15eab2fed80f050e77df3554d0f1b73a
CRs-Fixed: 2542785
Few phymode are missing from enum wlan_phymode and many are not
valid phymode, e.g for 5ghz 40minus and 40plus are not valid.
So add the missing enums and remove invalid enums from enum
wlan_phymode.
Change-Id: I56710c6a04ac365a54e2c4ba138e0e887fbdd960
CRs-Fixed: 2531859
In SAP mode, if he is enabled, the BA buffer size will be
set to 256 in addba response, some STAs can not handle it
properly, which may result in data transmition failure on
these STAs. Then they can not send out DHCP request and so
failed to obtain IP address.
To fix this issue, check the he capability of both STA and
the session, set the buffer size to 256 only when both are
he capable.
Change-Id: If55619d598bb9603cf7ce3bc116d80cf718676d6
CRs-Fixed: 2515183
Consider STA+STA case where roaming is enabled on one sta.
There is a case where STA1 is roaming to a bssid and there is a
connect request for same bssid on STA2. Here the firwmare would
have already created peer for STA1 peer and STA2 peer creation
would have failed. But at host, since there is no response for
peer creation, the peer would be created for STA2 vdev.
When roam synch indication is received, then peer create fails
at host for the roaming vdev due to duplicate peer detection
logic. Still roam synch confirm is sent to the firmware.
When disconnection is received for STA1, then del bss is sent
for this vdev and firmware asserts as the peer was not created
for this STA2 vdev.
Defer the connect request processing and return failure when
roaming is in progress.
Change-Id: I0892dc567cd17e335b1de3cd5260050f2c1e6b44
CRs-Fixed: 2538389
The vdev subtype is needed to know if the operating
mode of a particular vdev is P2P or not.
Hence add the vdev subtype information in the
vdev handle.
CRs-Fixed: 2498715
Change-Id: Ia9b86bad389825474a0506804e07b7af555d36cb
In case wmi_service_peer_assoc_conf is not enabled the add bss resp
return failure and thus the STA connection fails.
To fix this send proper status to add bss resp in case
wmi_service_peer_assoc_conf is not enabled.
Change-Id: I0aa1de8cfb739e31fc89265766f67fea070d3b17
CRs-Fixed: 2538753
When NAPI is disabled, there are some failures show that certain APIs
are not defined, these APIs are not NAPI related and defined in
hif_exec.c. But this file will not be compiled when CONFIG_WLAN_NAPI
is not defined. Remove this build constraint and encap the NAPI related
APIs with CONFIG_WLAN_NAPI in file hif_exec.c. Meanwhile add the HIF_CE_DIR
for USB and SDIO case, otherwise it has build error after hif_exe.c move to
the common directory.
Change-Id: Ie1a32f6abbe2d361e126c361a2522ae0500139e9
CRs-Fixed: 2532586
Change the very high bandwidth threshold to 9000 packets. Thus if the
packet length is 1500 bytes and for 100ms bandwidth interval this is
about 1030Mbps. This makes the high bandwidth range 240Mbps - 1030Mbps.
Change-Id: Ia9d5f9e3547148c5dc378a728514c4020649944e
CRs-Fixed: 2527623