Commit Graph

2696 Commits

Author SHA1 Message Date
Harsh Kumar Bijlani
eee813ad02 qcacmn: Initialization of stats in txrx_peer and monitor_peer
* Initialize stats in dp_txrx_peer and dp_monitor_peer as per
  the stats re-organization.
* Update peer calibrated stats on every timer expiry of 1 second.
* Define APIs to reset monitor_peer stats and to fetch rdkstats_ctx
  from monitor peer.
* Place check to make sure that monitor peer related APIs are
  are called only for legacy peer or MLO Link peer.
* Update peer based pktlog flag, tx and rx capture feature flags
  in monitor_peer.

Change-Id: Idadbe19e85d4a9fdf77fb6dabe0c8a4952b024b8
CRs-Fixed: 3092123
2022-02-09 11:54:14 -08:00
Harsh Kumar Bijlani
148f220408 qcacmn: Segregate stats among peer, txrx_peer & monitor_peer
Segregate the stats among dp_peer, dp_txrx_peer and dp_mon_peer
structures.

Segregation is done as per below:
 * Move stats updated in per pkt path to dp_txrx_peer
 * Consider stats updated purely in per pkt path as per_pkt_stats
 * Consider stats for which there is an alternate path of
   updation as extd_stats
 * Move delay stats and jitter stats to dp_txrx_peer
 * Maintain calibrated stats in dp_peer
 * Move rdkstats_ctx from dp_peer to dp_mon_peer
 * Move invalid peer from dp_pdev to dp_mon_pdev

As per the above segregation, if there is not support for
alternate path of stats updation, then stats in dp_txrx_peer is
combination of per_pkt_stats and extd_stats and dp_mon_peer
does not hold any stats.

If support is there, then dp_txrx_peer holds only per_pkt_stats and
dp_mon_peer holds extd_stats.

Change-Id: I2eb81d1b93a178985c05ff4f6557a173cc8a262d
CRs-Fixed: 3092123
2022-02-09 11:54:07 -08:00
Pavankumar Nandeshwar
b9038e9d4e qcacmn: Move per packet stats params to txrx_peer
Move the stats parameters from the dp_peer which are used
in per packet path to txrx_peer

Change-Id: Ieb68b6950740791b37bbd2bfdc4815c3d7bc4834
CRs-Fixed: 3095637
2022-02-09 11:54:01 -08:00
Pavankumar Nandeshwar
98b25a2ee6 qcacmn: use txrx_peer in rx and tx paths
Use txrx_peer in rx and tx data paths instead of
main dp peer.

Change-Id: If628543092be220021240b6f25ee43b009592bac
CRs-Fixed: 3095637
2022-02-09 11:53:55 -08:00
Pavankumar Nandeshwar
826ec6b4f5 qcacmn: use txrx_peer in wds APIs
use txrx_peer in wds APIs instead of main dp peer

Change-Id: I3d05de8c29c1ee012405ca2ab22aec3876956bf1
2022-02-09 11:53:49 -08:00
Pavankumar Nandeshwar
04bb406179 qcacmn: use txrx_peer in defrag and rx error paths
Use txrx_peer in defragmentation and rx error paths instead of
main dp peer.

Change-Id: I95bb2f672e49d0f6ddb94a093688b0fbce5e373d
CRs-Fixed: 3095637
2022-02-09 11:53:43 -08:00
Pavankumar Nandeshwar
9c6800383c qcacmn: Move per packet params to txrx_peer
Move the parameters from the dp_peer which are used
in per packet path to txrx_peer and params related
to monitor path to monitor peer.

Initialize txrx_peer and monitor peers.

Change-Id: I0449c67c1cd47deb76bc89b5ddc64174f6694eb0
CRs-Fixed: 3095637
2022-02-09 11:53:37 -08:00
Vivek
a795c47f70 qcacmn: Add CDP call to configure SAWF
Add CDP call to configure SAWF enable
and disable for a soc.

Change-Id: I42f383a2e33808cf91310fd989a2e12db447236d
CRs-Fixed: 3119127
2022-02-09 07:45:51 -08:00
Manoj Ekbote
5abebcd1a6 qcacmn: Add sanity check in rx monitor path
Check physical address of nbuf with ring addr. If they
don't match, move to the next descriptor. Activated with
build flag.

Change-Id: Ibd6b38679d677a59f14450db3224104396c88d2e
2022-02-09 02:06:30 -08:00
Neha Bisht
8fb88793e5 qcacmn: Add intra-bss check for NAWDS in tx path
In NAWDS, if ast for self bridge is present in AST table,
then the mcast arp frames are getting dropped if peerid
for nawds peer is matching ast peerid of self bridge.
To fix this, add intra-bss check for NAWDS in tx path.

Change-Id: I6f1b44634536c558520aaf0bd0c0155c4b2a4e28
2022-02-08 07:44:46 -08:00
Devender Kumar
d70b48ed27 qcacmn: Use sw_peer_id instead of ast_index to get peer
In order to support flow overide feature,
AST table has to be split between RxPCU and DDR.
With this split, RX monitor cannot make use of
ast_index to fetch peer as it is not from DDR.
So make use of sw_peer_id to fetch peer.
This sw_peer_id is derived from RX_MPDU_STAT_START_TLV
Remove the spinlock on unsused variable i.e ast->lock.

These changes were overwritten by monitor segregation
effort, hence bringing back again.

Change-Id: I339f4296562e3b4dfd6f3a71102385e395f00268
CRs-Fixed: 3108200
2022-02-08 04:36:40 -08:00
Adwait Nayak
9a61b83a20 qcacmn: Fix issues in monitor path
1. Replenish path issue:

a. when number of required buffers passed to replenish API is '1',
host does not replenish '1' buffer.

b. If no. of available entries in ring are '0', return sw desc
   back to pool.

2. 32-bit compilation issue

3. Block ppdu desc deliver API when pktlog is enabled for BE

Change-Id: I79ebf1f84830b4c2f5e5b727e3e08c5ee1870898
2022-02-08 00:56:27 -08:00
Karthik Kantamneni
6423cd35e3 qcacmn: Do not proceed for recovery on TX completion delay
Do not proceed for qdf recovery on TX completion delay.

Change-Id: I09a088c9e1fa78ce1b2013af3cd9ed41207b52ea
CRs-Fixed: 3124692
2022-02-07 20:22:06 -08:00
Srinivas Girigowda
1cd2285eca qcacmn: Extract tx complete status based on CDP_ARCH_TYPE
For the non standard htt tx completion, extract the tx completion
status based on the CDP arch type.
For Lithium based architecture, use HTT_TX_WBM_COMPLETION_V2
For Beryllium based architecture, use HTT_TX_WBM_COMPLETION_V3

Change-Id: I050e8a144d72c2a9fcb6174c690c38c4e2c88c25
CRs-Fixed: 3119153
2022-02-07 17:56:53 -08:00
sandhu
acd531729d qcacmn: Ext stats optmization , CNE stats
Change Ext stats for msdu_missed to reflect reo error.
Update EXT stats transmit enqueue failure value to reflect
enqueue errors on all transmit rings.

Change-Id: I532b2b0adaa3216809978e3d558a3b11e5bc8eb6
CRs-Fixed: 3115517
2022-02-04 23:06:35 -08:00
Amir Patel
28ecc1a2f1 qcacmn: Add RxMON global enable support
Add RxMON global enable support for WKK

Change-Id: If732318788821303441a5db9ebe21bd2d56b3679
CRs-Fixed: 3123532
2022-02-04 19:55:36 -08:00
Nirav Shah
33528eaa41 qcacmn: dp: Add support to update tsf timestamp in data packet
Add support to update tsf timestamp on driver entry and
exit in data packet. This helps debug latency issue in
XR usecases

Change-Id: I9c966c1b8cb09dc5eab6104fdad36c19a1d68045
CRs-Fixed: 3090108
2022-02-04 07:10:51 -08:00
Naga
3e4c2182ff qcacmn: Updated copyright year markings
Updated copyright year markings

Change-Id: I2d70827bf0eaee6741a8b8a1704a8303b6e0cd8b
CRs-Fixed: 3114195
2022-02-04 03:31:42 -08:00
Surabhi Vishnoi
c62b0f215e qcacmn: Reduce the log level from error to info
Reduce the log level of tx flow control threshold pool size
from error to info. This is done to reduce the delay due to
console logging in connection/roaming path.

Change-Id: I5332bd179edc92006976a6421121cfce38b89b70
CRs-Fixed: 3119430
2022-02-04 03:31:37 -08:00
Ananya Gupta
bb366620fc qcacmn: Check timestamp before calculating time latency
Race condition is observed when runtime suspend is aborted
due to pending tx completions, in this context all tx desc
are checked for corruption or leakage. In parallel tx completion
is received and descriptor timestamp is set to null. As a
result, while checking for leakage in runtime suspend context,
time difference for the tx completion is current jiffies which
is huge, resulting in triggering recovery.
To fix this, tx_desc timestamp is checked before calculating
time latency. Also, printing tx descriptor id for which
completion is not received.

Change-Id: I38b487a47170af374f43c44a96e2a0753f5d57ef
CRs-Fixed: 3117549
2022-02-03 04:06:21 -08:00
Adil Saeed Musthafa
40663d0990 qcacmn: For EAPOL packets on MLO, accept EAPOL destined to MLD mac
EAPOL packets on MLO are destined to MLD mac address of the VDEV. So
we have to accept these packets as well, in case of MLO

Change-Id: If424d145341073806ba313f415e88a738360214d
CRs-Fixed: 3121164
2022-02-02 13:15:32 -08:00
Tallapragada Kalyan
b265fdd7fc qcacmn: introduce simple nbuf_free API in RX path
simple Alloc is being used in RX path which avoids
certain debug logic. during free of nbuf we should
avoid this debug logic else it will report it as
double free, this will be triggered only when debug
is enabled

Change-Id: Iadb40071fb733cc4de3291784df5075d5a099a8e
2022-02-02 12:06:34 -08:00
Sumedh Baikady
e4d9b0c2d7 qcacmn: REO queue ref enhancement for Waikiki
In WIN BE chipsets, replace the REO tid
queue programming in FW via WMI with writing to a
Host managed table shared by HW and SW. REO HW will
pick the tid queue address from the table indexed by
peer id and tid number.

Change-Id: I8107ca5116425538329b11ae3519f02b32573bac
2022-02-02 12:06:29 -08:00
Amir Patel
8e96dd29e8 qcacmn: Disable Enhanced PPDU stats and low watermark interrupt
Disable Enhanced PPDU stats and low watermark interrupt for WKK

CRs-Fixed: 3120686
Change-Id: I8eecd2e17cb0748d1e7d15b28ce3d16f69fe81d5
2022-02-02 04:25:52 -08:00
Neha Bisht
5f8681ff1e qcacmn: Enable the 4th Tx. completion ring
Enable the 4th Tx. completion ring to save CPU load
Initialization and interrupt handling for 4th completion ring
is done here.

Change-Id: I2db27218a3c3e14d719d012f03454a6a7aa647fe
2022-02-01 21:04:30 -08:00
Naga
6671e93774 qcacmn: set low threshold interrupt for wkk monitor
set low threshold interrupt for wkk monitor

Change-Id: Ifb29f570677874e34bcaed61d89aae30bd9494e8
CRs-Fixed: 3114973
2022-01-29 19:15:27 -08:00
Adwait Nayak
ada7af683e qcacmn: Fix for sending valid monitor filter setting to FW
Due to usage of lithium specific structure, the filter settings
were not getting reflected in the htt msg that is being sent to
FW. Usage of BE specific monitor pdev structure is helping out
in configuring the monitor filter settings for various modes.

Change-Id: Ie4a59ec16717d752c6c49624142966722bfacc08
CRs-Fixed: 3118596
2022-01-28 05:20:49 -08:00
nobelj
357bfbe52d qcacmn: Add support to Legacy tx monitor and Waikiki
Add function pointers to free buffer address stored in status buffer
and support tx monitor in legacy and Waikiki flow.

Change-Id: I28612d388009292ff751fe514183fb801909f485
2022-01-28 04:05:13 -08:00
Pavankumar Nandeshwar
d9e6722ff0 qcacmn: Fix QUIC Copyright Markings
Fix QUIC Copyright Markings

Change-Id: Id0cea92c1e6b64f82601c08a81b6246ee6d49a62
2022-01-27 12:53:33 -08:00
Adwait Nayak
3541cb95dc qcacmn: Fix for monitor issue
Enable filter setting for RX monitor.

Change-Id: I6dfe285ac66dd238628cbb54b9e30bb80c8608a0
CRs-Fixed: 3118568
2022-01-27 10:53:28 -08:00
Adwait Nayak
71cb851a00 qcacmn: Filter setting and pktlog processing support
Add filter setting and pktlog processing support for
rx based pktlog.

Change-Id: I64b76759f348ef75b45b4166495aa733995de474
CRs-Fixed: 3109099
2022-01-26 11:00:07 -08:00
Adwait Nayak
df88a8bdc9 qcacmn: Place pktlog specific code under BE_PKTLOG_SUPPORT
Introduce a new flag "BE_PKTLOG_SUPPORT" for beryllium specific
pktlog support.

Change-Id: If91156541b322905ad5d97cf2d9d7ae687290ecb
CRs-Fixed: 3115832
2022-01-26 10:59:42 -08:00
Jeevan Kukkalli
afea807ac6 qcacmn: Fix memory leak
Monitor cdp ops structure is dynamically allocated, free it
during cdp ops deregistration.

Change-Id: Ic88a22ded0d20e48d00fc8270698ba084d3200a3
2022-01-25 11:53:35 -08:00
Ananya Gupta
f54a51648c qcacmn: Send EAPOL pkt to stack in rx_err path
Send only eapol packets to stack and drop other packets
when found in rx err path when either REO or RXDMA push
reason is set to ROUTE type.

Change-Id: If1f43426adf21f7d00f17d369cd7fde7f7f85866
CRs-Fixed: 3114312
2022-01-25 09:23:13 -08:00
Neha Bisht
ebf445a844 qcacmn: Avoid use of map and unmap API in simple path
Add qdf wrapper for dma_clean_range and avoid use of DMA
map/unmap APIs in Tx. simple fast path.
Gain of ~150 Mbps is observed while running 4 radio traffic.

Change-Id: I0e96bfee43fe810da8c861cb0f4535fb0ba7f6f7
2022-01-25 03:21:47 -08:00
Tallapragada Kalyan
ab28074b13 qcacmn: Access peer and its parameters only if peer_id changes
1. avoid accessing CFG parameter in per pkt path.
2. Access peer, vdev and pdev only when current peer_id
   is different from previous peer_id.
3. Avoid HKv1 and v2 checks in WDS learning path.

Change-Id: Id7fb7a29c642480f8ca58738dbb0c92130e44ecd
2022-01-24 17:00:31 -08:00
Adwait Nayak
10c1ced2ac qcacmn: Fix for monitor issues in WKK
Fix for monitor issues in WKK.

Change-Id: Ie0dbd39b6a9b0014d85b2bdd58113326ac937ba0
CRs-Fixed: 3109099
2022-01-23 22:41:05 -08:00
Yeshwanth Sriram Guntuka
8e11d1a8fb qcacmn: Add frag dma unmap handling for SG packets
DMA unmap for scatter gather packets is done using
only frag0 dma address and the entire packet length
which will lead to incorrect behaviors. Add handling
to do dma unmap for all the fragments of SG packets.

Change-Id: I614553d9f96c573f0095c9be38706fd4ac3223ab
CRs-Fixed: 3112424
2022-01-22 09:53:24 -08:00
Ananya Gupta
940984c6a6 qcacmn: Check for tx desc leak or corruption
Tx descriptor is not being freed and put back in tx desc
pool for a long time. As a result, system is not going
into suspended state.
To find this descriptor, during dp_bus_suspend and
dp_runtime_suspend, parse through the descriptor pool to
check for any descriptors not freed for a long and trigger
self recovery when found.

Change-Id: Id97c5c8537c9bec922f4e254b5bf094505ee61ff
CRs-Fixed: 3109868
2022-01-21 11:42:27 -08:00
Subrat Mishra
1e5ee08ad6 qcacmn: CDP interface support for Tx Capture Stats
Add CDP interface structure and ops functions for getting Tx Capture
stats.

Change-Id: I5b01e2ab21aec566848eee805d6a702da150d328
CRs-Fixed: 3111860
2022-01-21 01:54:05 -08:00
Harsh Kumar Bijlani
1b4de61a20 qcacmn: Resolve WIN errors
Resolve WIN errors

Change-Id: I124990d54c5da295bf14d199e297116c56e06d08
2022-01-20 21:14:03 -08:00
aloksing
b4dce7b534 qcacmn: Fix Copyright Markings
Fix Copyright Markings

Change-Id: If1f917bd1be3b9e12a4f22ebd6cc5ad52ef0ca48
2022-01-20 16:33:21 -08:00
Aakanksha Doda
913e7a6bea qcacmn: Update Quic Copyright year markings
Update Quic Copyright year markings

Change-Id: Ib25b9cf5798d6c803f23f97c88ef34310effbfea
2022-01-20 13:15:46 -08:00
Nandha Kishore Easwaran
8ec7a3a162 qcacmn: Make intr thres zero for unnecessary interrupts
Make interrupt threshold zero for interrupts that are not
needed by host.

Change-Id: Id80c0be77b29b3b47cf3af568ae82f03f33d6f33
2022-01-20 12:10:04 -08:00
Amrit Sahai
dd6932077d qcacmn: Add support for retry counters
add support to account for msdu retry counters in per pkt
Tx completion path

Change-Id: Icd9d90a40d0c3f50ffdba7c4e30731eec0e825c0
2022-01-20 11:04:21 -08:00
Rathees kumar Chinannan
b0f35c7a6c qcacmn: Set Mcast control parameter for isolation mode
Set Mcast control parameter for isolation mode.

Change-Id: Id582e89d897af609c8584daca774d36f7d889d8c
2022-01-20 10:01:14 -08:00
Tallapragada Kalyan
9639c91317 qcacmn: buffer replenish and reap without map and unmap
use dma_inv_range call instead of dma map and unmap
APIs during replenish and reap. This complete code is
under a compile time macro.
before change: 4160Mbps @ 96.5% (core 3)
after change: 4160Mbps @ 90.5% (core 3)

Change-Id: I61bca349a369ace06cd86f353880108cee013cb1
2022-01-20 10:01:09 -08:00
Himanshu Batra
6c9b3cb72c qcacmn: Add API to check target state while enabling IPA autonomy
Add API to check target state while enabling IPA autonomy

Change-Id: I2d04b2989e129a8ab70fec908c06e509545c7a8c
2022-01-19 15:30:44 -08:00
Jinwei Chen
8883f9c1c7 qcacmn: add TX packet count per TX data ring for KIWI
Add TX packet count per TX data ring for KIWI

Change-Id: Ifc7d5774b6e804ba25f4a8e732d406fca3623dda
CRs-Fixed: 3111184
2022-01-19 05:39:35 -08:00
Neha Bisht
657ceed6e5 qcacmn: Fix QUIC Copyright Year Markings
Fix QUIC Copyright Year Markings

Change-Id: I7297986e56af0b396fc92f0a7b98fb47d0feec42
2022-01-19 05:39:30 -08:00