Commit graph

10,149 commits

Author SHA1 Message Date
Surya Prakash Sivaraj
dd25cb7b75 qcacmn: Fix MBSSID parsing for OUIs without subtype
Host splits MBSSID into individual scan entries. The IEs
added into the new scan entries should neither be in the
non-inheritance list nor a duplicate IE. Host checks duplicity
of Vendor specific IEs by comparing the OUI, type subtype of
the non-tx and tx BSSID IEs.

Adaptive 11r VS IEs doesn't have subtype, and host uses
IE data as subtype. In this case, even if both the IEs are
same, still both are added into the new scan entry. The
supplicant uses the capability from the first IE belonging
to the tx profile leading to connection failure.

In MBSSID parsing logic, add exception for OUI from this
specific vendor in the Vendor IE comparison logic.

Change-Id: I7bb6cc7ebe34a5f007b9b84c91d6db6c7fcf997b
CRs-Fixed: 3084721
2021-12-23 04:14:13 -08:00
Shwetha G K
2b97da9050 qcacmn: Fix invalid VAP instance error in RCC case
Fix the invalid VAP instance error seen when RCC is
enabled and ol_ath_stats (enhanced stats) feature is
disabled case.
Populate gI as well similar to other rate stats in
CFR handler where this information would not be
available if ol_ath_stats is disabled.

CRs-Fixed: 3056621
Change-Id: Id1af6359408cb977ba0becf298121ee10dd5ef72
2021-12-21 09:56:15 +08:00
Wu Gao
c4bd71be6c qcacmn: Populate additional params to CFR info for QCA6490
HAL changes to populate agc gain, CFO, rx_start_ts, mcs_rate and
gi_type to CFR info for QCA6490.

Change-Id: I6f6f47c87d40bd661162f764fb3a360230a56457
CRs-Fixed: 3086667
2021-12-17 19:29:36 -08:00
Wu Gao
9a4fd7c02d qcacmn: Don't write stop string after CFR stopped
User space needn't stop string if host indicates data by netlink.

Change-Id: I905c2bd53705307cffb3c0911a84edf42908aee1
CRs-Fixed: 3076152
2021-12-17 16:42:52 -08:00
Wu Gao
9fbee4330a qcacmn: Add chip type QCA6490 & QCA6750 in cfr meta data header
There is wrong chip type in cfr meta data header if run CFR/CSI with
HSP since doesn't fill it for QCA6490 & QCA6750.

Change-Id: I932c065d33c5eaa33f66ec8a92470f5820472d7b
CRs-Fixed: 3073865
2021-12-17 16:42:47 -08:00
Shwetha G K
2c4fa6c932 qcacmn: Add sig info parameters to cfr info
Add sig info parameters like dcm, stbc, coding etc
to cfr_info

CRs-Fixed: 2966868

Change-Id: If0c36f58d93c631c75ecfbe47fa1f8cafa84dfaf
2021-12-17 16:42:41 -08:00
Shwetha G K
0b75aa69c2 qcacmn: Populate mcs & gI parameters to cfr_info
Populate mcs rate & gI type parameters to cfr_info

CRs-Fixed: 2966865

Change-Id: Id9cc720a12d2aa3840620bde97fa44ede66d86c6
2021-12-17 16:42:36 -08:00
Shwetha G K
55105a2a43 qcacmn: Extract mcs & gI info from peer tx event
Changes to extract mcs rate and gI from cfr peer tx
capture event.

Change-Id: Ia64807aed4559466dc25f20928ed8c43ae77be62
2021-12-17 16:42:31 -08:00
Shwetha G K
beeca2250f qcacmn: Add mcs, gi and sig info to metadata
Add MCS, gI, and other SU sig information to CFR metadata

CRs-Fixed: 2966860

Change-Id: I541fe9ba12c8a01ea6817ec1dda0c9a436d2d76a
2021-12-17 16:42:26 -08:00
Shwetha G K
33ff485015 qcacmn: Add mcs, gI & sig info to cfr metadata
Add mcs rate, gI type and other SU sig info to cfr metadata.
For Tx based capture mcs rate & gI type is applicable
MCS For legacy mode
      0: 48 Mbps
      1: 24 Mbps
      2: 12 Mbps
      3: 6 Mbps
      4: 54 Mbps
      5: 36 Mbps
      6: 18 Mbps
      7: 9 Mbps
      8: invalid entry
MCS for HT, 0-7: MCS0-MCS7,
MCS for VHT, 0-9: MCS0-MCS9,
MCS for HE, 0-11 MCS0-MCS11, 12-13: 4096QAM
GI:
     0: 0.8 us
     1: 0.4 us
     2: 1.6 us
     3: 3.2 us
ltf_size:
     0: he_ltf_1_x
     1: he_ltf_2_x
     2: he_ltf_4_x
dcm: Indicates if DCM set
     0: No DCM
     1: DCM
sgi: Indicates if short gI used
     0: No short gI
     1: short gI
beamformed: Is packet beamformed
     0: non-beamformed
     1: beamformed
stbc: Indicates if stbc applied
     0: No STBC
     1: STBC
Coding:
     0: BCC
     1: LDPC

Change-Id: If6ab4b4878ab24406aba0e890ec08a2dae2b4634
2021-12-17 16:42:21 -08:00
Shwetha G K
aee8b781d8 qcacmn: Cleanup CFR meta version structures
Cleanup CFR metadata version structures to avoid redundant
& unused definitions

Change-Id: Ia8b8234a38455f8c976600ef40c0a56c7bf66a53
2021-12-17 16:42:16 -08:00
Shwetha G K
65714f33fd qcacmn: Cleanup CFR meta version structures
Cleanup CFR metadata version structures to avoid redundant
& unused definitions

CRs-Fixed: 2966842
Change-Id: I81a4f780ffc70be266fbcaa43ff739c544a49c02
2021-12-17 16:42:11 -08:00
Shwetha G K
79cfea059a qcacmn: Populate additional parameters from CFR capture event
Add CFO, agc_gain and rx start timestamp related parameters
to wmi_cfr_peer_tx_event_param and populate the same with
data from FW peer tx event.

Change-Id: I462fa56a854b18d1f9b46d1e14eea85da0d45f23
2021-12-17 16:42:06 -08:00
Shwetha G K
924857a53a qcacmn: Populate additional params to CFR info
HAL changes to populate agc gain info, CFO and rx_start_ts
parameters to CFR info

Change-Id: I71ae6bf94095e82053d59114a6ae4bdb6b4586d2
2021-12-17 16:42:01 -08:00
Shwetha G K
5a4758e1fe qcacmn: Populate additional cfr parameters to cfr info
Populate agc gain info, CFO and rx_start_ts to cfr info

Change-Id: I5f841b25ee55a9ca890012ebddfaa8c57f606add
2021-12-17 16:41:56 -08:00
Shwetha G K
668ec8ba0f qcacmn: Update cfr metadata len calculation logic
Separate the common fields of csi_cfr_header and update
the logic of calculating the cfr_metadata_len.
Move cmn header update code to single place.

CRs-Fixed: 2916901
Change-Id: I97d99df45f667f4ed3b80264b12d3d09a3bcae95
2021-12-17 16:41:48 -08:00
Shwetha G K
0555407656 qcacmn: Update the cfr_metadata_len of cfr header
Update the cfr_metadata_len of cfr header

Change-Id: I85f0d4c1637b93608cebb77d6e8ea41b3d1cb713
2021-12-17 16:41:43 -08:00
Shwetha G K
107d6a5048 qcacmn: Add additional parameters to CFR meta data
Add per chain agc gain in dB information, CFO & rx_start_ts
fields to CFR metadata

Change-Id: I6af9c4212fe5a0bed6e51516d1c446155cea63aa
2021-12-17 16:41:38 -08:00
Shwetha G K
a48f5b3c5c qcacmn: Extract additional info to cfr metadata
Extract agc gain information, CFO & rx_start_ts from
rx status and cfr peer capture event to CFR host metadata

Change-Id: Id896554f1da6920bd3eeced1298b07857d41a68b
2021-12-17 16:41:31 -08:00
Karthik Kantamneni
c183eeaca4 qcacmn: Fix compilation error in flow control switch case logic
In flow control code switch logic break statements are not used
intentionally, but compiler is treating this as error.
So to avoid compilation error add fall through comment.

Change-Id: Ic79b75c48554182fba7c4c0f3885e3a44347e2e7
CRs-Fixed: 3090182
2021-12-13 03:37:49 -08:00
Dundi Raviteja
3248f7adec qcacmn: Avoid possible out of array access
In function wbuff_buff_put(), there is a possibility to
access array out of boundaries for module slot and pool slot.

Add condition to check for array boundaries.

Change-Id: Iaf5a0ef6b2e712804717abf27d0c0d06862a04f5
CRs-Fixed: 3086342
2021-12-13 02:54:25 -08:00
Jianmin Zhu
b05e30407f qcacmn: Fix 11ac no rate info in monitor mode
PPDU nss is set as 0 illegally for qca6490, can't calculate rate.

Change-Id: I6d06d4cb220300e202f7b4f93e4e0eb1299cc8e6
CRs-Fixed: 3085590
2021-12-10 01:56:10 -08:00
Liangwei Dong
87b2d3e4ea qcacmn: Set retry_limit_ext for MGMT frame send WMI command
Some p2p action frame needs big retry count than the default
max 15 retry count to get high tx successful ratio.
FW allocates 3 extra bits for retry count setup.
To use this field needs FW change in CR 3082533.
Set the extra 3 bits "retry_limit_ext" to "tx_param_dword0"
field for WMI MGMT send command. Existing 4 bits
"retry_limit" combines with this new 3 bits
"retry_limit_ext" to create a 7 bits retry count:
bit 0 - 3: retry_limit
bit 4 - 6: retry_limit_ext.
So Maximum 127 retries can be specified to a certain mgmt
frame.
To use this field needs FW change in CR 3082533.

Change-Id: I889933ea1750c03701ba8a60340f27e6c2594c1b
CRs-Fixed: 3082534
2021-12-09 14:38:53 +08:00
Surya Prakash Raajen
f2da57d9ca qcacmn: Add support for beamforming in mgmt frames
Add support for enable beamforming in mgmt frames to FW.

Change-Id: I0b7f8d13b6fc399d6255b217f5a53cd3c595fa51
CRs-Fixed: 2976861
2021-12-09 14:37:10 +08:00
Karthik Kantamneni
2361ccf5b8 qcacmn: Increase EP wake timeout for debug build in QCA6750
Currently EP wake delay timeout is less and there is chance
of timeout to happen, so increase the timeout value.

Change-Id: I59261ade269908cd4d9c17025838807f39913999
CRs-Fixed: 3086547
2021-12-07 20:00:00 -08:00
Karthik Kantamneni
ba98d887f9 qcacmn: Fix disconnection issue due to N/W queues pause
Due to DP flow control network queues are stuck in
paused state and not getting reset even after new connection.
This is causing DHCP packets to be dropped and resulting
immediate disconnection after every connection.

Fix this by properly pausing and unpausing the AC flow control
based network subqueues during disconnection/connection events.

Change-Id: I280e704d5a01b19d180c32aaa272c0cb731f8c0e
CRs-Fixed: 3078745
2021-11-30 14:42:19 +05:30
Jingxiang Ge
6b0bc63a02 qcacmn: Fix compliation error when disable CONFIG_LEAK_DETECTION
Fix error when disable CONFIG_LEAK_DETECTION.

Change-Id: I16d85b596ef64ad45e9fb0bb594b0a3287554e8f
CRs-Fixed: 3080460
2021-11-28 19:35:39 -08:00
wadesong
c97dd3ff6f qcacmn: Add all membership selector elements
Include all elements from the BSS membership selector value encoding
table.

Change-Id: Ia9dda9aaa44d5c6ea83d750676511c1ed74bfb4b
CRs-fixed: 3050316
2021-11-25 13:43:55 +08:00
wadesong
5f60fdf1a3 qcacmn: Add bss membership selectors to wlan_cmn_ieee80211.h
These defines are used by Supported Rates or Extended Supported Rates
IE to set additional information beside rate.

Change-Id: I44eac41a9a07d368a6fe3abc76e341915b3249b9
CRs-Fixed: 3034939
2021-11-25 13:43:55 +08:00
Jingxiang Ge
c8e095d931 qcacmn: classify qmi/wmi for WMI_REQUEST_STATS_CMDID
Classify qmi/wmi by request type, only TYPE_STATION_STATS
is designed to be sent by qmi so far.  other type will
continue go with wmi.

Change-Id: Ibaee99c0a9d59b0db634e84f3c0b6e40b65a185d
CRs-Fixed: 3077792
2021-11-24 14:43:35 -08:00
Abhishek Singh
b2aa7520e0 qcacmn: Add debug log in case BSS is filtered out due to freq list
Add debug log in case BSS freq is not matching the freq list
provided in scan filter.

Change-Id: I00da614f4a5b4fdf58122cf2750afe5c03114536
CRs-Fixed: 3035787
2021-11-23 22:12:12 -08:00
Rakesh Pillai
3eb1560d2d qcacmn: Disable intra-bss forwarding for NDI interface
Disable intra-bss forwarding for NDI interface.

Change-Id: I0f3276547795defbd6c0f1f387b5e0018ef11048
CRs-Fixed: 3073451
2021-11-17 13:46:21 -08:00
Amit Mehta
dbdce3e282 qcacmn: Extend tid_lock in rx defrag store fragment path
Currently, we are Flushing fragments for peer as part of rx defrag
clean up. There is the possibility that frag flush is called while
we are accessing frags in rx defrag store fragment path in parallel.
Which will cause access after the free issue.

Extending lock in rx defrag store fragment path to avoid any
parallel flush while accessing the frags.

Change-Id: I1e897b195f61d80ea6738e9a93f7bcaaa04adc97
CRs-Fixed: 3065414
2021-11-16 03:58:47 -08:00
Jianmin Zhu
6e25c408bd qcacmn: Fix TSO nbuf unmap missing issue
if tx hw enqueue failed, tx descriptor is released first, nbuf pointer
in it is reset to NULL, then descriptor unmap will fail, nbuf is left
unmapped in wlan CB, in worst case, wlan CB DMA address space is used
out, new dma map will fail, assert will happen.

Change-Id: I97b4ab304d884cafcf0303529ed93682690dce12
CRs-Fixed: 3073466
2021-11-12 10:59:35 +08:00
Yeshwanth Sriram Guntuka
233121e3a7 qcacmn: Use a max of 5 WBM2SW rings for HSP to address wcov failure
The maximum WBM2SW rings in whunt for HSP is 5 and
the same could be 4 in wlan code which will result
in wcov failure for HSP. Use a maximum of 5 WBM2SW
rings for HSP based on FW_SIM config flag to address
this failure.

Change-Id: I8340cd094eb1e0cf842894e5c89174d410729028
CRs-Fixed: 3071662
2021-11-10 23:28:13 -08:00
Amit Mehta
4e10e7c5ae qcacmn: Update MPDU retries in case of successful transmission
In case of successful transmission If MPDU tx
is retried more than the threshold then
increment MPDU retry count by transmit_cnt / threshold

Change-Id: Idbc7e2d0579ff68e272132fe4ffe9f951c4aacf5
CRs-Fixed: 3058464
2021-11-10 12:08:55 -08:00
Srikanth Marepalli
0ed270bc99 qcacmn: Add roam set param command for roam params
This change introduces the new roam set param WMI command to set
the roam params from host to FW.
Also added a fail_bssid param in wmi_roam_result TLV to know the
roam failed AP BSSID from the FW.

Added a new vendor command event for sending roam events stats
attributes to userspace.

Change-Id: I7a08635a7912cbd940d90a2d62433296740ad913
CRs-Fixed: 3050799
2021-11-08 22:06:09 +05:30
Srikanth Marepalli
cd924b9139 qcacmn: Vendor command to configure/trigger the roam events
Introduce a new vendor command QCA_NL80211_VENDOR_SUBCMD_ROAM_EVENTS
that aims to configure/trigger the roam events from the driver.

Change-Id: Ifd9464cc8cb485890c8d171dc136d377f7a59fa1
CRs-Fixed: 3028404
2021-11-08 21:56:55 +05:30
Amit Mehta
4a8efff233 qcacmn: Change logging time-stamp source
Currently there is mismatch in time-stamp source for
hif_hist_skip_event_record with respect to hif_hist_record_event

Updating time-stamp source in hif_hist_record_event to match with
hif_hist_skip_event_record time-stamp source.

Change-Id: I55680c40860eafb5c6ed6117ab7c55bb38cc24bb
CRs-Fixed: 3000319
2021-11-01 00:00:32 -07:00
Karthik Kantamneni
8dca694d19 qcacmn: Flush reg work instead of cancelling in deinit path
Currently reg work is being cancelled in deinit path,
cancel work will remove all the pending work items
and wait for completion of current executing work.
But in reg work case even pending work items has to be
executed because we don't want to skip HP/TP values update.

To avoid this make sure all the pending reg work items are
flushed then disable the work for further queueing.

Change-Id: I2ba1e26cf41fb3b0c33ec584c56525cbfac94d8f
CRs-Fixed: 3065038
2021-10-28 23:19:23 -07:00
Jianmin Zhu
871a0512ab qcacmn: Fix wrong rssi in monitor mode
If ppdu rssi unit is dbm, need convert to db for API:
qdf_nbuf_update_radiotap, only need convert once for first mdpu in the
ppdu. if convert for each mpdu, wrong rssi will be saved.

Change-Id: I85e92121ddb289e3513022ff092083825197efb4
CRs-Fixed: 3057041
2021-10-27 22:46:37 -07:00
Lin Bai
3bd491ab96 qcacmn: Move unsafe info to regulator msg
If two channel avoid event reported by FW back to back, flag
psoc_priv_obj->ch_avoid_ind of 2nd event set by
reg_process_ch_avoid_event may be modified when processing
1st event in reg_call_chan_change_cbks, from
scheduler_thread context.

Copy chan avoid info to message post to scheduler to avoid
such timing issue.

Change-Id: I8fd5e7e8f2d9b2117a5c6a54fd8b64659e10f7d6
CRs-Fixed: 3012331
2021-10-26 14:18:02 -07:00
Jianmin Zhu
1cbe11a695 qcacmn: channel_switch_complete_evt need wake up all waiting threads
2 threads blocked to wait channel_switch_complete_evt for SAP channel
switch is already in progress,  qdf_event_set only woke up 1st thread
later,  2nd  thread still kept blocked with hold  net_dev for debug id
NET_DEV_HOLD_COUNTRY_CHANGE_UPDATE_SAP, leak happened.

Change-Id: Ib76318dd4a613ca1852a56b7701a04385b69ba56
CRs-Fixed: 3061976
2021-10-26 06:13:30 -07:00
Karthik Kantamneni
518cd0745c qcacmn: Add HIF events to track NAPI POLL exit time
Add HIF events to track NAPI POLL exit time, this gives
information about actual time spent by wlan host in napi softirq.

Change-Id: I7548fd05f2f7db714ac9bcf79171ffb3d478e936
CRs-Fixed: 3052902
2021-10-20 13:29:26 -07:00
Srinivas Dasari
737d944f2a qcacmn: Allow NAN LOG messages upto a size of 400 bytes
Currently, host allows NAN log messages from firmware upto a max
size of 200 bytes. But firmware may need to send bigger messages
than this in case of stats events as tx/rx stats message length
can go upto 350 bytes.
So, allow NAN messages upto 400 bytes to avoid splitting
the stats messages.

Change-Id: Ibb03944da81ed8d378dadbf4750013e0fe941e57
CRs-Fixed: 3049258
2021-10-19 14:39:31 -07:00
Vevek Venkatesan
294e63f987 qcacmn: cleanup FEATURE_HAL_DELAYED_REG_WRITE_V2 support
This FEATURE_HAL_DELAYED_REG_WRITE_V2 was added to fix the
Audio jank issue, but it could not resolve it completely,
so that was later fixed by existing delayed reg write
support with the help of SMP2P messages to communicate
with FW regarding PCIe link status. This code is not being
used, so removing it and cleaning up the redundant code.

Change-Id: Iada088e72a76b4c071c8a80ee945f36ac959670e
CRs-Fixed: 3056475
2021-10-18 21:51:58 +05:30
Pragaspathi Thilagaraj
f2b85f4201 qcacmn: Validate SSID first while fetching peer pmksa
Validate the SSID & cache ID if SSID length is present in the
pmksa entry, as in FILS case only SSID and cache id are filled
and BSSID is not filled.

So validate the BSSID only if the SSID is not present.

Change-Id: Ia0a31f953869f00495fad597bb564ec706425312
CRs-Fixed: 3051530
2021-10-18 05:28:55 -07:00
Wu Gao
92c8c2bb84 qcacmn: Check function pointer to avoid NULL point dereference
It calls spectral_process_phyerr of spectral operations without any
check. Which cause null point dereference potentially. So, check this
pointer before calling.

Change-Id: Iae246f847dd41e62b628223652a9527a65b43799
CRs-Fixed: 3055246
2021-10-17 04:52:29 -07:00
Amit Mehta
796b48ae0b qcacmn: Ring History Display update
TP and HP values are assigned wrongly while
printing ring history. Fixing assignment.

Change-Id: I50ea90a3b49ab4d5459a3e0ddfa259f669764433
CRs-Fixed: 3051531
2021-10-11 06:29:58 -07:00
Surabhi Vishnoi
e23020bd46 qcacmn: Add cdp api to update the packet capture mode
Add a CDP api to update the packet capture mode in dp_soc
when it get updated by user using vendor command.

Change-Id: Id0856aeeb5e1a77e1ce6fb23562fdbff4a2fb320
CRs-Fixed: 3048344
2021-10-11 11:05:05 +05:30