Commit Graph

3343 Commits

Author SHA1 Message Date
Jeff Johnson
5b69a94a15 qcacmn: Make dp_tx_tso_cmn_desc_pool_*() functions static
The following functions are currently public functions:
dp_tx_tso_cmn_desc_pool_alloc()
dp_tx_tso_cmn_desc_pool_init()
dp_tx_tso_cmn_desc_pool_deinit()
dp_tx_tso_cmn_desc_pool_free()

However these functions are only called from within the file where
they are defined, so make them static.

Change-Id: If57b36398e0cf6a33be2b85bc00d651fe5ed9a71
CRs-Fixed: 3371860
2023-01-19 09:32:22 -08:00
Jeff Johnson
357a7f62b7 qcacmn: Make dp_tx_desc_clean_up() static
The function dp_tx_desc_clean_up() is currently a public function.
However this function is only called from within the file where it is
defined, so make it static.

Change-Id: I23d55584453218776703101e9a5abaf9805efb03
CRs-Fixed: 3371794
2023-01-19 09:32:00 -08:00
Pavankumar Nandeshwar
8e622cfba5 qcacmn: Handle dp peer setup for non MLO in BE case
Handler dp peer setup for non MLO case in BE specific
handler. This API currently deals with direct switch feature.

Change-Id: I6e26687e5e7e92108dfa0da782970f758fd1965e
CRs-Fixed: 3381234
2023-01-19 09:31:41 -08:00
Jeff Johnson
19f27c6e4a qcacmn: Fix dp_types.h documentation
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_types.h, so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so duplicate that documentation. The documentation at the
implementation will be removed separately.

Change-Id: Ie93b7f802926e562169e51a56e5fc83de845b310
CRs-Fixed: 3373153
2023-01-19 05:04:07 -08:00
Rakesh Pillai
ada0c97d9b qcacmn: Add datapath config event history
Add history to record the config/control events
e.g. peer create/delete/unref-delete, vdev attach/detach
in datapath.

Change-Id: Ic3c8122fca9124e41931ec445946aec5e8863434
CRs-Fixed: 3371899
2023-01-19 02:55:07 -08:00
jinbaoliu
784a94ace9 qcacmn: Code optimization: extract common code snippet to a function
This change extracts several common code snippet and put
them into a new function. This can keep the code clean.

Change-Id: Ib13f06903db2efbf0e447436fb5abb1386cdd41d
CRs-Fixed: 3370243
2023-01-17 14:50:01 -08:00
Jinwei Chen
ea4f290e7d qcacmn: support RX MCS12-13 rates in FW RX pdev stats
support RX MCS12-13 rates in FW RX pdev stats

Change-Id: Idfe41884a9034eb30f792110ba747eb06cd0261d
CRs-Fixed: 3380204
2023-01-17 07:34:32 -08:00
Chaithanya Garrepalli
ff001a366b qcacmn: Fix VDEV ref leak issue
Fix VDEV ref leak issue in RX IGMP MLO handler

Change-Id: I920231cad434cdd237aedcd0f5c5d695472d1a40
CRs-Fixed: 3380335
2023-01-16 04:34:51 -08:00
Rakesh Pillai
d7593bcef6 qcacmn: Add debug logs in MLD peer create/delete
Add debug logs in the MLD peer create/delete path
to help debug any issues with MLD peer leak.

Change-Id: I63126d9b86f3179a88809836371fc765d340b6d8
CRs-Fixed: 3379148
2023-01-15 03:55:44 -08:00
Pavankumar Nandeshwar
9e61c69fea qcacmn: Enable intra bss fwd offload on vdev by default
Enable intra bss fwd offload on vdev by default
by sending wmi command to firmware.

Change-Id: I5fcc828f8360c93a7adbcf8f1f2cb7cc58593a49
CRs-Fixed: 3362569
2023-01-13 18:40:19 -08:00
Nandha Kishore Easwaran
10a1d54f1d qcacmn: Check peer_count for peer filtering
Check peer count to decide if peer filtering is required or not.
This is required to support peer filtering for full monitor mode.

Change-Id: Icb3c0fc834795dbbbfd3a7899b3b733409f5f70d
CRs-Fixed: 3372600
2023-01-11 17:24:14 -08:00
Rakesh Pillai
6414ec0d33 qcacmn: Enhance NULL peer debug log in WBM error handler
Currently the debug log for NULL peer, just gives
the REO error code info, which may not be relevant
if the error source is not REO.

Dump both REO and RXDMA push reason and error code
if NULL peer is encountered in WBM error handler.

Change-Id: I95dabb8c9de1bf95081ccb389805d3ef3376915a
CRs-Fixed: 3374313
2023-01-10 05:32:04 -08:00
Pavankumar Nandeshwar
fd6fed3e07 qcacmn: Cleanup the tx desc cleanup logic
Cleanup the tx desc clean up logic used in
direct switch and umac reset cases.
The excess code being removed tries to
get the next descriptor address in boundary
conditions is not useful, as the descriptor
extracted this way will be overwritten
immediately in the beginning of next iteration
of the loop.

Change-Id: Ibcd873719929b94147152ff48205774d3ed4f452
CRs-Fixed: 3371831
2023-01-10 05:31:53 -08:00
Mukul Dhiman
9164f76a01 qcacmn: remove unused var in dp/wifi3.0/monitor/dp_mon.c
remove unused var and declaration in dp/wifi3.0/monitor/dp_mon.c

CRs-Fixed: 3284798
Change-Id: Ic8054df9e2af9ff787478cdc24ae1a2360bfa525
2023-01-08 23:19:14 -08:00
Mukul Dhiman
4bc38f404d qcacmn: remove unused var in dp/wifi3.0/monitor/2.0/dp_tx_mon_2.0.c
remove unused var and declaration in
dp/wifi3.0/monitor/2.0/dp_tx_mon_2.0.c

CRs-Fixed: 3284798
Change-Id: I83f39250f90a8dbf673e517244bb0b872e40026a
2023-01-08 23:19:04 -08:00
Mukul Dhiman
953c4d69fb qcacmn: remove unnused var in dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c
remove unused var and declaration in
dp/wifi3.0/monitor/2.0/dp_rx_mon_2.0.c

CRs-Fixed: 3284798
Change-Id: Ibae1a2b3f9376103f348e1778c0f9f88fd05e9dc
2023-01-08 23:18:55 -08:00
Mukul Dhiman
4a4f3ce161 qcacmn: remove unused var in monitor/2.0/dp_mon_filter_2.0.c
remove unused var and declarations in
dp/wifi3.0/monitor/2.0/dp_mon_filter_2.0.c

CRs-Fixed: 3284798
Change-Id: I602d0e1ce5a74b981f34f7d5d4a5cb83693f62db
2023-01-08 23:18:46 -08:00
Mukul Dhiman
cdde02d8b6 qcacmn: remove unused var in dp/wifi3.0/monitor/2.0/dp_mon_2.0.c
remove unused var and declarations in
dp/wifi3.0/monitor/2.0/dp_mon_2.0.c

CRs-Fixed: 3284798
Change-Id: Ief15786a74d7f6eb90ed1b1527b79ddb50f14159
2023-01-08 23:18:36 -08:00
Mukul Dhiman
882a13a0ce qcacmn: remove unused var in dp_rx_mon_status_1.0.c
remove unused var and declarations in
dp/wifi3.0/monitor/1.0/dp_rx_mon_status_1.0.c

CRs-Fixed: 3284798
Change-Id: Iea3f8e2213fef9d10fe20c90c2ac0017f7d17692
2023-01-08 23:18:26 -08:00
Mukul Dhiman
8a2b9325e6 qcacmn: remove unused var in monitor/1.0/dp_rx_mon_dest_1.0.c
remove unused var and declarations in
dp/wifi3.0/monitor/1.0/dp_rx_mon_dest_1.0.c

CRs-Fixed: 3284798
Change-Id: Ibfeaca928fe43e6f0cc5b52a2114708810c09805
2023-01-08 23:18:16 -08:00
Mukul Dhiman
625715ade0 qcacmn: remove unused var in monitor/1.0/dp_mon_filter_1.0.c
remove unused var and declaration in
dp/wifi3.0/monitor/1.0/dp_mon_filter_1.0.c

CRs-Fixed: 3284798
Change-Id: I289aac6ae32c22539c98d02673b9af9a48d46192
2023-01-08 23:18:04 -08:00
Mukul Dhiman
daea04e025 qcacmn: remove unused var in dp/wifi3.0/monitor/1.0/dp_mon_1.0.c
remove unused var and declarations in dp/wifi3.0/monitor/1.0/dp_mon_1.0.c

CRs-Fixed: 3284798
Change-Id: I4c4fadba6a9af9ec6fb5c886fd014bc4ebcb26d9
2023-01-08 23:17:55 -08:00
Mukul Dhiman
b139770f92 qcacmn: Remove unused var in dp/wifi3.0/dp_txrx_wds.h
Remove unused var in dp/wifi3.0/dp_txrx_wds.h

CRs-Fixed: 3284798
Change-Id: I07048b99fdf9343afd9bec1b4af32d715aacb289
2023-01-08 23:17:43 -08:00
Mukul Dhiman
30f8589d11 qcacmn: remove unused var in dp/wifi3.0/dp_tx.c
remove unused var and declarations in  dp/wifi3.0/dp_tx.c

CRs-Fixed: 3284798
Change-Id: If4f9b46196a254dd51ae1dcf7e9aa45f1265851d
2023-01-08 23:17:34 -08:00
Mukul Dhiman
bd70c9f398 qcacmn: remove unused var in dp/wifi3.0/dp_stats.c
remove unused var and declarations in dp/wifi3.0/dp_stats.c

CRs-Fixed: 3284798
Change-Id: I6293f2246b4d6e3e57cecd2a62ee7b17dd221f8a
2023-01-08 23:17:24 -08:00
Mukul Dhiman
eb258890bc qcacmn: remove unused var in dp/wifi3.0/dp_rx_defrag.c
remove unused var and declarations in dp/wifi3.0/dp_rx_defrag.c

CRs-Fixed: 3284798
Change-Id: Ic463987cec34575465fb885a324b064c4bdc92d3
2023-01-08 23:17:15 -08:00
Mukul Dhiman
1eb9c1afb9 qcacmn: remove unused var in dp/wifi3.0/dp_main.c
remove unused var and declarations in dp/wifi3.0/dp_main.c

CRs-Fixed: 3284798
Change-Id: I8c464cde66023bf195a2bb6fa00a1244d25f9898
2023-01-08 23:17:05 -08:00
Yeshwanth Sriram Guntuka
b480a61386 qcacmn: Add support for marking to_fw for all tx pkts of a vdev
Add support for marking to_fw bit for all tx packets
for a given vdev.

Change-Id: I7306e22e81303720830cfce4ce19b15d2080d93c
CRs-Fixed: 3369897
2023-01-07 17:59:21 -08:00
Sai Rupesh Chevuru
88dd4c6970 qcacmn: IGMP leave message handling in MLO MCAST
IGMP leave message handling in MLO MCAST scenarios.

Change-Id: Ic0ac16dbe75b4ef2b27e97be3f42c498b503ca06
CRs-Fixed: 3359488
2023-01-06 00:28:12 -08:00
KARTHIK KUMAR T
70e9286f37 qcacmn: mcast_mlo handling in intrabss fwd
mcast mlo handling for the intra bss fwd

Change-Id: I23c1a9759ac3ac59f2f46fdb456c616c77823e8c
CRs-Fixed: 3353501
2023-01-05 18:01:34 -08:00
Amit Mehta
851e62a653 qcacmn: Changes assert level and add log if peer entry already present
Currently in dp_peer_find_id_to_obj_add while adding peer to soc
peer_id_to_obj_map list, if peer entry is already present for the
peer_id due to no umap event for older peer, driver calls QDF_ASSERT
and returns, As QDF_ASSERT is NOP it results in older entry still present
in the table. which results in peer leak issue as while doing peer unamp
driver gets peer from soc peer_id_to_obj_map table based on peer id,
Since older entry is still there older peer will be freed and new peer
unamp will not happen.

To fix the issue call qdf_assert_always if peer entry is already present
for peer id which will always assert and add additional logs to print
peer information.

Change-Id: Ic777e9c7881fcbc67f54002bd619a8e6d52de126
CRs-Fixed: 3369736
2023-01-05 18:01:25 -08:00
Tallapragada Kalyan
6774796947 qcacmn: Add soc count for multi-chip mlo
Add soc count for multi-chip mlo

CRs-Fixed: 3370858
Change-Id: I128a378cdf29f03eb4356cd8049aea47e0af7c18
2023-01-04 22:02:10 -08:00
Tallapragada Kalyan
328ea67a32 qcacmn: enable FSE with MLO support
from Beryllium onwards a single Flow Search Table
will be used across multiple radios. to ensure this
a single FST attach is called for the first SOC's
pdev and FST detach is called only during last pdev
of last SOC. the same FST instance is saved in all
pdevs of all the SOCs

CRs-Fixed: 3366409
Change-Id: I42fbdc6f09fb902021877e100a2831a1a24bc975
2023-01-04 18:30:46 -08:00
Sushant Butta
6bab9eec62 qcacmn: Fix for memory leak
In error conditions(packet truncation or flush detected)
packet buffers are not freed, changes are done to
iterate over all the packet buffers and free them.

Change-Id: I48ef0022c7a9c8c6fd067d78d6b46daf84855cc8
CRs-Fixed: 3363841
2023-01-03 21:51:56 -08:00
Amit Mehta
877eaf11ea qcacmn: Fix HTT HAL Tx status mapping
Currently HTT_TX_FW2WBM_TX_STATUS_DROP and HTT_TX_FW2WBM_TX_STATUS_TTL
are mapped to HAL_TX_TQM_RR_REM_CMD_REM which results in the wrong Tx
status print in case HTT_TX_FW2WBM_TX_STATUS_TTL where No ack is received.

So to fix the status log issue map HTT_TX_FW2WBM_TX_STATUS_DROP to
HAL_TX_TQM_RR_REM_CMD_REM and HTT_TX_FW2WBM_TX_STATUS_TTL to
HAL_TX_TQM_RR_REM_CMD_TX to log correct Tx Fail Status.

Change-Id: If125313f6b831ce5ca0f7eec9e8e3f1a03229f16
CRs-Fixed: 3362679
2023-01-02 10:53:33 -08:00
Amrit
1833aa0e7f qcacmn: Add support for stats in IPA Architecture
Add support for stats in IPA Architecture.

Change-Id: I38706503719f6236fa1081342e9eb1f0bd0ba1c2
CRs-Fixed: 3345292
2022-12-29 18:34:12 -08:00
Sreeramya Soratkal
6eba2a4482 qcacmn: ini config to allocate special TX descriptors of SOC
An INI dp_tx_spl_device_limit is defined and can be used to configure the
limit of TX descriptors that can reserved on the SOC to handle
special frames like EAPOL.

CRs-Fixed: 3343207
Change-Id: Ic84a11249880a3541749a72ac6d60df548f2bc5c
2022-12-29 13:41:27 -08:00
Sreeramya Soratkal
88124ec9b4 qcacmn: ini config to allocate special TX descriptors of pdev
An INI dp_tx_spl_desc is defined and can be used to configure the
limit of TX descriptors that can reserved on the pdev to handle
special frames like EAPOL.

CRs-Fixed: 3343209
Change-Id: I6578bddd1f4ea07528c9f66f778b113ec6fb9e61
2022-12-29 13:41:17 -08:00
Amrit
f5eca8f1a9 qcacmn: Add NULL check for delay stats
Add NULL check for delay stats in txrx_peer

Change-Id: I3852be1b112a9a105af57890d1636d86a747b2ab
CRs-Fixed: 3365940
2022-12-29 07:17:07 -08:00
Pavankumar Nandeshwar
4e0ae9b556 qcacmn: Set search idx and cache mapping for ppeds
Set search idx and cache mapping for ppeds in
sta mode

Change-Id: I1f892d329878e093d19324a178566b87715e1736
CRs-Fixed: 3367824
2022-12-29 05:19:41 -08:00
Varsha Mishra
e04f6dd5b8 qcacmn: Add get params for features
Add get parameters for features. These flags are
set in datapath vdev object and need to be extracted
outside datapath.

Change-Id: I4b4d8adcc523fc030bca699e0f0f9eb10475920c
CRs-Fixed: 3367490
2022-12-29 02:46:15 -08:00
Yu Tian
b05959171c qcacmn: Check system suspend status before REO CMD ring access
REO module may hang when REO commands are queued after WoW enable WMI
sent to FW. Change is used to check WoW progress before accessing REO
CMD ring. If WoW is in progress, then defer REO commands.

Change-Id: I9cd8390e77ef33f98f84cb604f152e3f9a0e4203
CRs-Fixed: 3362608
2022-12-28 19:19:25 -08:00
Neha Bisht
0ec15d3777 qcacmn: Move TDLS feature code under mcc macro
Create a wrapper API and move TDLS feature code under mcc macro

Change-Id: I98a8faf96dc23c6c5486cf30656bcf7facd0ba58
CRs-Fixed: 3360587
2022-12-28 15:33:37 -08:00
jinbaoliu
5a1cd48520 qcacmn: Fix TX stastics failed to take TSO segment into account
Currently, we record TX musdu number and packet length, which falls into
three categories: from stack, from host and successfully transmitted. In
TSO mode, the msdu from stack will be divided into several fragments and
each of the fragment will be transmitted as an individual msdu. This change
will take TSO into account when it comes to the 3 forms of TX statstics.

Change-Id: Ie11cb7541b4e109609bf3104739a5e19f51dcc13
CRs-Fixed: 3361412
2022-12-28 06:15:15 -08:00
Chaithanya Garrepalli
e7b9b355df qcacmn: Handle peer Rx TID allocation failure
In case where memory alloction failure for RX TID return
appropriate status for CP

Change-Id: I96a3694b05f84034ebacd15d87e58cd1f59207de
CRs-Fixed: 3365642
2022-12-28 04:24:47 -08:00
nobelj
f1dd81866f qcacmn: Add support for firmware to software tlv
Added support for parsing firmware to software tlv. which is mainly used
for populating frequency of the current packet.

Change-Id: I67c552e6d6b5caf9c12c34e553bad70b89b30c40
CRs-Fixed: 3270364
2022-12-27 17:07:35 -08:00
Sreeramya Soratkal
d148f093d2 qcacmn: Handle allocation of descriptors to special packets
Special frames like EAPOL should not be dropped as it would cause
failure in connection. To prevent the dropping of higher priority
special frames, reserve a set of descriptors from the tx descriptor
pool.

Check the regular soc or pdev limit for the allocating tx descriptors
for the regular packets and use the reserved set of descriptors
only for the special packets.

CRs-Fixed: 3331359
Change-Id: I15532fb5e325ba6ad997090008bda8c52707a05b
2022-12-27 17:07:26 -08:00
KARTHIK KUMAR T
a2625b18ab qcacmn: Get ast_idx from dp peer structure
Get the ast_idx from dp peer structure to
set search index in HW tx descriptor

Change-Id: Icc7e70d8bb739348403663a1fe647849c57d277a
CRs-Fixed: 3346449
2022-12-27 14:27:45 -08:00
Harsh Kumar Bijlani
32e703fd57 qcacmn: Remove duplicate APIs used for peer stats fetch
Remove duplicate APIs used for peer stats fetch

Change-Id: I960b80cf0b1269cfcdff9a53a5990f822037e837
CRs-Fixed: 3360114
2022-12-27 07:12:28 -08:00
Pavankumar Nandeshwar
4c86eb5e8a qcacmn: Use flag RX_PEER_INVALID_ENH for invalid peer handling
Use the flag RX_PEER_INVALID_ENH for invalid peer
event instead of FEATURE_NAC_RSSI

Change-Id: I87e301a48b1ccdcd28f8e2eb0ba80b215efa384c
CRs-Fixed: 2969193
2022-12-27 07:12:18 -08:00