In csr_issue_set_context_req_helper() profile is dereferenced
to get the encryption type.
Add null check before accessing the profile pointer.
Change-Id: I40c148648130918f9da0194ff6e132d55b113008
CRs-Fixed: 2777778
The current contract between the host and the firmware is that
0 means 1x1 nss
1 means 2x2 nss
with the new nl80211 interface the driver is sending 1 for 1x1
and 2 for 2x2 nss, so the command is failing for the 2x2 nss.
Send the nss value as per the current expectation so that rate
setting would take place.
Change-Id: I3cb376704e7e3430fbce0015183812484127cbb8
CRs-Fixed: 2772297
Free keys for vdev when disconnect from AP in STA mode,
otherwise, the keys may be used in the next connection, which will
result in connection failure.
CRs-Fixed: 2773040
Change-Id: I6d3e858cdc5b38b25a4431b9aaf5f2fc3e1019c7
wlan_reg_set_channel_params_for_freq API will check the bonded
channels are valid or not. If invalid ch width is returned, that
means no suitable channel bonding in current regdomain for
requested channel frequency, then abort the vdev start request.
Change-Id: Ibca5ef7af72f1fd45855d64f380abaa49c0f54c4
CRs-Fixed: 2777637
Issue: Currently, host calculates he_caps based on assoc resp
he caps. In case assoc resp doesn't have he_caps host will
set peer mode vht and vdev mode he which may cause issue due
to different peer and vdev modes.
Fix: Consider beacon he caps if he caps not present in
assoc resp to keep vdev and he param same.
Change-Id: Ia47b3d9c30b5ebc59a398a5ece2263ea65b03550
CRs-Fixed: 2777916
When band mask for connected STA is 7(connected in 6GHz), the weight
of 2.4Ghz channels is sent as 1(weight of non-pcl channels). This
allows firmware to roam to 2.4Ghz AP with dual sta roaming enabled.
For 6Ghz connection, set 2.4Ghz channels weight to 0 to disallow fw
roaming.
Change-Id: I9581c51a827e6fa6ac186b531639ce4835ba0faa
CRs-Fixed: 2775276
Host received mixed vlan header frames and non-vlan header frames,
and these frames is belong to same UDP flow. currently wlan host
will assume same UDP flow frames with same L2 header length which
then get incorrect IP/UDP header for non-vlan frames.
Determine FISA continuation by RX frame self L2/L3 header length,
update head skb L2/L3 header length in fisa flow when head skb
changed.
Change-Id: Id61b856773b8dd7f0199055b1e0bf9a2bd98e401
CRs-Fixed: 2778403
In some cases, max_2_4_g_power.len/max_5_g_power.len value
could be 0 and driver tries to allocate 0 bytes through
qdf_mem_alloc. qdf_mem_alloc has a check for 0 size which
logs the failure and returns an error code. But this error
log could cause some delay in the roaming process
unnecessarily as this is not an error case from roaming
perspective. It's better to avoid calling qdf_mem_alloc if
the length is 0.
Add validation for cfg_length in csr_get_cfg_max_tx_power,
if cfg_length is 0 return default maxTxPwr.
Change-Id: Ifd5d90186605e141ed2c107b4170a1d2c82bee0e
CRs-Fixed: 2768190
Since some platform driver does not support for PCIE gen switch,
Using macro PCIE_GEN_SWITCH to control whether function
cnss_set_pcie_gen_speed is invoke or not.
Change-Id: I478cd6426b005014e85c0b3c1c31963045d7322b
CRs-Fixed: 2767110
Qpower config should not be allowed if Qpower config/OPM power save config
is disabled in ini file.
Change-Id: Iff21159f30731f7188506ab5e5e3133d02203b6b
CRs-Fixed: 2778632
In beacon report's RCPI, host updates current RSSI which is incorrect
according to "2008 11k spec reference: 18.4.8.5 RCPI Measurement".
Hence fill RCPI value in beacon report as per "2008 11k spec reference:
18.4.8.5 RCPI Measurement".
Change-Id: I2ce88ad9f5d0db252d96f9e25db336b081cdd9bb
CRs-Fixed: 2776844
Unlike QCA6490, where flow search table(FST) is maintained in DDR;
in QCA6750, the flow search table which is used for RX FISA will be
placed in CMEM. CMEM is an on-chip memory, accessing this memory
would be faster when compared to DDR.
Placing FST in CMEM will bring down the latencies for the HW to access the
flow search table and this latency is critical when FISA is enabled in
QCA6750 to avoid packet drops.
Adding the logic to add/delete FST entries placed in CMEM.
Change-Id: Icbfbb7e00cec813ed3de07a640d203db556da444
CRs-Fixed: 2771183
Firmware sends the base address and the size of the FST in the
FSE CMEM HTT response message; all CMEM transactions from the driver
will be with respect to this base address.
Firmware allocates memory in CMEM and sends FSE CMEM HTT message in
response to the FSE setup HTT request(when the base address of the
FST in the FSE setup message is set to '0').
Change-Id: Ie6d4fa03a09a429024e660443a3501a3bc660c35
CRs-Fixed: 2771175
Firmware advertizes it's support for placing FST in CMEM.
Check for FW's support before sending FSE setup HTT message.
If CMEM allocations are supported, flow search table will
be placed in CMEM, else it will be placed in DDR.
Change-Id: I3f473248a11f9556e36cf8f12930b9993796cc10
CRs-Fixed: 2771172
Adding init/deinit logic for the data structures required to place
flow search table in CMEM.
Change-Id: I315dbeb0f17fd8d3e37be61b6ef77e2bfc2b08ce
CRs-Fixed: 2771169
Fix roam scan mode tlv formation for secure connection.
11i tlv is not filled due to wrong akm check in
wmi_fill_rso_tlvs().
Fix the akm check in wmi_fill_rso_tlvs to fill the roam scan mode
tlv properly.
Change-Id: I59ec0e34139ac4a6d6e2bcc03e84ac695292b1f2
CRs-Fixed: 2778658
Remove roaming_in_progress in hdd_context and
use API hdd_is_roaming_in_progress in
hdd_send_roam_triggers_to_sme()
Change-Id: Icb6022f26e8e3b17782d5c59f2d523635ffc151a
CRs-Fixed: 2771210
IOVA address returned as part of pld_smmu_map for IPA
rx ready doorbell register exceeds the IOVA range
configured in FW by Host. This is because smmu unmap
support is not enabled and due to IOVA range validation
issue in cnss SMMU map API.
Fix is to enable SMMU S1 unmap config flag to enable
SMMU unmap as part of IPA cleanup.
Change-Id: I751044003d1cd91f6520fdbc15585b7bb0f63256
CRs-Fixed: 2775487
Enable SMMU S1 unmap config flag to do SMMU unmap of
IPA TX/RX doorbell registers as part of IPA cleanup.
Change-Id: I056a82592928aa1dde0e9c1ed43c1135424750a8
CRs-Fixed: 2777804
Post message to the scheduler to send twt wmi command and receive the
response event. check twt callback in sme_context to allow only one
twt command for a particular twt operation at any time. Return EBUSY
if a TWT operation is already in progress.
CRs-Fixed: 2769378
Change-Id: I7d3bce413e12c2775a7b2e8e2c5259a8b8e55131
Since PCIE Genoa has separate wlan fw patch for
mission mode(amss.bin) and ftm mode(genoaftm.bin),
but cnss2 platform driver always try to load amss.bin,
which is not feasible. So add this new interface for
cnss2 to get correct driver mode and update the fw
patch name before it start downloading wlan fw
Change-Id: I44565c5f50aa03bbc407ee135ef5b02a040b0df6
If trigger reassociate to same AP with LFR2.0 enabled,
csrNeighborRoamProfile.BSSIDs will not be updated like roaming to
different AP. So we will hit null pointer access when calling
csr_roam_issue_disassociate() in this scenario if reassociate failed.
Check numOfBSSIDs before access array pointer BSSIDs.bssid, if it is
0 means we are doing reassociate to same AP, so must send disassociate
to connected bssid.
Change-Id: I06bac328a164432d6cc425b907a4ca29a78ca306
CRs-Fixed: 2765251