Commit Graph

18878 Commits

Author SHA1 Message Date
Uraj Sasan
ab8cf64ef0 qcacmn: Connect if pri_umac & assoc link are same
Some devices in WDS station mode have limitation when connected
in 3 LINK MLD association where the Primary umac selected and assoc
link should be same. Make sure to have a sanity check before
going for association in such cases.

If the primary umac and assoc links are set to be different then
the connection will be rejected.

Change-Id: If56461a140d4685ba279b1babe04709d919d1650
CRs-Fixed: 3443733
2023-03-30 23:15:34 -07:00
Parikshit Gune
1598a12f5c qcacmn: Add RX stats support for Direct switch
Add support to send RX stats when Direct switch is
enabled. For WDS extended mode get the stats from
peer object, else take it from vdev object. These will
be accumulated by PPEDS module

Change-Id: I1f73c50679c416536cfc1ebaaeaec9b307e8bf56
CRs-Fixed: 3421251
2023-03-30 21:45:28 -07:00
Hariharan Ramanathan
543c9847e4 qcacmn: Change to store peer_id locally and use
Get peer_id from peer structure to a local variable and pass to hal api
in order to avoid race condition between peer delete and peer unmap.

Change-Id: Ib6a89f1defcfc8f66c1146a330a373a760520aa7
CRs-Fixed: 3444998
2023-03-30 18:30:39 -07:00
Krunalsinh Padhar
6f685b0907 qcacmn: send assoc resp only once for multilink
Do not send assoc response from wlan_mlo_peer_create for
multilink MLO connection. This makes sure that assoc resp
is invoked only once.

Change-Id: Id1acf20bd5e3e3beb16e0dc3073676c421825ae6
CRs-Fixed: 3443511
2023-03-30 18:30:29 -07:00
Mohammed Ahmed
b89db375d1 qcacmn: add hif_ce_desc_history to ssr driver dump
Current code doesn't have hif_ce_desc_history in ssr driver dump.
Fix this by adding the two data structs: hif_ce_desc_history_buff
and hif_ce_desc_history to the ssr driver dump regions.

Change-Id: I9256d94db6c3c3a3588e5729b9181efabdaf18ea
CRs-Fixed: 3443230
2023-03-30 14:44:40 -07:00
Paul Zhang
310c7ce085 qcacmn: Add enums for TDLS for MLO feature
1\ Add QDF_STATUS_TDLS_MLO_SYNC,
2\ Add WLAN_ELEMID_LINK_IDENTIFIER.

Change-Id: I58e912dc46a48b9ba7c2d411a2ccd7e107df1b22
CRs-Fixed: 3435983
2023-03-30 14:44:29 -07:00
Shreedhar Parande
3bdf816735 qcacmn: Add VDEV up check before deriving bridge peer PSOC
If VDEV state is not up, skip such VDEVs for creating
bridge peer.

CRs-Fixed: 3439647
Change-Id: Ibd5eaff197ed0ce984915fc197bcd33b6e674e37
2023-03-30 10:44:02 -07:00
Namita Nair
4e3bb0b849 qcacmn: Fix 2nd filter is null in opt wifi dp
Currently if IPA wants to add 2 filters and
send the filter params in 2 separate add
requests, HOST does not handle this correctly.
This causes the second filter params to be 0.
This change updates the correct index to be accessed.

Change-Id: Ib0a4853d46585d9529e990177fb8da20382c2fdb
CRs-Fixed: 3441196
2023-03-30 09:01:34 -07:00
Rahul Gusain
4e7ff1e143 qcacmn: fetch roam vdev from pdev obj
Driver extracts the vdev from peer, self mac address and
vdev_id. But in some APIs, there can be below scenarios
For example:
1. peer is not available for that vdev( roam vdev),
2. API does not have vdev_id,
3. mac address is not known or incorrect,
4. there is no session available.
While roaming, there can be scenario where driver need to
fetch the vdev before peer creation and session is not
available.
For this, driver introduces new API to fetch roam vdev from
pdev object.

Change-Id: I4a2521773b893a8dc0553335bcadac5a84fbc300
CRs-Fixed: 3441493
2023-03-30 09:01:23 -07:00
Nandha Kishore Easwaran
109969b938 qcacmn: Add pci slot to legacy irq names
Add pci slot to legacy irq names so that it is easy to
analyze the interrupts.

Change-Id: I0c11c3399c0b9f1d6d4136d158e5ab4a571f4f52
CRs-Fixed: 3438542
2023-03-30 09:01:12 -07:00
Tallapragada Kalyan
e4798ea69b qcacmn: optimization changes to improve RX KPI for WIN
done the following changes to improve the RX path KPI
	1. remove the extra invalidate in RX path as
	we no longer dirty the RX TLV cache lines.
	we now store the rx error codes in nbuf cb instead
	of RX TLVs reserved memory bytes.

	2. with features like flow tag and wds extended mode
	enabled by default, the rx_fast_flag is always set
       	to false, this resulted	in lot more instructions
       	being executed in RX path.
	Now we ensured this flag is at least set for other
	features which are not enabled by default.

Change-Id: I04c6bdc52a2b3f1248b822a108d8bd1a70abcc7c
CRs-Fixed: 3406505
2023-03-30 02:32:40 -07:00
Shiva Krishna Pittala
45da3822ae qcacmn: Fix use-after-free of MGMT Rx params in wlan_mgmt_rx_reo_algo_entry
Once an incoming MGMT frame is inserted in the MGMT Rx REO egress list from
wlan_mgmt_rx_reo_algo_entry(), there is always a possibility that the same
frame could be sent to upper layers from the other CPUs before
wlan_mgmt_rx_reo_algo_entry() completes its execution in the original
MGMT Rx path. This means that nbuf and MGMT Rx params of a given frame
could be freed before wlan_mgmt_rx_reo_algo_entry() completes.
Hence, make sure to not access frame's nbuf and MGMT Rx params once the
list updates are done for that frame.

Change-Id: I91cbdef4b1ea5b81d39606e47a46021f30193ce5
CRs-Fixed: 3433621
2023-03-30 02:32:30 -07:00
Santosh Anbu
a9419151d6 qcacmn: Support MAC filtering for York platform
Add change to support MAC based filtering for York platform.

Change-Id: I4815c53f3d4babd11f3ebae95175d0ba0871aafe
CRs-Fixed: 3442299
2023-03-30 02:32:20 -07:00
Adwait Nayak
c2c736472a qcacmn: Subscribe RX PPDU START USER INFO TLV for pktlog modes
As of now, RX PPDU START USER INFO TLV is not subscribed as
part of pktlog. Since enable_ol_stats is set by default and
it subscribes RX PPDU START USER INFO TLV, we can see
RX PPDU START USER INFO TLV being available as part of pktlog
data. But recently, with all the automation testing scripts
it is decided to set enable_ol_stats to 0, hence subscription
of RX PPDU START USER INFO TLV is taken care during the filter
set up for all the pktlog modes.

Change-Id: Ib8c7e668a17fcb8e791784d29ef6f00fbdd2df34
CRs-Fixed: 3440721
2023-03-29 11:30:04 -07:00
Nidhi Jain
2bebf5e953 qcacmn: Add 11az TBR rsta host enum and wmi service
This change is to populate wmi service for 11az TBR rsta.
Also, this adds host based enum id for corresponding wmi service.

Change-Id: I9687855651bff222616adb3a8cf346e6264688ee
CRs-Fixed: 3437035
2023-03-29 11:29:54 -07:00
Nidhi Jain
4f84ad378c qcacmn: Add 11az TB rsta ext feature flag support
The existing code does not support capability to be set
if trigger based ranging rsta wmi service bit is enabled.
This require addition of ext feature flag for trigger based
ranging rsta support.
Add 11az TB rsta ext feature flag and set the same as per
firmware capability for 11az feature.

Change-Id: I12512175d0b33daa906586c7f96f0c8c3f7400a3
CRs-Fixed: 3437057
2023-03-29 11:29:44 -07:00
Kiran Venkatappa
7c49c2a5eb qcacmn: Add memory debug disabled version for __qdf_nbuf_alloc_ppe_ds
On some profiles memory debug is disabled. Add memory debug disabled
version to fix compilation error on such profiles.

Change-Id: I1ea99767a02e9b2e919cb1892c5d9ecbf04d470a
CRs-Fixed: 3442812
2023-03-29 09:45:34 -07:00
Rahul Gusain
b629391f22 qcacmn: Extract MLD addr for BSSID
In some scenarios, there can be need to get the peer MLD address.
For this, add new API to extract the MLD address from the scan entry
by the BSSID.

Change-Id: I3b78501cb5320b3e834313a048b6fa0a84eab03b
CRs-Fixed: 3441498
2023-03-29 05:23:49 -07:00
Nandha Kishore Easwaran
41d3710c17 qcacmn: Change monitor print to debug level
Change monitor print to debug level as this print causes flooding
and could potentially lead to CPU flooding.

Change-Id: I76cda51c9d3d0658ebd02b2112fba5310d8eb22c
CRs-Fixed: 3439802
2023-03-29 05:23:39 -07:00
Srinivas Pitla
3edff068ab qcacmn: Primary TQM changes
1) select lower bw vdev link as primary umac for first station
2) Added support to increase group size to distribute stations
   on all PSOCs

Change-Id: Ic6762fbe8e6bc5feef70ddaaa118af121d38a1f4
CRs-Fixed: 3366442
2023-03-29 05:23:29 -07:00
Venkateswara Naralasetty
76e5c1f345 qcacmn: separate dp_rx_tid functionality
As of today, dp_peer.c has the peer management and rx_tid
functionality(create/setup/remove) which is used by the REO HW.

WCN6450 does not have REO HW and dp_rx_tid functionality is not
required for WCN6450. Hence, separate out dp rx tid functionality
from dp_peer.c so that we can avoid compiling unnecessary code
for WCN6450.

Change-Id: I322823704f38ff72e485f050941be6b1254bad09
CRs-Fixed: 3383330
2023-03-29 02:59:59 -07:00
Priyadarshnee Srinivasan
5b3d70f9a2 qcacmn: Address memory leak in dfs_init_chan_state_array
Fix memory leak in dfs_init_chan_state_array() API.

CRs-Fixed: 3442778
Change-Id: If2d7db598077975dc33617f6c30f6f86fb2d1247
2023-03-29 02:59:48 -07:00
Jeevan Kukkalli
34bcece450 qcacmn: Move cfr mon filter cdp func ptr to mon ops structure
Move cfr monitor filter cdp func ptr to cdp mon ops structure.
cfr monitor filter cdp function is different for 1.0 and 2.0
hence moving the func ptr to mon ops structure ensures that
func ptr is initialized appropriately.

Change-Id: I82b9c85e96f2f219521ae6ed908ade120081c748
CRs-Fixed: 3428791
2023-03-29 01:17:22 -07:00
chunquan luo
9ee8244cd8 qcacmn: Add flag to filter special vendor roam log
Since special vendor roam log is not need for common roam,
add flag to filter the log.

Change-Id: Ide67de16ae68c507a7b4e81672cbf5e0fc0e4c5d
CRs-Fixed: 3442621
2023-03-29 01:13:32 -07:00
Manikanta Pubbisetty
b5f74912c1 qcacmn: Add TX completion logic for WCN6450
In the case of WCN6450, WBM HW block is removed in the UMAC.
TX completions come via HTT messages. Add logic to handle
HTT TX completion messages from the firmware.

Changes are specific to WCN6450 and hence implement the logic
in the arch specific code.

Change-Id: I447020354ce26e8948e4b49648c434fb2ed302cd
CRs-Fixed: 3381814
2023-03-29 01:13:21 -07:00
SACHIN AHUJA
21ec2f5d16 qcacmn: Remove the duplicate soc ID entry
Currently 0x400f0000 is assigned to 2 helium targets

Remove WCN3990_v2_2 from the SOC ID entries and keep
correct target for this ID.

CRs-Fixed: 3432410
Change-Id: Iab5c6ade70038953e729e4e7994484d4f192022b
2023-03-28 22:49:26 -07:00
Namita Nair
51e4b595d7 qcacmn: Fix filter delete check in opt wifi dp
If only a single filter is installed,
then the ip version of the second filter
param will not be set. Hence fix the check
for ip version in htt layer as it is already
verified when received from the IPA layer.

Change-Id: I05dff71aa27a254023599df0cbab51bafd0c4f82
CRs-Fixed: 3441760
2023-03-28 16:13:18 -07:00
Sushant Butta
970718a889 qcacmn: Fix for HE info in Radio tap header
rx_user_stats were used to update HE info in
Radio tap header, but HE info is stored at ppdu level
stats.

So changes are done to update HE info using ppdu level
stats.

Change-Id: I4734ee5df73d3a865a8b63a9ed28d647cc52d9f2
CRs-Fixed: 3405611
2023-03-28 11:31:58 -07:00
Neha Bisht
3c4357c783 qcacmn: Fix compilation errors for primary umac migration API
Fix compilation errors for primary umac migration API

Change-Id: I3edad34b54581b662725379ec7267fe3ffd5b22b
CRs-Fixed: 3444960
2023-03-28 11:31:38 -07:00
Karthik Kantamneni
0562ed7a5e qcacmn: Code to init/deinit SOFTUMAC based Rhine architecture.
This code helps to initialize and deinitialize new SOFTUMAC
based Rhine architecture.

Change-Id: I374140ccb3b31e9351c6e683c77d81a5a876472a
CRs-Fixed: 3382913
2023-03-28 11:30:30 -07:00
Karthik Kantamneni
a7cd30b5da qcacmn: Route soc init/deinit handling via arch ops API's
Currently dp_soc_init/deinit API's are called first for
common soc initialization/deinitialization and then architecture
level init/deinit APIs are called from base dp_soc_init/deinit.
But with RHINE architecture dp_soc_init/deinit API's are not common,
so we cannot call these APIs as base. To handle this scenario
routing all the soc level init/deinit from arch ops APIs and
arch ops APIs will take care of calling common soc_init/deinit.

Change-Id: Ibb10d452931630c917088b4d222c7fbd82621f6a
CRs-Fixed: 3404205
2023-03-27 15:14:14 -07:00
Surya Prakash Sivaraj
88804f2cfc qcacmn: Add support for AKM25
Add support for FT-SAE-EXT-KEY AKM.

Change-Id: I832b414b31d42113eec6d099ba4c62e76dfe6cb1
CRs-Fixed: 3406626
2023-03-27 11:21:18 -07:00
Rachit Kankane
f5820188d2 qcacmn: Trigger SAP / GO channel switch
Trigger SAP / GO channel switch on receiving
wmi_csa_ie_received_event_id from FW in STA + SAP / GO DFS SCC
concurrency.

Change-Id: Iff60dffb71b170f56c4fbee4e297b81b87632a2a
CRs-Fixed: 3431365
2023-03-27 09:23:01 -07:00
Rachit Kankane
d525bc0165 qcacmn: Support WMI_CSA_IE_RECEIVED_EVENTID
Add support for WMI_CSA_IE_RECEIVED_EVENTID as:

   1. Register the handler
   2. Handler to extract the event

Change-Id: I9f476c7fbc51d9686d05fbdb5f46dec3bcd3c29e
CRs-Fixed: 3431363
2023-03-27 09:22:51 -07:00
jinbao liu
d29b507582 qcacmn: Shorten DP_REO_STATUS_STATS_TIMEOUT to 100ms
Currently we have a 850ms timeout threshold not to
block upper APPs, but this could contribute to some
query timeout. To address this issue, this change
changes the timeout threshold from 850ms to 100ms.

Change-Id: Ibb39609000972d09713a0435b4884454b331fe4f
CRs-Fixed: 3436517
2023-03-27 03:47:20 -07:00
Neha Bisht
1cfaea506b qcacmn: Move PTQM update API to appropriate file
Move PTQM update API to appropriate file

Change-Id: Ibc7c346beebd468913363ca6532ddaf8ada4704d
CRs-Fixed: 3438694
2023-03-25 22:03:05 -07:00
Paul Zhang
2859ea85d1 qcacmn: Add flag WLAN_VDEV_FEXT2_MLO_STA_TDLS
Add a flag WLAN_VDEV_FEXT2_MLO_STA_TDLS to mark whether
the vdev is used for TDLS or not.
It can use these API:
wlan_vdev_mlme_feat_ext2_cap_set(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
wlan_vdev_mlme_feat_ext2_cap_clear(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
tdls_vdev = mlo_get_tdls_link_vdev().

Change-Id: I89c50ad5321013993e798ebb5549c5015ac18969
CRs-Fixed: 3435963
2023-03-25 05:32:51 -07:00
Sai Pratyusha Magam
d2952c2e85 qcacmn: Remove wapi packets from is_eapol check
Remove wapi frames from is_eapol check in dp_rx_null_q_desc.

This change is to address the below issue:

First wapi packet received in dp_rx_nll_q_desc,
before TID setup does not reach stack since it is
treated as an eapol frame and gets dropped in
dp_rx_eapol_deliver_to_stack.

Change-Id: Ibcad786eb1a1cec1c082ec630ea38cc582627dfa
CRs-Fixed: 3413689
2023-03-24 07:23:46 -07:00
Ruben Columbus
23fbd0d174 qcacmn: remove hal 9224v1
remove 9224v1 hal support and add 9224v1 crash if used

Change-Id: Icf22fa7b65d3d5b8eac44fd876316a4d35829756
CRs-Fixed: 3428599
2023-03-23 13:22:19 -07:00
Kenvish Butani
3b0a344b0c qcacmn: Remove DP_MLO_LINK_STATS_SUPPORT from RX path
Remove DP_MLO_LINK_STATS_SUPPORT macro from per
packet RX Path to enable Link Peer Stats support

Change-Id: Ie4b7ac70db3ba3a8cc20a53de320c0eb1720d08b
CRs-Fixed: 3443161
2023-03-23 11:47:02 -07:00
Asutosh Mohapatra
0d779068fe qcacmn: Add two definitions for allowed SP mode
Currently for client SP, super channel list is disabled
even if the corresponding reg rules are sent by the target.

To address this issue, add two definitions for
reg_is_sp_pwr_mode_allowed_in_supchan, to check
if the given mode is SP mode in the super channel list.

Change-Id: Idb1fc22e3ba4a61a07e03302f92fd8e2a6a9bc85
CRs-Fixed: 3426498
2023-03-23 09:08:27 -07:00
Sushant Butta
b0fc42c8f8 qcacmn: Fix incorrect datarate in radiotap header
The datarate for Data packets and QOS NULL packets,
shown in the Radiotap header was wrong for QCN9224.

In Lithium based devices, for data packets datarate
is not included in the radiotap header.
So for WKK also changes are done to not to include
data rate.

Change-Id: I3fa8a65973e3e0b01ef589551c6621d35b34b984
CRs-Fixed: 3408916
2023-03-23 09:08:13 -07:00
Jhalak Naik
0e4acb24f3 qcacmn: Mark blanking support as false for AR9887
Mark the blanking support as not supported and
return success status for AR9887
in target_is_scan_blanking_enabled().

Change-Id: I055f4d3b30781189744b0d96db4a93b61c0cf1f4
CRs-Fixed: 3430100
2023-03-23 04:47:46 -07:00
aloksing
47c7b5dfc8 qcacmn: Reduce mimo users to 8
Reduce array size to 8 for ul/dl mimo users
for deterministic stats

CRs-Fixed: 3408802
Change-Id: I055aa195e514eb1fe74161ef61119f7c8ddad478
2023-03-23 04:47:34 -07:00
Srinivas Dasari
5ec7c5416d qcacmn: Don't unlink the bss in disconnect/connect failure handler
Currently, bss is unlinked from kernel scan db in below cases,
1. Disconnect
2. Connect failure
3. AP moves to hidden SSID mode from normal mode

bss is unlinked in above 1 and 2 cases (i.e. disconnect and
connect failure) to avoid continuous connect failures when
userspace attempts connect to the same AP without issuing a
fresh scan, which may result in blacklisting the AP. But
framework/wpa_supplicant can take care of this now by making
sure that connect is attempted only if scan result is from
a fresh scan.
Unlinking the bss may lead to inconsistency in some scenarios
and found that disconnect is most common scenario. So, don't
call __wlan_cfg80211_unlink_bss_list() in case 1 and 2 to
avoid unlinking.

Change-Id: I2d3af5fcc22360a5ead0e148d623194cb815f882
CRs-Fixed: 3433127
2023-03-23 04:47:19 -07:00
Priyadarshnee Srinivasan
70a7674b32 qcacmn: Retrieve DFS channel parameters such as CAC, NOL, state
Add APIs to fetch the DFS channel parameters such as CAC, NOL and the
channel state to the user application.
struct dfs_cacelem is defined to store all the CAC related information
such as cac start time, cac completed time and the cac timeout.
dfs_cacelems is stored for NUM_5GHZ_CHANS in the dfs pdev object.
dfs_handle_cac_events() API is used to handle CAC related events such
as WLAN_EV_CAC_COMPLETED, WLAN_EV_CAC_RESET and radar during CAC.

CRs-Fixed: 3428828
Change-Id: I82f7aafeb20222d9722bed5a1a8c10b5703ac975
2023-03-23 00:14:50 -07:00
Surya Prakash Raajen
3b2a716195 qcacmn: Detach dp soc and mlo ctx in soc down sequence
Detach dp soc and mlo ctx in mlo soc down sequence,
to remove the dependency with link teardown event

Change-Id: I2dc2f64398904a7c57f579029297d11d887979c4
CRs-Fixed: 3390199
2023-03-23 00:14:40 -07:00
Surya Prakash Raajen
aad2e9bdb9 qcacmn: Re-init mlo global shmem in case of recovery
Re-init mlo global shmem region whenever in case of expected
target recovery mode. In case of mode1 recovery assert, need
complete teardown of mlo and clearing out global mlo shared
memory, when asserted SoC is recovered, re-init global shared
memory region again.

Change-Id: I475b08934bdceb78b87d115b79abf45e76633795
CRs-Fixed: 3390199
2023-03-23 00:14:31 -07:00
Tallapragada Kalyan
ee4fb4380c qcacmn: replenish used nbuf for DS flows
in case of DS pkts the same pkt which is received
in RX path (REO2PPE) can be refilled back to wifi
rxdma

CRs-Fixed: 3381462
Change-Id: I3762c91110ffcc95162bf068b7a1ed3e41904824
2023-03-23 00:14:20 -07:00
sandhu
55435d303a qcacmn: Add WMI_SERVICE_11BE_TDLS_SUPPORT
1\ Add BE tdls fw support bit.
2\ Add link force reason per wmi changes

Change-Id: I0c297b0ea337d4060ac339c89679ec6059afc89f
CRs-Fixed: 3435979
2023-03-22 12:14:32 -07:00