Commit Graph

359 Commits

Author SHA1 Message Date
Chaithanya Garrepalli
084db81bf9 qcacmn: Add null check for DP MLD context
Add NULL check in CDP API for MLD context as it can
be called by upper layers for non-MLO VAPs

Change-Id: Id77284ca81462a7e799a7b93e3528d9d9144372c
CRs-Fixed: 3605323
2023-09-02 21:23:49 -07:00
Neha Bisht
5e70737f80 qcacmn: Handle special descriptor cases for global tx pool
Handle special descriptor cases for global tx desc pool

Change-Id: I33253b726b1b8a2e7438b3bc1dddcac43ad8fb25
CRs-Fixed: 3592887
2023-08-30 13:40:05 -07:00
Neha Bisht
82e9711f5b qcacmn: Move Tx desc pool to global context level
Move Tx descriptor pool to global context level.

Change-Id: Iff13a41f3bebbaa93e559c38842a596d47f4e534
CRs-Fixed: 3534184
2023-08-30 13:39:55 -07:00
Kenvish Butani
59bc72aa0f qcacmn: Use MLO Device Context for finding MLO Partner vdev's
Use vdev list present in MLO device context structure to find
MLO Partner vdev.

Change-Id: I6660ab91b27474dbe80562cc763417f07a7a2776
CRs-Fixed: 3583614
2023-08-30 01:38:35 -07:00
Kenvish Butani
8981a2f3c7 qcacmn: Cleanup MLO Partner list from DP vdev
Clean up MLO Partner vdev list and Bridge vdev
list from DP vdev_be as this is moved to MLO
device context
Also clean up the supporting DP API's and
relevant CDP API's

Change-Id: I614a2c43e493a8aba26ccf75813614ce9fbc8e5f
CRs-Fixed: 3588063
2023-08-30 01:38:11 -07:00
Kenvish Butani
fadd99318e qcacmn: Fix Ref leak issue in MLO dev ctx
Fix ref leak issue in MLO dev ctx detach

Change-Id: Ib42b809cd81f8e36b402d9329ea49338b420c7bd
CRs-Fixed: 3598739
2023-08-28 05:43:43 -07:00
Amit Mehta
fcf4ae51f3 qcacmn: Add changes to update band info in nbuf cb
Add changes to update band info into nbuf cb for
connectivity logging.

Change-Id: Iec5e91fe6b39a9a0f8a7a37d4945914d7a9e748f
CRs-Fixed: 3571823
2023-08-25 18:06:06 -07:00
Venkateswara Naralasetty
b5028a76d4 qcacmn: Enable interrupts on RXDMA MONITOR STATUS ring for wcn6450
Enable interrupts in monitor mode for wcn6450.
Interrupt configuration related code is moved from dp_main.c file to
dp_rings_main.c file as part of 'Ie58eae34a2da77c2d63870fab74b9d2d9d49c14a'
as Evros does not use dp group interrupts.

Move back the interrupt configuration related code from dp_rings_main.c
to dp_main.c  to enable interrupts in monitor mode for wcn6450.

Change-Id: I7a3cbbe905072dad1cf38799ac6ef441281f78f9
CRs-Fixed: 3565734
2023-08-25 03:03:23 -07:00
Chaithanya Garrepalli
a0e560c475 qcacmn: Add arch ops for get chip id API
Add arch ops for dp_mlo_chip_id to avoid access
of dp_soc_be struct for LI platforms

Change-Id: Idc7612ef3c517aa62668fe15e51b5e5ec74bb253
CRs-Fixed: 3582795
2023-08-24 04:18:49 -07:00
Pavankumar Nandeshwar
ad866ad37f qcacmn: Avoid asserts in dp related to HW interactions
Avoid asserts in data path which related to HW interactions
and instead use work arounds.

Change-Id: I86089d21c5be23784f8a077b085f3f3b8a2308e4
CRs-Fixed: 3564940
2023-08-23 10:33:18 -07:00
Kenvish Butani
b3f6de339b qcacmn: Move CDP common MLO ops under MLO Macro
Move CDP common MLO ops under MLO Macro

Change-Id: Icd1f13856091c973d213d0d90aabfe86bd588cdd
CRs-Fixed: 3590973
2023-08-18 18:10:17 -07:00
Amrit Sahai
f223bd29ee qcacmn: Add support for to_stack at link level
Add support for to_stack at link level

Change-Id: I794a1bd8ef78a3af15f006ac3306b1c9b23e457d
CRs-Fixed: 3571870
2023-08-18 18:10:07 -07:00
nobelj
d754731461 qcacmn: Add start and end flag set for raw frame
For RAW frames, setting zero to start and end flag make difficult
to reconstruct amsdu frame.

Change-Id: I28ffb87682427c7986f98730d514a0421eae1972
CRs-Fixed: 3584549
2023-08-16 13:36:59 -07:00
Kenvish Butani
e617b8791c qcacmn: Add Mcast Seq num in MLO dev ctx
Move multicast sequence number field from
dp_vdev_be to MLO device context struct.

Change-Id: I28c3a9f4480a5da5b622f9dd2a070ac25b9b6e5b
CRs-Fixed: 3586918
2023-08-16 13:36:38 -07:00
KARTHIK KUMAR T
39bb6afc38 qcacmn: added MLO MCAST packet stats
added MLO MCAST packet stats in tx stats

Change-Id: I46ad1a94bf986d21a9b865d7531298e805abcda8
CRs-Fixed: 3582328
2023-08-16 13:36:26 -07:00
Mukul Dhiman
0ad05f4a1a qcacmn: aggregate vdev stats in to mlo ctxt at vdev detach
aggregate vdev stats in to mlo ctxt at vdev detach

Change-Id: I002e48e4b95a32a0ff58e3e1cc26ea97d94f7a5d
CRs-Fixed: 3572527
2023-08-16 02:17:17 -07:00
Nandha Kishore Easwaran
15812b8137 qcacmn: Optimize tx completion processing in fast path
Optimize tx completion processing in fastpath by adding the list of
tx descs to the free list directly instead of individually accessing
each descriptor and adding it to free list. This gives advantages of
not taking descriptor pool lock for each descriptor and rather takes
the lock only once when appending the whole list of descs to the
free list.

Also removed unused member shinfo_addr from tx_desc structure. Removal
of this member enables increase of flags type from u16 to u32 without
increasing the size of tx_desc structure. These changes improved peak
KPI by 2% in SFE mode.

Change-Id: I995de9cc08c866ad6e1cd1efc76ac2a35d40fb7c
CRs-Fixed: 3584578
2023-08-15 15:09:54 -07:00
Kenvish Butani
8e969e5393 qcacmn: Add Support for MLO device Context Struct
Add support for below operations for MLO device
context structure.
1) Allocate MLO device structure
2) Attach vdev to MLO device structure
3) Detach vdev from MLO device structure
4) Free MLO device structure

Change-Id: Ifc282a5a04657aa618e0dac6a64d118aa8a8f422
CRs-Fixed: 3566880
2023-08-13 23:59:12 -07:00
Himanshu Batra
c290e36c21 qcacmn: Setup max BA value for tids for mesh peers during peer add
Setup max BA value for tids for mesh peers during peer add

Change-Id: Ia18f5d65db819d87b81c217e5e11fba3316b8d16
CRs-Fixed: 3536290
2023-08-03 03:41:19 -07:00
syed touqeer pasha
3041fbd68f qcacmn: Handle HW coookie conversion disable in DS mode
Direct switch support to handle Rx cookie conversion
when HW cookie conversion is disabled.

Change-Id: I861d854fbeecc2c70e87be3f289915b7e915985d
CRs-Fixed: 3547681
2023-08-01 20:29:12 -07:00
Mukul Dhiman
59ec56d44f qcacmn: add partner vdev debug prints in TXRX_AST_STATS
add partner vdev debug prints in TXRX_AST_STATS

Change-Id: Icf3cc557572519e43e3135e2b22ff457982a8d32
CRs-Fixed: 3571207
2023-07-30 19:08:19 -07:00
Amit Mehta
8a052c3b88 qcacmn: Get correct peer id in htt tx completion
Currently in htt tx completion for MLO connection
host is not converting peer id into ml peer id.

Due to wrong peer_id host is not able to find txrx_peer
due to which stats are not getting updated.

To fix the issue in case of MLO connection convert
received peer_id into MLO peer_id.

Change-Id: I2e90104053d59a319d46a2628c4e9cdcb32832a0
CRs-Fixed: 3574182
2023-07-28 23:43:08 -07:00
Lin Bai
09432f7ace qcacmn: Compute pages required by SPT properly
Compute the required pages properly, when num_descs is not
multiple of DP_CC_SPT_PAGE_MAX_ENTRIES(512).
For example, if num_descs less than DP_CC_SPT_PAGE_MAX_ENTRIES,
then 1 page needed rather than 0.

Change-Id: I1c4b12cfebef6a9b315baf9044355caab1b112de
CRs-Fixed: 3571562
2023-07-28 23:42:57 -07:00
Sai Rupesh Chevuru
227c8c9aaa qcacmn: In peer WDI events use the vdev id instead of osdev
In peer WDI events use the vdev id instead of osdev.

Change-Id: I1dd702acba2721712222a4985b4747050647b4e0
CRs-Fixed: 3571299
2023-07-27 08:32:32 -07:00
KARTHIK KUMAR T
63bf6f5d07 qcacmn: Added code to include rx packet tlv hdr
Added code to include rx_pkt_hdr_tlv in
rx packet tlvs header

Change-Id: I0609cf94e3b53cf625f7c347d86e42fe815e452e
CRs-Fixed: 3563009
2023-07-26 10:52:45 -07:00
Mukul Dhiman
fe14b1901b qcacmn: dp stats aggregate handling for bridge vap in mlo
dp stats aggregate handling for bridge vap in mlo

Change-Id: I4bb934776a35f76b091694de024b173c744ac087
CRs-Fixed: 3557225
2023-07-24 05:10:18 -07:00
Azmath Mohammed
2baa26c9b4 qcacmn: Added a check in "dp_hw_cookie_conversion_detach"
When the mem_alloc fails and fails to create spinlock
checks the mem allocation before destroying spinlock.

Change-Id: Id4c1a509cd0bb534040040f6948d3307181dc909
CRs-Fixed: 3552551
2023-07-14 15:41:57 -07:00
Sai Rupesh Chevuru
a7af205870 qcacmn: populate the bridge vap in partner list
populate the bridge vap in partner list

Change-Id: Ie7c0ebc3b796f2b57e7837577079dcd1d4faac45
CRs-Fixed: 3550201
2023-07-14 10:07:31 -07:00
Gaurav Saini
1630288f30 qcacmn: Remove AST dependency for sawf
To eliminate the use of AST, using net dev to
find the peer related information, which helps
in avoiding the iterations of psoc list.
Passing the peer id as addition parameter to DP

Change-Id: I68e4ad8d5d62b2350ed0c2df66279de3fa9c0d83
CRs-Fixed: 3526799
2023-07-11 18:16:20 -07:00
Neha Bisht
ddd144bfd6 qcacmn: Fetch current primary soc from mld peer
Fetch current primary soc from mld peer instead of current link peer.

Change-Id: I6c9fc7712b16d938d47b1cd1b5e8bf75eaf352d0
CRs-Fixed: 3547555
2023-07-11 12:49:53 -07:00
Venkateswara Naralasetty
fc93f83a78 qcacmn: Add SWLM support for WCN6450
Changes required to support SWLM feature on wcn6450.

Change-Id: I306cba8dcefa8f34a9546285b33b974987aec625
CRs-Fixed: 3540269
2023-07-10 18:03:57 -07:00
Shashikala Prabhu
7f898dfcc2 qcacmn: Add buffer window for umac reset in progress
When the peer delete timer/vdev manager response timer expires, host checks
if the umac reset is in progress. If so, host will retrigger the timer.
It is possible that the umac reset is just completed and either of these
two timers got expired. In this case, host will assert saying that the peer
delete response/vdev manager response is not received from FW. FW may take
a few milliseconds to send the peer delete/vdev manager response to the
host after the umac recovery completes.

Hence, to avoid the crash, check if the umac reset was in progress during
the umac reset buffer window.

Add the below changes as well,
1) INI support to get the umac reset buffer window value.
2) Renamed the API dp_umac_reset_is_inprogress as
   dp_get_umac_reset_in_progress_state to return either
   CDP_UMAC_RESET_IN_PROGRESS or
   CDP_UMAC_RESET_IN_PROGRESS_DURING_BUFFER_WINDOW.

Change-Id: Ie15ef0731bad4b0ed955a479f00e297b7ba10729
CRs-Fixed: 3522665
2023-07-05 17:19:13 -07:00
Varsha Mishra
eadb65cdde qcacmn: Update vlan tag in multipass received frames
All packets except TID 0 first come to REO error NULL queue.
This happens because only TID 0 queue is setup initially.
Added multipass specific code in NULL queue path.

Change-Id: I8103215ad3e28796c868caa3eec816b9d118da9d
CRs-Fixed: 3482796
2023-07-05 08:36:38 -07:00
Kenvish Butani
54b264c3a1 qcacmn: Fix RCU stall due to long SG list in RX Error path
RootCause:
WBM RX Error Ring, receives a packet from RXDMA with FCS Error
and MSDU Continuous Bit set. As MSDU continuous bit is set the
nbuf is added to temp SG list, but SG for these error is not
supported, hence the temp SG List never got reset and it
incremented hugely leading to high number of nbuf for
processing in list which lead to RCU stall

Fix:
IN WBM RX Error Ring, SG is supported only for two kind of
errors i.e. NULL Desc and Unencrypted. For all other kind of
errors reported by HW with MSDU Continuous bit set, explicitly
reset MSDU continuous bit in nbuf

Change-Id: I8d5858ccefb89b93e1c4fb36609d747eef00e8f2
CRs-Fixed: 3532208
2023-07-04 19:15:39 -07:00
Nanda Krishnan
baf49c9f89 qcacmn: Tracking the ring util stats
Added serviceability changes to track ppe2tcl
and wbm2rel ring util stats

Change-Id: Ia154ae4914c47f010921eaed10b8a4dde50884bf
CRs-Fixed: 3537655
2023-06-27 21:48:54 -07:00
Neha Bisht
c9d9e88708 qcacmn: Update ast entry during PTQM migration
Delete and add ast entry during PTQM migration for current and new primary
peer respectively.

Change-Id: I4a640f84a5778aeff19057e027b3aae9e939487a
CRs-Fixed: 3536670
2023-06-27 07:39:40 -07:00
Biswajit Dash
977b3d1fd6 qcacmn: move ml_peer_valid bit check macros out of qdf
-Moved the get macro from qdf to cdp layer.
-Removed the set macro from qdf and replaced its usage
 in be rx layer with an existing HTT ml_peer_Valid mask.

Change-Id: I4a87b4b560f983c5aa6d026481a88d28e2ff09fd
CRs-Fixed: 3488425
2023-06-26 17:22:44 -07:00
Rakesh Pillai
60e91fe20b qcacmn: FISA init code movement
Move the FISA initialization code out of cmn DP.

Change-Id: I744a69d559225d4a0496b84be9007ab230f2f4a0
CRs-Fixed: 3512034
2023-06-24 13:31:35 -07:00
Pavankumar Nandeshwar
c27dfcd8ac qcacmn: Add tx desc alloc failure count for PPEDS
Add tx desc alloc failure count for direct switch

Change-Id: I593e5846ab4948edf1e1b955890f167f772e166b
CRs-Fixed: 3526743
2023-06-14 03:12:51 -07:00
Kenvish Butani
6f0ea851ba qcacmn: Add iteration logic to reset MCAST Primary Flag
For every set Mcast Primary Flag call from CP, DP will
set the mcast primary flag for that particular vdev of
MLO and reset mcast primary flag for all the other
vdev's of MLO

Change-Id: I4fff532e5e30d1346fa9e9ad72d72af2e1c6f768
CRs-Fixed: 3520617
2023-06-09 13:50:46 -07:00
KARTHIK KUMAR T
080c5089fd qcacmn: Add new API to get partner soc
added a new API to get partner soc by passing chip_id
while adding and deleting flow entry.

Change-Id: Ib1d8c0dedb8e11d164f00791e59cf52ef8332cb5
CRs-Fixed: 3508805
2023-06-05 13:53:13 -07:00
Sachin Kohli
46fcdcfef8 qcacmn: Adding support for IRQ_DISABLE_UNLAZY flag for PPEDS interrupts
Support for setting and clearing the IRQ_DISABLE_UNLAZY flag
during registering and freeing of PPEDS interrupts respectively.

Change-Id: I4a512e434315d2c981e890661adb5686bdb563bc
CRs-Fixed: 3509601
2023-06-02 16:50:53 -07:00
Nandha Kishore Easwaran
b88e368419 qcacmn: prefetch only required fields in skb
Remove prefetch of data + 128 since skb fields in that offset
are not usied when processing. Also, prefetch next->data, so that
there is no cache miss.

Change-Id: Ida9fc7e4db86e181de82acb2364dd63d37d51e2c
CRs-Fixed: 3505042
2023-05-31 23:38:46 -07:00
Amit Mehta
34497ea2d1 qcacmn: Add changes to get link ID in Tx/Rx Path
Add changes to get link ID in Tx/Rx Path

Change-Id: I6b52093697b138e5a5d3878af2dd8db0d65cc488
CRs-Fixed: 3450541
2023-05-28 09:28:46 -07:00
Yeshwanth Sriram Guntuka
4dc955351e qcacmn: Move prealloc DP descriptor types to QDF
Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.

Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
2023-05-26 16:06:57 -07:00
Rakesh Pillai
b361da4fea qcacmn: Cleanup CMEM allocation code
Currently the CMEM allocation code is duplicated
for Cookie conversion and FISA.

Cleanup the CMEM allocation code.

Change-Id: Ifdb912fe464abaa7be0ab8b2294155984dbd662e
CRs-Fixed: 3504668
2023-05-26 10:27:56 -07:00
Kenvish Butani
0df4b5eaea qcacmn: Optimize DP Rx Error Handling (Part-2)
In WBM2SW Rx Error path for BE
specific functionality
1) HAL API's/Function pointers are replaced
with specific function calls.
2) Efficient read/write of WBM Error Info
from HAL Rx desc.
3) Minimize reading data from Nbuf TLV.
4) Peer_id fix for MLO clients with security

Change-Id: I1c9e6e767bbf6565567d998ae8e1357398de5803
CRs-Fixed: 3486304
2023-05-24 05:19:41 -07:00
Pavankumar Nandeshwar
5981600c3a qcacmn: Account for global tx desc count during pool flush
Make sure global tx desc count is decremented during
tx desc pool flush

Change-Id: I5ba21cd9a4b1dbd3dbaf55e56a5852fe7703e36c
CRs-Fixed: 3501063
2023-05-23 06:59:50 -07:00
Kenvish Butani
c7c2642eef qcacmn: Add Stats support for MLD Interface in STA mode
For both Unified Bonding and Non bonding mld mode,
add Support to get VDEV Stats for MLD Interface on
STA mode for ifconfig and wifitelemetry tool.

Change-Id: Icb528d8738fd932d3f2c057af49fc7af141299e9
CRs-Fixed: 3502731
2023-05-22 07:06:12 -07:00
Parikshit Gune
b46533745e qcacmn: Support FSE flow rule push from ECM
1. Adding cmn dev APIs to support FSE block rule add from
ECM for SFE UL flows
2. Send SFE flows to stack post FSE match

Change-Id: I37563592a03e28373ef3e2520a771082c629ccf5
CRs-Fixed: 3499382
2023-05-19 23:26:02 -07:00