Commit Graph

3351 Commits

Author SHA1 Message Date
Rakesh Pillai
dd01164e30 qcacmn: Remove assert on MLD peer hash table add
Remove the assert during MLD peer hash table add,
even if its already present.

Change-Id: I20ca3cdff22ca246e192cc6154d0c68f1c27d9bf
CRs-Fixed: 3385739
2023-01-21 22:30:09 -08:00
Abishek Ganapathy
d4189d413a qcacmn: Skip MLD peer hash check for QWRAP repeater
Since MLD peer hash is the same for MPSTA and PSTA in QWRAP repeater,
skip this check for all WIN platforms.

Change-Id: I30fe7d8a6d1d24af841bcd21015e93f7bec6b2c8
CRs-Fixed: 3382276
2023-01-21 04:46:47 -08:00
Vivek
b7fe763018 qcacmn: Check for enqueue timestamp for Tx delay calculation
The Tx delay computed is very large if the enqueue
timestamp is zero.
Compute Tx delay only when the enqueue timestamp is valid.

Change-Id: Ic4032a6f4a01fc661dc1155a4543cd7fc4216970
CRs-Fixed: 3354639
2023-01-21 02:56:05 -08:00
Jinwei Chen
95eec89597 qcacmn: fix incorrect length setting for jumbo RX monitor MPDU
Currently for jumbo RX monitor MPDU, it will spread across multiple
RX buffers(N). host set length 112 bytes for (N-1) skbs(not include
the last skb), while the expected length should be (2048 - 400
- 112) = 1536 bytes for them, this lead to last skb length
calculation incorrectly, which will be total MPDU length -
112 * (N - 1), this will be over boundary of skb buffer room
easily.

Set length 1536 bytes for (N-1) skbs to fix it.

Change-Id: I4e73673887d5d8197cf64bed5da34a3751df1e33
CRs-Fixed: 3381528
2023-01-20 22:12:12 -08:00
Jeff Johnson
39b8d28508 qcacmn: Make dp_print_mlo_ast_stats() static
The function dp_print_mlo_ast_stats() 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: Id83c7b3110c60ca6e3dc3263aaf87d21e9365a31
CRs-Fixed: 3374039
2023-01-20 07:09:11 -08:00
Jeff Johnson
fc960c0f9f qcacmn: Remove orphan DP IPA prototypes
The original DP IPA implementation included some function prototypes
for which there were no associated function implementations. Since
these are pointless, remove these orphan prototypes:
dp_ipa_uc_set_active()
dp_ipa_remove_header()
dp_ipa_add_header_info()
dp_ipa_register_interface()

Change-Id: Ic085d456b860dc921b0e576f33702dd11550febb
CRs-Fixed: 3372067
2023-01-20 07:08:54 -08:00
Jeff Johnson
87286d59a8 qcacmn: Make dp_mlo_ctxt_{at,de}tach_wifi3() static
The following functions are currently public exported functions:
dp_mlo_ctxt_attach_wifi3()
dp_mlo_ctxt_detach_wifi3()

However these functions are only accessed from within the file where
they are defined, and they are only supposed to be called via the
cdp_mlo_ops, so make them static.

Change-Id: I8db6b7be9b91972c2183d2f699ed5fb64ec60713
CRs-Fixed: 3371955
2023-01-20 07:08:34 -08:00
Prakash Manjunathappa
3167a36a06 qcacmn: Fix rx_mpdu_received and error stats reporting to CNE
Current rx_mpdu_received and rx_mpdu_error stats reporting is incorrect.
rx_mpdu_received would be rx_mpdu_delivered + rx_mpdu_errors.
Also get combined rxdma_errors(rx_mpdu_errors) handled across host and FW.

Change-Id: Icbfeaffd7cd27d7f894df2d39add9cc7b47714be
CRs-Fixed: 3333010
2023-01-20 05:18:54 -08:00
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