Commit Graph

13775 Commits

Author SHA1 Message Date
Lincoln Tran
92f93cb246 qcacmn: Add MLO as disconnect source
When processing a peer or southbound disconnect on the non assoc link,
there is a vdev stop issue due to the correct state not being set. For
this link, set the disconnect source as MLO instead of passing it down
from the caller.

Change-Id: I8db444e7c80659a1a1026a53326e99c96ef631f0
CRs-fixed: 3040658
2021-09-29 15:05:32 -07:00
Shiva Krishna Pittala
8e8df4a411 qcacmn: Populate the list of supported sscan bandwidths and detectors
Populate the list of supported spectral scan bandwidths for different
targets and use that in populating the detector list.

CRs-Fixed: 3042448
Change-Id: I5dac2c845843698bbafac64a01517acfbe120180
2021-09-29 12:42:32 -07:00
Debasis Das
db135c6eac qcacmn: Fix use of uninitialized variable in phyerr processing
Initialize the variable "segid" to prevent the usage of junk value.
Dont dereference the spectral-lmac object if the same is NULL.

Change-Id: I5206a99017f77e5c94368d91171a7eb05745933c
2021-09-29 08:59:22 -07:00
Balaji Pothunoori
e045cd0fed qcacmn: add vendor command to configure the parameters for monitor mode
Add new vendor command to configure monitor mode packet filter
parameters which includes data/mgmt/ctrl frame types.

Change-Id: Ie5e5d35b725e3d1b617edc1c889dc269b22a3673
CRs-Fixed: 3025489
2021-09-29 08:59:15 -07:00
Rajeev Kumar
2d0856d0b2 qcacmn: Add disconnect wake lock reason code
Add disconnect wake lock reason code to add a wake lock
for WiFi disconnection.

Change-Id: I2ac33239c9df76d7c92429b9ada0380ad79fc72c
CRs-Fixed: 3045132
2021-09-28 23:23:37 -07:00
Pragaspathi Thilagaraj
a8d8b663b2 qcacmn: Define QDF API for vzalloc and vfree
Define QDF API for virtual memory allocation and free.
Also add new api to get time of the day in microseconds.

Change-Id: I2921055bbb6b5d2a1105d19448b2a10fa2d6ccc5
CRs-Fixed: 3038180
2021-09-28 21:12:18 -07:00
Shiva Krishna Pittala
e5255c7253 qcacmn: Populate supported FFT sizes for Beryllium Spectral
Beryllium chipsets support FFT sizes as follows for different sscan widths.
    20MHz:-   Min FFT size: 5, Max FFT size: 9
    40MHz:-   Min FFT size: 5, Max FFT size: 10
    > 40MHz:- Min FFT size: 5, Max FFT size: 11
Populate these FFT sizes for Beryllium targets.

CRs-Fixed: 3042443
Change-Id: Id7052e3513b29789e96c351aa4cdede499ef2578
2021-09-28 03:43:28 -07:00
Shiva Krishna Pittala
aead8c4d39 qcacmn: Add support to configure spectral scan bandwidth
Add support to configure spectral scan bandwidth as provided by the user.
Validate the user configured value before applying it. As the spectral scan
bandwidth is an optional parameter, when the user doesn't configure it, use
configure the spectral scan bandwidth to the maximum value supported by the
target for the current operating bandwidth.
Also, populate the spectral scan bandwidths supported for different
operating bandwidths on different targets.

CRs-Fixed: 3042424
Change-Id: I266aa5489b0ce5c149968067a06e1cc65bb4e3b7
2021-09-28 03:43:21 -07:00
Shiva Krishna Pittala
697dce6937 qcacmn: Add an API to check if a given channel width is supported
Add an API to check if a given channel width is supported on a given pdev
by looking at its wireless modes.

CRs-Fixed: 3042932
Change-Id: I7194412b147147eba00dbe860875e46dac602b5b
2021-09-27 22:22:28 -07:00
Shiva Krishna Pittala
29817dce94 qcacmn: Move REGDMN and wireless modes to reg_services_public_struct.h
There is a requirement to use REGDMN and wireless modes in UMAC layer of
the cmndev component. As the WMI_HOST_REGDMN modes currently are defined in
WMI layer, we can't use them directly in the UMAC layer. Hence move them
to the reg_services_public_struct.h and rename them as HOST_REGDMN modes.
Replace all WMI_HOST_REGDMN instances with HOST_REGDMN. Wireless modes are
currently defined in WIN component, use them to cmndev component.

CRs-Fixed: 3044590
Change-Id: Iee5fa1745a1a44b834334746b10bdbb6f6563a0a
2021-09-27 22:22:23 -07:00
Shiva Krishna Pittala
81f3009593 qcacmn: Add support for run-time enablement of MGMT Rx REO feature
Add INI and WMI service bit based enablement support for
MGMT Rx REO feature.

CRs-Fixed: 3014353
Change-Id: I95650718d69b70f119621a9481dbf1518bc5500b
2021-09-27 17:58:04 -07:00
Lincoln Tran
bb30b105cf qcacmn: Fix MLO compilation issues
Fix compilation issues in MLO related code.
Add debug prints when generating link assoc response.
Add NULL value check.

Change-Id: Ie5951816ee39428c086ec91eaa6fc9cf598072b6
CRs-fixed: 3038725
2021-09-27 17:57:59 -07:00
Sai Pratyusha Magam
ce2fc16440 qcacmn: Add additional packet type check in wlan_crypto_get_keyid function
Add additional packet type check in wlan_crypto_get_keyid function

Change-Id: Iee31a428a20c256797c1b460b835dbe31dc6f2e9
CRs-Fixed: 3040714
2021-09-27 15:44:45 -07:00
Vivek
2f4b444fb7 qcacmn: Disable panic for scheduler timeouts
When a scheduler message starts porcessing,we start
the scheduler watchdog timer, and in few cases when the
system get under heavy load processing tasklets
and bottom halves, and the scheduler message is preempted,
its not getting a chance to run and the scheduler watchdog
timer is triggered and it causes a panic.

Since the scheduler watchdog timmer is less than
the kernel RCU timer, were are having scenarios, where
because of the scheduler watchdog panic, the RCU stall is masked.

So in case of scheduler watchdog we wanted to just print
the information about the message being processed by the scheduler
and not panic.

Change-Id: I509abcd8cd8d2e863dc3f2370ceaa70e0d4f244f
CRs-Fixed: 3004176
2021-09-26 13:56:52 -07:00
Shiva Krishna Pittala
b0384b31da qcacmn: Expose the external APIs from MLO global shared memory handling
Expose the following APIs from MLO global shared memory handling
    - APIs required by the REO logic
    - APIs required to invoke the MLO global shared memory parsing

Change-Id: Ia2fb0b0fee5d3904bae8cd70ce3364360d5ea16e
CRs-Fixed: 3014343
2021-09-25 17:22:07 -07:00
Shiva Krishna Pittala
97fe9889b6 qcacmn: Parsing logic for MLO global shared memory arena
MLO global shared memory arena contains MGMT Rx REO snapshots in the
form of TLVs. Parse the shared memory and store the address of these
snapshots. These addresses will be required by the MGMT Rx REO algorithm.

CRs-Fixed: 3035491
Change-Id: Ica1b72cd8cf4083acdeefaee41df0da4a1f57f4f
2021-09-25 15:15:09 -07:00
Devender Kumar
8ee13b33da qcacmn: Add Sanity check for num_users in pktlog feature
When num_users is 0 and PKT_LOG feature is enabled,
it can cause out of bound access
to avoid this add a sanity check for num_users

Change-Id: I33401d2e6a139f9fc6db145c588e08547afdd2ba
2021-09-25 11:36:09 -07:00
Hariharan Basuthkar
479b0d31a1 qcacmn: Fix the issues pointed out by KW in the regulatory module
Fix the issues pointed out by KW :

1) https://kwdbprod16.qualcomm.com:8070/review/insight-review.html#
   issuedetails_goto:problemid=222576,project=CRM_NHSS_QSDK_11_5_P

   Initialize dbg_id in reg_process_afc_power_event.

2) https://kwdbprod16.qualcomm.com:8070/review/insight-review.html#
   issuedetails_goto:problemid=222579,project=CRM_NHSS_QSDK_11_5_P

   In ucfg_reg_get_partial_afc_req_info, add a sanity check for afc_req
   to prevent NULL pointer dereference.

3) https://kwdbprod16.qualcomm.com:8070/review/insight-review.html#
   issuedetails_goto:problemid=222580,project=CRM_NHSS_QSDK_11_5_P

   Add a sanity check for afc_chan_obj to prevent NULL pointer
   dereference.

Change-Id: I0481fda6d08590312a863a33a1823a0b07fa194e
CRs-Fixed: 3043280
2021-09-25 06:03:29 -07:00
Prateek Patil
7a52367615 qcacmn: Return if pld_is_pci_ep_awake is not supported
Add check for verifying pld_is_pci_ep_awake support before waiting till
EP vote reset is done after reg completion

Change-Id: I9061c212c115d158aec63464eedcf6ca98e11a56
CRs-Fixed: 3038992
2021-09-24 20:45:08 -07:00
Himanshu Batra
dff5855dd9 qcacmn: Add API to get ML vdev list
Add API to get ML vdev list

Change-Id: Ie4a001dc5b1906f2236f54335e3867727fd25e02
2021-09-24 20:45:03 -07:00
Lincoln Tran
9f659010f4 qcacmn: Fix legacy connection when the 11be feature is enabled
Add the following fixes:
-Don't update the SA in mgmt frames when vdev is not operating as
 STA
-Set the MLO vdev capability when setting the link address. In
 case of non ML connection, this bit should not be set.

Change-Id: I23f8fb8d43afbed687f619c7029893a7d09696d2
CRs-fixed: 3038626
2021-09-24 20:44:58 -07:00
Pavankumar Nandeshwar
26c6cd1397 qcacmn: Enable intra-bss in Waikiki
In Beryllium the HW does the ast lookup and match
and sets the intra-bss bit in the msdu_desc_info
structure of reo_destination ring and WBM Rx release ring.

So, change the Beryllium code to make use of this
hardware assistance for intra-bss.

Change-Id: Ic7c89efc741fefe35603082309204fbe3c9a97c7
2021-09-24 18:28:07 -07:00
Pavankumar Nandeshwar
d6a386028b qcacmn: add qdf APIs for intra-bss
qdf APIs to save intra-bss flag in the nbuf
and to extract it later

Change-Id: I79e793d6252adc8b6e024f8b3a95959f64d9df31
2021-09-24 18:28:02 -07:00
Pavankumar Nandeshwar
866ade593a qcacmn: wmi commands for intra-bss in Waikiki
Add wmi commands to enable/disable intra-bss
at vdev and peer levels for Waikiki.

Change-Id: I8e1c03326955e460aef1afb8e1ff56e03d4cbdca
2021-09-24 18:27:58 -07:00
Jeevan Kukkalli
4ac551c7ef qcacmn: Set log level to info
Log level was accidentally bumped up during monitor legoization
change hence reducing log level to info to avoid unnecessary
prints on console.

Change-Id: I338632b98beb2a1f832f9e066109a2ac71a63749
CRs-Fixed: 3039441
2021-09-24 18:27:53 -07:00
Kani M
2c41328915 qcacmn: Enable code under WLAN_CONV_CRYPTO_SUPPORTED
This incorporates and enables the code under the flag
WLAN_CONV_CRYPTO_SUPPORTED.

Change-Id: I5be4606fac8dbf172b017cc91ba6e19af03e282b
2021-09-24 18:27:48 -07:00
Vignesh U
23be35ae70 qcacmn: Set "agile_precac_active" for all applicable pdevs
Currently, "agile_precac_active" is set only after receiving the start
event in the init state. "agile_precac_active" indicates whether adfs is
supported in the radio or not. This has to be set based on the agile precac
enabled check when the vap is brought up and when the event
DFS_AGILE_SM_EV_AGILE_START is sent to DFS Agile State Machine.

Change-Id: I2084d6d413ee11fa9f77026326dab79aafcd64fb
2021-09-24 02:14:43 -07:00
Surya Prakash Sivaraj
7d2ec40194 qcacmn: Send SSID in join req for OWE transition mode
STA connection with OWE transition mode SSID fails due to join
failure timeout. Since, it is OWE transition mode, STA needs probe
response for join success.

The scan table entry of the candidate BSSID is sent in the join request.
This entry is used to create session and to send probe request to AP.
In case of OWE transition mode, the beacon carries wildcard SSID.
Therefore, the scan table entry also has wildcard ssid. Also,
during the candidate selection, scm_ignore_ssid_check_for_owe check
allows even entries with wildcard SSIDs to be selected as candiates
for OWE transition mode.

The join request with Wildcard SSID in the scan entry is used by LIM
to create session, as well as to send probe request.Therefore,
the AP doesn't respond to the probe request with wildcard ssid
leading to join failure timeout.

This change adds ssid from connect request to the cm_vdev_join_req,
which can be used by LIM to create session and to send probe request
whenever the SSID in scan entry is wildcard.

Change-Id: If43d7e8a65bc3e37d67e22609932cf18f804f0ab
CRs-Fixed: 3041142
2021-09-24 02:14:38 -07:00
Huashan Qu
88c125a678 qcacmn: Rename QCA_MCL_DFS_SUPPORT to MOBILE_DFS_SUPPORT
Rename QCA_MCL_DFS_SUPPORT to MOBILE_DFS_SUPPORT.

Change-Id: Ic209f76e3a9b1a7a524d7036a0fef7ca044d4ca8
CRs-Fixed: 3038271
2021-09-23 21:35:24 -07:00
Himanshu Batra
06f52d9da2 qcacmn: Add API to check if STA vdev is mlo assoc or link vdev
Add API to check if STA vdev is mlo assoc or link vdev

Change-Id: If5d5fab4c423939d272156e1dea4fae5d1d8d80a
2021-09-23 21:35:19 -07:00
Himanshu Batra
4aa4060acf qcacmn: Update assoc resp ie len and ptr in connect response
Update assoc resp ie len and ptr in connect response

Change-Id: I31f175da43fe1548aa9621320339bd242c8d67d1
2021-09-23 21:35:14 -07:00
Krishna Rao
32caa92ae8 qcacmn: Add MLO specific definitions for RNR IE
Add definitions related to MLO specific aspects of Reduced Neighbor
Report IE.

CRs-Fixed: 3042063
Change-Id: I0cba496a071ccb2be719dbe584f2f0f98d4a5b8a
2021-09-23 17:09:35 -07:00
Sridhar Selvaraj
04c1a548a5 qcacmn: Convert vdev set mlme enum id to wmi id
Currently when sending multi vdev set param from MLME
vdev set param id is not converted to wmi layer id
resulting in incorrect mlme param update in firmware
for mbss common vap params.

Convert vdev set mlme enum id to wmi layer id when
setting multi vdev param from MLME.

CRs-Fixed: 3039992
Change-Id: Ibaeb974729f1ae9c272e203d1288229aca74b803
2021-09-23 02:11:37 -07:00
Jhalak Naik
d63e03e207 qcacmn: Add a new Spectral-specific channel width enum
Add a new Spectral channel width enum which will be
specific to Spectral applications.

CRs-Fixed: 3029175
Change-Id: Ibfe4f336552978364eb89add25861edd30d33000
2021-09-23 00:05:45 -07:00
Pragaspathi Thilagaraj
5a05d609a1 qcacmn: Update the connectivity logging attributes
Update the connectivity logging attributes based on the
latest change.

Change-Id: I141f1fb5d778bf2b7af79b832e781e7e131eea32
CRs-Fixed: 3038244
2021-09-22 19:52:39 -07:00
Vignesh Mohan
5fc1705df5 qcacmn: Avoid switching to spur channels in UNII-1 band
When operating in 20/40MHz modes in channels 52/56/60/64, spur
is found on adjacent channels (40, 44, 48) if we switch to those
channels after radar. To avoid this issue, add a SW WAR to ignore
selecting the adjacent channels if radar is found on the UNII-2
channels (52-64).

Change-Id: I4d02c53bf57171b9e5e5704d36552d0d5c6423b9
2021-09-22 07:37:31 -07:00
Jyoti Kumari
8f7c876c10 qcacmn: Update beacon interval for p2p_cli from scan entry
During p2p AGO and GC connection, beacon interval of GC doesn't
match with AGO which causes connection failure.

As part of fix, update beacon interval of p2p_cli from scan entry

Change-Id: Icb38d129809dea0ef0645df29723a6315e32b0f5
CRs-Fixed: 3039930
2021-09-22 05:27:28 -07:00
Jhalak Naik
0405359a6c qcacmn: Lock Spectral detector list and session info structs
Add locks for detector list, per-session report info
and per-session detector map, to avoid inconsistent
concurrent accesses.
Using spin_lock_bh for locking between Process and
Tasklet context.

CRs-Fixed: 2983801
Change-Id: If709fd91f193072f07b9dae19bf48e6da2d369d3
2021-09-22 05:27:23 -07:00
Krishna Rao
cea74e2c92 qcacmn: Add 802.11 field lengths and other definitions
Add or modify the following IEEE 802.11 related definitions for use in
protocol processing code:
- Add individual length definitions for the following initial fields
used in some 802.11 management frames: Timestamp, Beacon Interval,
Capability Information, Listen Interval, Status Code and AID. These
are added so that protocol processing code that needs to skip over
individual fields can refer to the relevant lengths.
- Modify the definitions of assoc request/response IE offsets to use
some of the above individual definitions.
- Add definition of position of element ID extension
- Add element ID for fragment element
- Add definition for size in octets of Link ID Info subfield in Basic
variant Multi-Link element Common Info field.

Change-Id: I272a5f99573b41d7431c8dd782d02bd141813def
CRs-Fixed: 3025500
2021-09-22 03:16:17 -07:00
Vikram Kandukuri
aba3dd6941 qcacmn: Add attributes to support MBSSID multi groups notifications
Add new attributes for supporting MBSSID multi groups notifications
to qca_wlan_vendor_attr_mbssid_tx_vdev_status
(QCA_NL80211_VENDOR_SUBCMD_MBSSID_TX_VDEV_STATUS).

CRs-Fixed: 3028263
Change-Id: I9ce3f945cf4d3cf91af57363d7a25f14d5c90fa6
2021-09-22 03:16:12 -07:00
Pragaspathi Thilagaraj
517a254443 qcacmn: Add support to parse roam frame info TLV
Add support to parse roam frame info TLV

Change-Id: I3addd7256c003ca25c4dd5545ee0aa6a6c18a20f
CRs-Fixed: 3013488
2021-09-22 03:16:07 -07:00
Vijay Krishnan
d57b561f80 qcacmn: Check Global Opclass if no Opclass present
In IEEE80211 spec, US Opclass is not supporting the 5.9Ghz
channels, therefore whenever 5.9Ghz channels are enabled,
while adding channel switch IE element, if there is no Opclass
available for the destination frequency, then check the Global
Opclass table for the destination frequency and select the
appropriate Opclass number.

Change-Id: I495576555db7dbb6fb5d5a77a3b17ec5b83cf286
CRs-Fixed: 3020692
2021-09-22 00:57:27 -07:00
Harsh Kumar Bijlani
87edde8b30 qcacmn: Do not populate meta_hdr on Tx completion path for mesh mode
Do not populate the struct meta_hdr_s into for buffers received on
Tx completion path when operating in mesh mode.

Also update the fields in tx_capture_hdr as per the new definition.

Change-Id: I6150b4ce891ca73d5ed7c7620568606c377223c6
2021-09-22 00:57:22 -07:00
Liangwei Dong
c00993943b qcacmn: Fix error of macro QDF_CLEAR_PARAM
QDF_CLEAR_PARAM failed to clear bit at bit position
of "val". Correct to ((__param) &= (~(1 << (__val)))).

Change-Id: I974874a8af79253564bfa5d45495a646f9a0ee86
CRs-Fixed: 3038983
2021-09-21 20:19:52 -07:00
Ananya Gupta
29d256f801 qcacmn: Log DHCP, EAPOL packets to logging queue
Log DHCP and EAPOL packets to wlan connectivity logging
queue.

Change-Id: Ib0c84c389c0f5fd7e742722c0e03c84b9732de19
CRs-Fixed: 3030936
2021-09-21 09:30:39 -07:00
Hariharan Basuthkar
72fea5404a qcacmn: Add separate APIs to find chan enums
When the 6G AP comes up on a SP mode, the current channel list has
channel 97 (6435 MHz center frequency) enabled, even though the
BDF reg_rule and AFC frequency object has the range 5925-6425 MHz.

When 6425 is given as the input to reg_find_chan_enum_for_6g, it also
returns the enum corresponding to 6435, which is incorrect.

To fix this issue, add two new functions
reg_find_low_limit_chan_enum_for_6g and
reg_find_high_limit_chan_enum_for_6g to find the lower channel enum and
upper channel enum respectively. In reg_fill_max_psd_in_afc_chan_list,
call reg_find_low_limit_chan_enum_for_6g instead of
reg_find_chan_enum_for_6g to find the lower channel enum, and
call reg_find_high_limit_chan_enum_for_6g to find the right upper
channel enum.

Change-Id: Ib5738242b453e1abf641034240ce019865e46377
CRs-Fixed: 3033667
2021-09-21 09:30:34 -07:00
Basamma Yakkanahalli
9ea8540ecd qcacmn: Add service_ready handling for multiple MBSSID groups
Add change to handle service_ready for,
1.  Ema multi-MBSSID group support
2.  Large beacon support greater than 1.5K

CRs-fixed: 3036717
Change-Id: I1c985faf429aacd78ae74fe0ffe18958fd6aa821
2021-09-21 09:30:28 -07:00
Himanshu Batra
fd8df63e25 qcacmn: Print Vdev/CM SM history in case of Connect/Disconnect timeout
Print Vdev/CM SM history in case of Connect/Disconnect serialisation
timeout

Change-Id: I51abd2fd72b7c5fe837b6b0acf124b9006bf130b
CRs-Fixed: 3034463
2021-09-21 06:51:39 -07:00
Jhalak Naik
e59d430af2 qcacmn: Move edge extrabins at the end of bin_pwr array
Move the left band and right band edge extra bins to
the end of the Spectral bin_pwr array.

CRs-Fixed: 3002177
Change-Id: Iea93879763a7e2c56cdb5f4d3d163e2d4b082b26
2021-09-21 04:18:47 -07:00
Chaithanya Garrepalli
9165949820 qcacmn: Enable Tx implict RBM mapping for Waikiki
Changes to enable Tx implicit RBM mapping support
for Waikiki

Change-Id: I4c30c34a250f6fb028c64741745fb5a3e6733ee3
2021-09-21 01:56:39 -07:00