Commit Graph

10043 Commits

Author SHA1 Message Date
Abhishek Ambure
4fb0c8fccb qcacmn: Add support to save gtk and set hlp data
Host add support to save gtk and set hlp data from fils ie of connect
response.

Change-Id: I5e6b9882359697f09a0935a9c07f3427dbe04cc2
CRs-Fixed: 2849123
2021-01-07 23:29:05 -08:00
gaurank kathpalia
5431b5345c qcacmn: Add legacy pointer in connection manager context
Add legacy pointer in connection manager context to use for RSO
and other connection manager legacy operations.

Change-Id: If3fdfc7d830fb15f6c2ef56cdd0b7b3dde7f5f36
CRs-Fixed: 2845981
2021-01-07 23:29:02 -08:00
Yu Tian
ab67bf289d qcacmn: Fix the error statistics field for CNE
rx_mpdu_missed statistics used by CNE records instances
of BA hole happens, not duplicated frames instances.
Fix this field with correct value to avoid incorrect
VOLTE switching.

Change-Id: I815b9a4caeb6eedf36be66f8650ca98d00542c60
CRs-Fixed: 2848460
2021-01-07 21:13:55 -08:00
Jyoti Kumari
82a2d30a28 qcacmn: Fix out of bound read issue in ESP ie parse
During esp ie parse from beacon/probe response, the data pointer
is getting read from esp ie and it's not validate while updating
to esp params which may cause out of bound read issue.

Validate data pointer before updating to esp params.

Change-Id: I1167b82248613cc65fcd7c70cdcfe57595de6b21
CRs-Fixed: 2842234
2021-01-07 19:11:32 -08:00
Mainak Sen
37a91751be qcacmn: Enable Peer authorization support in RX path
In security mode, allow only EAPOL frames in receive path
when peer is not authorized. This feature is enabled per VAP
based on vdev flag and will be applicable for all peers in that
VAP

Change-Id: Ic5dea09c2083f31e8cd301a0cdc3565f247b735c
2021-01-07 16:48:52 -08:00
Jinwei Chen
6676daab7d qcacmn: fix incorrect radiotap rssi for monitor frame
For lithium based chip, the rssi_comb value fetched from monitor
buffer TLV is in unit dBm already, if plus noise_floor value in
qdf_nbuf_update_radiotap() again, then the rssi showed in wireshark
will be incorrect.

Convert rssi_comb to unit dB and not impact legacy chip in
qdf_nbuf_update_radiotap().

Change-Id: I889a15f39ebc639386405fb0aae1909c0cce75e0
CRs-Fixed: 2844896
2021-01-07 14:36:08 -08:00
Vignesh Mohan
7bf41957c0 qcacmn: Use 160MHz center while calculating subchannels
Use 160MHz center while calculating subchannels.

Change-Id: I2059ebce90624a5bddfc8787380de6c59625d44e
2021-01-07 14:36:04 -08:00
Rajasekaran Kalidoss
d7ec7b4010 qcacmn: Add support to handle twt notify event
Add support to handle twt notify event from firmware.

Change-Id: Ia4a84b0f3cfb76401681707c08e8169d07dacdbd
CRs-Fixed: 2847179
2021-01-07 10:29:02 -08:00
Shwetha G K
d384cff416 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-01-07 08:18:07 -08:00
Shwetha G K
13349de3b8 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-01-07 08:18:03 -08:00
Shwetha G K
ff664f8bb9 qcacmn: Populate additional cfr parameters to cfr info
Populate agc gain info, CFO and rx_start_ts to cfr info

Change-Id: I5f841b25ee55a9ca890012ebddfaa8c57f606add
2021-01-07 08:17:59 -08:00
Shwetha G K
42a2faa714 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-01-07 08:17:56 -08:00
Shwetha G K
44d132cc27 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-01-07 08:17:52 -08:00
Shwetha G K
d11c7baf48 qcacmn: Update the cfr_metadata_len of cfr header
Update the cfr_metadata_len of cfr header

Change-Id: I85f0d4c1637b93608cebb77d6e8ea41b3d1cb713
2021-01-07 08:17:48 -08:00
Pragaspapthi Thilagaraj
d5cfa3829a qcacmn: Reduce excessive kmsg logging in roaming path
Reduce excessive data path logging to kmsg during roaming and
change the logging level for such prints to debug/info
high.

Change-Id: I1e6506de83e59a31304234905a3dd38f6d8b03f3
CRs-Fixed: 2848624
2021-01-07 08:17:44 -08:00
Karthik Kantamneni
dcba7b8baf qcacmn: Maintain counter for nbuf tracker nodes memory allocation failures
During nbuf free if entry is not found in debug tracker list
it is treated as double free or unallocated buffer free
which is not correct because there is possibility of nbuf
entry not being present in debug tracker list due to memory
allocation failures for tracker nodes in system low memory state.

Maintaian counter for nbuf debug tracker node memory
allocation failures, during nbuf free if entry is not found
in debug tracker list and tracker memory allocation failures
are present then don't raise issue for nbuf free.

Change-Id: I770cfc23bad35af7e7dbec34852a31cc68300ca5
CRs-Fixed: 2844059
2021-01-06 21:55:11 -08:00
Rakesh Pillai
f1aa992998 qcacmn: Pre-alloc rx rings history when feature is enabled
Currently the rx rings history is allocated dynamically
on load time. The memory requirement for saving these
history are more than a page (order 5 to 6 allocations).
Such big memory allocation can fail due to various
reasons, one of them being memory fragmentation.

Fix this by pre-allocating the rx ring history memory.
Also allocate the rx reinject history memory when the
HW accelerated path is used.

Change-Id: Id957cd5df91a2ca7f182dea691a0557b4e386f55
CRs-Fixed: 2844388
2021-01-06 21:55:07 -08:00
Jyoti Kumari
a7cc077a26 qcacmn: Fix out of bound read issue in util_scan_parse_rnr_ie()
During ie parse from beacon/probe response, the variable
tbtt_count and tbtt_length in util_scan_parse_rnr_ie() getting
read from ie and the value is not checked before using it which
may cause out of bound read issue

Validate tbtt_count and tbtt_length before using it

Change-Id: I51cfb2356fb16feda8a70c4b76c7f76c90b1393b
CRs-Fixed: 2836205
2021-01-06 21:55:03 -08:00
Liangwei Dong
22151e9f26 qcacmn: Iterate vdev with "Create" state check
Use safe API - wlan_objmgr_iterate_obj_list to enumerate
vdev. It will check vdev in "create" state by
wlan_objmgr_vdev_try_get_ref.

Change-Id: I650801c07846e22f1863925ed4316c0a24bd9cae
CRs-Fixed: 2849177
2021-01-06 21:54:59 -08:00
Wu Gao
f9ead26a48 qcacmn: Add dfs macros to avoid compilation issue
There is compilation issue since dfs macros only defined with
WLAN_COMP_CHAN_MODE. So adds related definitions for the case without
WLAN_COMP_CHAN_MODE.

Change-Id: I4b9f16b5000304157067be565864cc79c510770f
CRs-Fixed: 2848979
2021-01-06 17:58:05 -08:00
Edayilliam Jayadev
8c199ecfc5 qcacmn: Fix compilation error when Spectral is disabled
Fix the compilation error which occurs when Spectral
feature is disabled.

CRs-Fixed: 2847001
Change-Id: I133aff14cc069864ca5b4ce3bc9c5a225c2b0c05
2021-01-06 17:58:01 -08:00
Adil Saeed Musthafa
13f9b12f6a qcacmn: ini setting for strict-channel-mode
Introduce ini setting to enable or disable strict_channel_mode. When
this mode is enabled, driver will no longer implicitly select a
different channel (or phymode) if the user configures a phymode (or
channel) which the existing channel (or phymode) does not support. Also
with this mode, the user cannot change country at runtime, if the existing
channel/phymode combination is not supported in the new country.

Change-Id: I8e6246530df5d125a91068d513b436fe71f68e5a
CRs-Fixed: 2842892
2021-01-06 13:52:49 -08:00
Yeshwanth Sriram Guntuka
871c29e8f2 qcacmn: Set IPA WBM2SW ring HP to DDR addr on disable pipes
WLAN HW can still access the IPA tx doorbell address post
disable pipes if there are any pending tx completions which
could result in a NOC error.

Fix is to reset the WBM2SW ring HP addr to shadow addr in
DDR before pipes are disabled.

Change-Id: I52900eb34530388487923a887354ef8839d8c728
CRs-Fixed: 2846421
2021-01-06 13:52:45 -08:00
Chaoli Zhou
4096046a47 qcacmn: Fix OOB issue for bwnss oui
If is_bwnss_oui return true in util_scan_parse_vendor_ie,
and it will run into below logical:
scan_params->ie_list.bwnss_map = (((uint8_t *)ie) + 8)
But in fact if ie->ie_len < 6, it will casue read out
of boundary issue. So add the length chekcing before
reading it

Change-Id: I0cdf723154eb808f8062efd897f9d67d54d4573b
CRs-Fixed: 2838849
2021-01-06 11:44:29 -08:00
Abhishek Singh
a945925ad3 qcacmn: Add APIs to check roam substate state in connection manager
Add APIs to check roam substate state in connection manager.

Change-Id: I1c91e4e0bcb971d66bdf5d44af96d4049f991dfd
CRs-Fixed: 2847369
2021-01-05 22:34:30 -08:00
Shashikala Prabhu
3a7cf8ca4a qcacmn: Move WIN only wmi structures to qca-wifi-oss repo
Move WIN only WMI structures from cmndev repo to oss repo.

Change-Id: I1d11f5573385e687a4ec25531cb87432e198f4af
CRs-Fixed: 2847337
2021-01-05 20:28:27 -08:00
Kai Liu
d7c8cf6738 qcacmn: Fix wrongly used wmi hang data event/cmd log buffer
WMI cmd and event use different log buffer, when trace the hang
data, proper wmi buffer should be used according to API's parameter.

Change-Id: Ic87482e92600b2bb579347447388a791dc2ca563
CRs-Fixed: 2847223
2021-01-05 18:14:44 -08:00
Manikanta Pubbisetty
a5c11aabcb qcacmn: avoid FSE cache flush messages during runtime suspend
When runtime power management is enabled, until the system is fully
resumed, we do not post any message to CE, instead they will be queued
in HTC. Once the device is fully resumed, all HTT messages in the queues
will be downloaded to CE at once. In some corner cases, it is found that
too many FSE caches flush messages getting queued during the runtime
resume; once the device is fully resumed, all these would be downloaded
to the FW/HW at once causing unintended crashes.

Avoid posting FSE cache flush messages until the device is fully resumed
to fix the issue.

Change-Id: I2be21406e8c7a9dcd86df3e93c2568797defcad0
CRs-Fixed: 2843541
2021-01-05 18:14:39 -08:00
Jinwei Chen
f3a732ed1c qcacmn: Add function to get gso_segs from skb
Add qdf function to get gso_segs from skb.

Change-Id: I92eca7fb4adf6d08454f27469a62f4d16ff1072c
CRs-Fixed: 2846442
2021-01-05 16:13:19 -08:00
Linux Build Service Account
76e56576b2 Merge "qcacmn: Modify logs for QDF_MODULE_ID_MON_FILTER" 2021-01-05 03:37:18 -08:00
Linux Build Service Account
d8eea7c043 Merge "qcacmn: Reorder and optimize channel mode macros" 2021-01-05 03:37:17 -08:00
Shikha Bakshi
71477431f3 qcacmn: Modify logs for QDF_MODULE_ID_MON_FILTER
Add macros like dp_mon_filter_err, dp_mon_filter_debug,
dp_mon_filter_info, etc. to define logs.

Change-Id: I57ab964334fc079bbe9f9b57784be548eabd9aa1
2021-01-05 02:59:34 -08:00
Surya Prakash Raajen
21e219fe2f qcacmn: Reorder and optimize channel mode macros
Reorder channel mode macros to have macros in logical
order, and to optimize the channel modes to use
bit specific enums instead of single bit to reduce
the usage of number of bits. The changes are specific
to host

Example for Channel mode: IEEE80211_CHAN_HE20
Channel modes represents only the information regarding
to channel such as band, width, passive, DFS, blocked
40MHz_intolerant and so. It doesn't have information
regarding hwmode like 11ac,11ax.

CRs-Fixed: 2846331
Change-Id: I197de032a4d677a27b46028fa090a6eabe0c6086
2021-01-05 02:59:30 -08:00
Rajasekaran Kalidoss
9fc1e5f34b qcacmn: Add wake time absolute tsf value field in nudge command
In nudge response, FW sends wake TSF value. Implement changes
to handle wake TSF values.

Change-Id: I941f1dbab3ba83bba1f0b8e03b83d1b81365c7dd
CRs-Fixed: 2847181
2021-01-04 22:47:21 -08:00
Ashish Kumar Dhanotiya
48dee39efb qcacmn: Rate limit invalid channel number messages
Channel number can be invalid when finding out the enumeration for the
channel. Rate limit the messages for the same.

Change-Id: Ie6cf178482647547d58d4d9555763332d6598846
CRs-Fixed: 2843978
2021-01-04 18:46:29 -08:00
Ruben Columbus
60e9a2d116 qcacmn: add extra stats pdev and vdev lvl
stats added for descriptor alloc fail and tx outstanding too many

Change-Id: Ie2c676979f21e8f0ab217e8c666a8cdf3efbf7f1
2021-01-04 13:51:41 -08:00
Vevek Venkatesan
86f4aa6017 qcacmn: add sync between suspend and wow resume in runtime pm
In moselle, once wow enabled there is a possibility that wow wake
interrupt can be fired from FW during runtime suspend in-progress
in host, this will introduce a race between runtime suspend and
resume, so adding a synchronization between runtime suspend and
wow triggered runtime resume.

Change-Id: I38d6a24e4421697cc2d0090ba8d19884885596cb
CRs-Fixed: 2845672
2021-01-04 05:08:47 -08:00
Srinivas Dasari
82acedd149 qcacmn: Copy flags also when the 6g channels are sorted
Currently, 6g channels are sorted based on the weightage of each
channel. Frequencies are sorted but the flags associated to each
channel are not updated properly. So, channels carry invalid
flags to firmware and firmware may miss to scan few 6g channels
based on these flags and may scan few 6g channels unnecessarily.
Copy flags also while sorting frequencies to maintain the flags
of each channel as it is.
Also, change the type of phymode to enum scan_phy_mode
from uint32_t.

Change-Id: I0a2330faab1b738f2d7eff3d39ccbfffd51dfde0
CRs-Fixed: 2840029
2020-12-31 10:37:37 -08:00
Srinivas Dasari
865573d455 qcacmn: Possible buffer overflow while copying rnr info
A temporary variable "temp" is declared to use it while sorting
the channels based on the weightage/rnr info. This is declared
as a pointer to hold the reference of struct rnr_chan_weight but
memcpy is done to this without allocating memory.
Declare this as a variable instead of pointer to use it as an
intermediate variable for sorting.

Change-Id: If619f5fa462d5400f0a77e57317ac3c8debb34a5
CRs-Fixed: 2842819
2020-12-31 10:37:32 -08:00
Abhishek Ambure
2f21a68e2a qcacmn: Update bssid in cm request from cm_get_active_disconnect_req
To get active disconnect request host uses cm_get_active_disconnect_req
API. Update missed field BSSID into connection request from
cm_get_active_disconnect_req API.

Change-Id: I94fa3e14b4584b95b1d918390e5572fa8f112571
CRs-Fixed: 2846679
2020-12-30 11:24:50 -08:00
Karthik Kantamneni
c4845219dc qcacmn: Enhance debug info in rx descriptor
Add previously freed nbuf and buffer start address info in rx descriptor.
This helps in debugging use after free access of rx buffers.

Change-Id: I1c883bf049ce75dd0413b85946fe2982648d8004
CRs-Fixed: 2827151
2020-12-30 09:20:57 -08:00
Edayilliam Jayadev
9b98e19b51 qcacmn: Add Spectral disabled checks in some APIs
Add Spectral feature disable checks in some APIs
used by other modules.

CRs-Fixed: 2845252
Change-Id: I74d66da2aa85ab0f116ad1a6d2e859f3ee8eeeb9
2020-12-30 07:06:41 -08:00
Edayilliam Jayadev
c89f5e524d qcacmn: Fix return value of Spectral ucfg API
Return type of "ucfg_spectral_control" is QDF_STATUS.
Wrong return values are send for this APIs in case of errors.

CRs-Fixed: 2845251
Change-Id: I24f3beb44486753ad0eba706e9f2ac258067d82d
2020-12-30 07:06:37 -08:00
Edayilliam Jayadev
445c0a42c3 qcacmn: Fix return values of Spectral target APIs
Return type of "target_if_is_spectral_active" and
"target_if_is_spectral_enabled" is bool. Wrong return values
are send for this APIs in case of errors.

CRs-Fixed: 2845250
Change-Id: I2344676a1ada51e041bb5f7acac8aa22847bee5c
2020-12-30 07:06:33 -08:00
Edayilliam Jayadev
80a12b81ed qcacmn: Skip init/deinit/config if Spectral is disabled
If Spectral scan is disabled(agile and normal mode disabled)
skip init/deinit of Spectral module. Also avoid user requests
to configure/start/stop scan. If either agile or normal mode
is disabled block user requests for that mode alone.

CRs-Fixed: 2840335
Change-Id: I81148e5580fe4bf991b97cd086c8e3a9ca78e77d
2020-12-30 07:06:29 -08:00
Edayilliam Jayadev
b3affda43a qcacmn: Add APIs to check Spectral feature is disabled
Add utility APIs to check Spectral scan is disabled for
a given pdev/psoc/mode.

CRs-Fixed: 2840317
Change-Id: I6820cfc056c697434a138ddf9d8d93b5796a4722
2020-12-30 07:06:24 -08:00
Edayilliam Jayadev
3e679f9176 qcacmn: Add APIs to init Spectral feature caps in the upper layer
Add APIs to init Spectral feature caps in the upper layer of the
Spectral module.

CRs-Fixed: 2840249
Change-Id: Idfb34a9eec3a66c6d193be7bb828eeec30548ae7
2020-12-30 07:06:20 -08:00
Edayilliam Jayadev
19aaca7ff9 qcacmn: Add target if APIs to initialize spectral feature caps
Add target if APIs to initialize normal and agile Spectral
feature caps for a pdev.

CRs-Fixed: 2840247
Change-Id: I6c5385c2050007a5ff3f668ab3d6176328294549
2020-12-30 07:06:16 -08:00
Edayilliam Jayadev
dac2af9a3b qcacmn: Add APIs to get Spectral scan capability
Add APIs to check the agile and normal Spectral scan
capability of the target. This information is derived from
the advertisements from halphy via WMI events.

CRs-Fixed: 2840227
Change-Id: I2aae79b3342d8d74a1f4c00e813cae843a71106a
2020-12-30 07:06:12 -08:00
Edayilliam Jayadev
8f57245a44 qcacmn: Add Spectral feature capabilities
Add the following Spectral scan capabilities at the pdev level.
 a) Normal Spectral scan capability
 b) Agile Spectral scan capability for 20/40/80 MHz
 c) Agile Spectral scan capability for 160 MHz
 d) Agile Spectral scan capability for 80+80 MHz

Also change the definition of existing Spectral scan capability
at psoc level.

CRs-Fixed: 2840144
Change-Id: I18be48ec4095fa29b62800a9df58b72295747547
2020-12-30 07:06:08 -08:00