Commit Graph

3081 Commits

Author SHA1 Message Date
Rakesh Pillai
f15646c12b qcacmn: Disable TX cmd credit ring for Kiwi
Kiwi target does not used TX cmd credit ring.
Hence disable the tx cmd credit ring for Kiwi.

Change-Id: Ibd5fe2905a7362ea2ab89e65d77c7aea6ab259ee
CRs-Fixed: 3150814
2022-03-21 20:50:58 -07:00
Ananya Gupta
42dd66b280 qcacmn: Allow all OOR frames to deliver to stack
Few APs are sending bar frame right after sending a
packet but the packet is not received and its retry
is received with the same sequence number. As SSN
is moved ahead due to bar frame, this packet is being
dropped.
To fix this, allow all frames to get delivered to stack.

Change-Id: I17f7126c8d318415e88b037b72563cf53cb14066
CRs-Fixed: 3151908
2022-03-21 13:09:13 -07:00
Amit Mehta
d2199b7a99 qcacmn: Set default value for REO dest ctrl register
Currently in some case we are receiving non error packets on REO2TCL
ring, which is causing issue.

Fix is to set DEST_RING_MAPPING_0 to SW1 for REO dest ctrl
register, So that non error packets with reo_destination_indication
with 0x0 in the reo entrance ring will be routed to SW1 ring.

Change-Id: I67f78f35e7dba899943307902d99d0325a60498f
CRs-Fixed: 3150186
2022-03-17 07:25:12 -07:00
Jinwei Chen
8180dff19c qcacmn: Update TX bank profile for STA + TDLS case
Search flag addrX and addrY will be enabled for STA + TDLS case,
but currently TX bank profile is not updated which then STA still
use default TX bank profile - index based lookup search, TX might
fail.

Update bank profile with addrX and addrY search enabled.

Change-Id: I6af12d3707b59c5d4b4bba1fc5ec05a22bfcd984
CRs-Fixed: 3148759
2022-03-16 07:50:27 -07:00
Neha Bisht
00b88532a4 qcacmn: Optimize dp_pkt_add_timestamp call to save CPU load
get_log_timestamp API is being called unconditionally when passed as
an argument to dp_pkt_add_timestamp (even for empty calls) from
dp_tx_hw_enqueue_li. This adds significant load on CPU, hence avoid
get_log_timestamp call by using preprocessor directive.

Change-Id: I1d988597e28b755a767a267d1b578b2bcedc324e
CRs-Fixed: 3150795
2022-03-15 23:21:29 -07:00
Nandha Kishore Easwaran
cf10304673 qcacmn: Add provision to set desc to higher value
Add support to change the tx_desc value to 65536. Some changes
to make the function argument as u32 type us made

Change-Id: I7cbde1b7ed4ab4e278c25c1ecfa94b7f673197f2
CRs-Fixed: 3130833
2022-03-15 03:41:58 -07:00
Neelansh Mittal
ea3efe6a60 qcacmn: Call HTT RxDMA and RxOLE PPE cfg API
Add a separate APIs to configure RxDMA and RXOLE
configuration to enable the PPE based routing.

Change-Id: I95b8fbb361402bc04fc1f38aa8b0dbc6f99f4f06
CRs-Fixed: 3147720
2022-03-15 00:11:19 -07:00
Neelansh Mittal
28d17d9290 qcacmn: Add HTT RxDMA and RxOLE PPE message
Add the DP HTT RxDMA and RxOLE data types and their
respective configuration APIs.

Change-Id: I4ce423a31eab84764666b7d0f11815f4895898af
CRs-Fixed: 3147720
2022-03-15 00:11:10 -07:00
Prakash Manjunathappa
61178a761e qcacmn: Make num REOs and rx_threads depend on dp_reo_rings_map
Make 1:1 dependency on num REOs and rx_thread. Keep num rx_thread
dependent on rx REO rings, 1 rx_thread for each rx REO ring.
Controlled via INI dp_reo_rings_map.

Change-Id: I7c199226cfa3f173ea328d71075816b8eb9ba91f
CRs-Fixed: 3048260
2022-03-14 22:31:21 -07:00
Pavankumar Nandeshwar
fbf1e82c6b qcacmn: Call dp_tx_nbuf_unmap instead of directly calling unmap API
Call dp_tx_nbuf_unmap instead of directly calling
qdf_nbuf_unmap_nbytes_single

Change-Id: I4d28ccdc45d99b16cf9883742742ee7b36ba1022
CRs-Fixed: 3146931
2022-03-14 08:50:25 -07:00
Neha Bisht
3f4d0fccaa qcacmn: Enable the 4th Tx. completion ring
Set RBM mapping to send data on Tx comp ring4

Change-Id: I8643b8745286660a157d7f7ce027845e87a2b936
CRs-Fixed: 3123108
2022-03-14 03:11:26 -07:00
Amir Patel
a799953c57 qcacmn: Handle buffer continuation in RxMON
for a PPDU monitor status can be split across multiple status buffers,
If status buffer continuation is carried in next NAPI budget,
store ppdu status buffers to process in next reap context.

Change-Id: Id00646fa4edb55f3540e23ad327952bf0f5d9889
CRs-Fixed: 3147113
2022-03-11 10:35:10 -08:00
Karthik Kantamneni
842db6aafc qcacmn: Update TX HP only for last TSO segment
Currently HW TX queue HP value is updated for every TSO segment enqueue,
as a part of optimization update HP only for the last segment.

Change-Id: Ibe349a1e6f55932bf780e1f755f13841078a493f
CRs-Fixed: 3138142
2022-03-10 05:09:04 -08:00
Tallapragada Kalyan
edbfac7e2e qcacmn: prefetch nbuf data and nbuf fields for Beryllium
prefetch certain nbuf fields and nbuf data fields, this
will ensure these fields are in cacheline by the next
iteration of the rx processing loop.

CRs-Fixed: 3146589
Change-Id: I69fd9a7800c7e881cf6635f329343195d19735c5
2022-03-09 04:07:41 -08:00
Pavankumar Nandeshwar
649873d3a1 qcacmn: Decrement quota for all packets in rx process
Decrement quota and num_pending for all packets in
rx process

Change-Id: I296c7bc2590cc388ce24cc75455b62656434f2af
CRs-Fixed: 3137924
2022-03-08 21:03:53 -08:00
Vivek
ab4011fd69 qcacmn: Add call for SAWF TX enqueue stats update
Add call for SAWF Tx stats enqueue update

CRs-Fixed: 3146113
Change-Id: I461d6d4fc03541d4b8fffec48264197c5ab1c97d
2022-03-08 05:37:58 -08:00
Subrat Dash
20b758944f qcacmn: Decouple FEATURE_PERPKT_INFO from MESH_MODE_SUPPORT
The per packet info feature can be enbaled to support enhanced
stats independent of mesh mode.

Change-Id: I852e7a958c520901b6f418d30deb53fa2f68fb68
CRs-Fixed: 3079000
2022-03-08 05:37:52 -08:00
Vivek
f8beed3fc7 qcacmn: Change search type to HAL_TX_ADDR_INDEX_SEARCH for sawf
Firmware expects search type to be 1 in
per packet path when sawf is enabled.

Change-Id: I6d7e5cae9b46f5a15eb0a53eefb9534ccb36ef64
CRs-Fixed: 3138558
2022-03-07 06:23:06 -08:00
Amir Patel
b37c8d9550 qcacmn: Handle empty, flush and truncated ppdu in RxMON
In case of empty HW descriptor, sw cookie is not valid.
Instead, HW reports ppdu_drop_cnt, mpdu_drop_cnt and
tlv_drop_cnt.
Do not process sw desc, if it's empty HW desc indication.

In case of flush and trucanted PPDU, status buffer need to be discard,
added handling for same.

Change-Id: I1219f71645072bb9e0e80ff271fa354f305c7961
CRs-Fixed: 3144525
2022-03-07 02:16:44 -08:00
Nandha Kishore Easwaran
758039d43d qcacmn: Legacy interrupt changes in Datapath
Add Legacy interrupt changes for QCN9224 target. Added code to calculate
hif group for DP interrupts and initialize legacy interrupts for the same.

Change-Id: I1b2f81905d3ce840fea172b13cbd192f041913d4
CRs-Fixed: 3139986
2022-03-03 17:36:53 -08:00
Jia Ding
d40b388d2f qcacmn: Mark first packet after wow wakeup
Add feature support to tag first packet that wakes up HOST from WoW.

rx_pkt_tlv.rx_msdu_end.reserved_1a field is used by TARGET to meet
such request.

Change-Id: I3d37e13e8cff49bc4f622d3070a19e4c4be56417
CRs-Fixed: 3137621
2022-03-03 07:22:05 -08:00
aloksing
7148dfedf8 qcacmn: Handle enhanced stats from Rx monitor path in Waikiki
Update enhanced stats from Rx monitor path in Waikiki.
Populate mpdu_retry_cnt, sw_peer_id, mpdu_ok_byte_cnt and
mdpu_err_byte_cnt from PPDU_END_USER_STATS TLV.
Fix KW issue.

Change-Id: I055ff84f6304ba71b09a9a75b8420183ab6e9d8a
CRs-Fixed: 3134900
2022-03-03 04:56:34 -08:00
Sai Rupesh Chevuru
9e4a8f0f21 qcacmn: Enabling TX FW metadata V2
As part of TX FW metadata V2 global sequence number based
and SVC ID based support added.

Change-Id: Iefee2c47ecbebf6edfec9a687ef67e0e270bbf06
CRs-Fixed: 3136931
2022-03-03 03:38:24 -08:00
Amir Patel
193246d3d3 qcacmn: Add core Rx monitor processing
Add core Rx monitor processing

CRs-Fixed: 3074352
Change-Id: I984fff721d671de6f62d6d9e6e13bd80c543ea8e
2022-03-03 03:38:18 -08:00
Amir Patel
f78b0ccc9c qcacmn: Add workqueue infrastructure for Rx monitor processing
Add workqueue infrastructure for Rx monitor processing

CRs-Fixed: 3074291
Change-Id: I9b898c0101bf3e294e06cd2d491a0eecb47ec765
2022-03-03 03:38:12 -08:00
Amir Patel
f17d789fa6 qcacmn: Add Waikiki monitor HAL processing
Add Waikiki monitor HAL processing

CRs-Fixed: 3073467
Change-Id: I2b1768b827f34785effed6c076a099628870e2a5
2022-03-03 03:38:05 -08:00
aloksing
482fba652b qcacmn: Increment pkt type for WKK
Define DOT11_BE as per Rx tlv
Increment pkt type for WKK

CRs-Fixed: 3121279
Change-Id: Id4bf93e5dcda08cc7fccfe3f8f06b00e5b29d4e3
2022-03-03 03:37:57 -08:00
Chaithanya Garrepalli
52352f5bda qcacmn: reset is_lro_hash_configured in pdev init
Reset pdev->is_lro_hash_configured flag to default
in dp_pdev_init.

Change-Id: If4064cbf5d8f76180eb9f6ba4d7fb278418dfc67
CRs-Fixed: 3141090
2022-03-03 02:11:24 -08:00
Neha Bisht
229317b922 qcacmn: Avoid intrabss check in Tx NAWDS path
Intrabss check for NAWDS was added as a temporary fix to resolve the
issue of selfbridge enteries present in AST table. The actual reason
is loopback pkt received with one's own bridge mac. To avoid this, add
a check for not sending out any packet with an invalid peer id in the
ast table.

Change-Id: Ia4c520bcc8b7077f0b484a0bc40c4d26db77c3f4
CRs-Fixed: 3135142
2022-03-03 02:11:13 -08:00
aloksing
97c1a168a5 qcacmn: changes for pdev stats
aggregate newly added 11BE specific stats for pdev

Change-Id: I3f25a4510b0dd60a4105befb8311f10cd6ef2ab0
CRs-Fixed: 3120318
2022-03-02 04:19:34 -08:00
Subrat Mishra
bd3eefcabd qcacmn: Update missing TX RX DP stats for pdev
Update missing TX RX Data Path stats for pdev in pdev aggregation
function.

Change-Id: I6f6311f66b6eb9271015d0debb8d1d9ccce62881
CRs-Fixed: 3133098
2022-03-02 04:19:28 -08:00
Varsha Mishra
0d2ec58510 qcacmn: Fill metadata for sawf feature
Fill metadata for transmission in lithium and berrylium
when sawf is enabled.

Change-Id: Icc76ca7b8310c21a98e7f01984d4901afba0526c
CRs-Fixed: 3138558
2022-03-02 01:28:33 -08:00
Arunpandi K
ec3bfd9dc9 qcacmn: Adding validation to check monitor rings
There is a possible race condition that target_start can be
called during load unload leading to htt_srng_setup being
called before monitor srngs are initialized. This check will
prevent the srng_setup_call from soc_start. The rings will
subsequently be initialized when monitor modle is loaded.

Change-Id: Ie697b45425e38e6d709b7466bb495a20bef4f820
CRs-Fixed: 3125255
2022-03-01 23:00:09 -08:00
Subrat Dash
b657bc4223 qcacmn: Bypass cds to create AST entry for WDS station
The qcacld driver does not register ol_if_ops callbacks
to handle wds AST request.

Call target if APIs directly to add, delete, and update
the AST entries for the WDS stations.

Change-Id: Ib4d5e1fdd6598e3390dbd2be0f24a72ccf01f202
CRs-Fixed: 3133839
2022-03-01 14:55:35 -08:00
Namita Nair
63b2260b64 qcacmn: Make calls to RX-TLV fns as static inline
Calls to Rx-tlv functions,in per packet path and called from arch
specific code,are made static inline instead of hal_soc->ops
function calls.This will improve speed by avoiding the function
call overhead.

Change-Id: I1fd4f0a416b71b4ed460852cb6da2f1d7434f2b4
CRs-Fixed: 3130314
2022-03-01 12:53:52 -08:00
Basamma Yakkanahalli
831a3ce7d5 qcacmn: Drop undecoded frames err mask not configured
1. Drop the received undecoded frame if error code
   abort reason not matched with configured error mask.
2. Reset phy error mask during undecoded capture mode reset.

Change-Id: I162ac1b60ceb5a4b5a87ff2d2186f2e67815f580
CRs-Fixed: 3134562
2022-03-01 07:07:38 -08:00
Basamma Yakkanahalli
70f4513196 qcacmn: Add support for undecoded frame error stats
Display phyrx aborted undecoded frame count and the aborted
reason statistics as part of pdev rx mon stats.

Change-Id: Ia86074e62af3179855734b47801715abd1899fe1
CRs-Fixed: 3123540
2022-03-01 07:07:33 -08:00
nobelj
f0064e8e52 qcacmn: Waikiki tx monitor packet construction
Added function to construct packet and send to stack
after parsing.

Change-Id: I4621eb24840253db261aea63079e27f744f92698
CRs-Fixed: 3115608
2022-03-01 05:39:37 -08:00
nobelj
dffdb7c215 qcacmn: Add support to send tx monitor packet to stack
Add support,
1. Deferred tx monitor processing
2. update radiotap headers and
3. skeleton flow for tx monitor to send each mpdu per user to
stack.

Change-Id: I0809a2fe06a9dc001f6da20a5c4a689244bf9a85
CRs-Fixed: 3115608
2022-03-01 05:39:31 -08:00
Pavankumar Nandeshwar
223693e614 qcacmn: Handle nawds case of intra-bss forwarding
Handle nawds case of intra-bss forwarding of
multicast packets on Beryllium.

Change-Id: I05ec4d937b4b97aa2c9fb325fb2b6a197968ea2a
CRs-Fixed: 3103402
2022-03-01 00:14:42 -08:00
Amit Mehta
8aa367acfa qcacmn: Print ring information in htt srng init and cfg
As part of debug enhancement Print ring information in
htt srng init and htt srng cfg

Change-Id: I59a7831b6ded1028b3a8f246656e982ae7de5b86
CRs-Fixed: 3133836
2022-02-28 17:44:15 -08:00
Harsh Kumar Bijlani
caf5400575 qcacmn: Changes to enable and disable enhanced stats for Waikiki
Changes to enable and disable enhanced stats for Waikiki

Change-Id: I6e3a747f31abda9cfcefec3156327295412088b5
CRs-Fixed: 3138098
2022-02-28 17:44:09 -08:00
Harsh Kumar Bijlani
c1b9ccd925 qcacmn: Update enhanced Tx stats from Tx HTT PPDU completion path
Update enhanced Tx stats from Tx HTT PPDU completion path in WKK.
Define and use function pointers for architecture specific
functionality.

Change-Id: I4ba443647dbd81c83e899c0f88c5d9a4cc695e14
CRs-Fixed: 3132255
2022-02-28 17:44:03 -08:00
Pavankumar Nandeshwar
e57b5cfe7b qcacmn: Remove tags from the tlvs and support NO_RX_PKT_HDR_TLV
Remove the tags from the tlvs and support NO_RX_PKT_HDR_TLV
for Beryllium

Change-Id: Ie759582b67a1ae78cddc0402916f9a39e0023009
CRs-Fixed: 3137156
2022-02-28 16:12:32 -08:00
Harsh Kumar Bijlani
bd7a797898 qcacmn: Add flag in dp_mon_soc_be to avoid double deinit
Add flag in dp_mon_soc_be to avoid double deinit

Change-Id: Ie3f5f9fe3880311b169504c8f4c9861efcf1c4d3
CRs-Fixed: 3138172
2022-02-28 16:12:27 -08:00
Harsh Kumar Bijlani
a8a078e59a qcacmn: Define macro for maximum mcs value for 11AX and 11BE
Define macro for maximum mcs values for 11AX and 11BE.
Also move bandwidth enums to cdp header file.

Change-Id: Ic24b9fa459b160702fa35162955c6bcdf678c97f
CRs-Fixed: 3134964
2022-02-28 11:38:54 -08:00
Harsh Kumar Bijlani
ff71f151fc qcacmn: Update vdev rate stats when user requests for vdev stats
Rate statistics are updated at both peer and vdev level in Tx HTT
and Rx monitor path.

As per peer optimization changes, macro DP_UPDATE_EXTD_STATS is used
for aggregation of extended stats and this macro is used for both peer
and vdev stats query.
With this approach, when user requests for vdev stats, then rate stats
for vdev are updated with the rate values of the last peer present in
peer list of vdev and this results in wrong output.

In order to fix this, add an API to update the rate stats for vdev
separately.

Change-Id: I546a130e84f7fd577b80ace24e1dbb71000c0698
CRs-Fixed: 3132195
2022-02-28 11:33:48 -08:00
Neelansh Mittal
2c06a656a5 qcacmn: Add support for PPE
Add the PPE related DP APIs

Change-Id: I25aeff73fef21a7a8ad0f0e6e8aa6c537a233029
CRs-Fixed: 3045340
2022-02-28 11:33:37 -08:00
Basamma Yakkanahalli
bfde0ca01b qcacmn: Fix bkp on monitor dest ring when disable undecoded capture
During undecoded mode capture reset expected to reset
only phy error filter flags. But disabled monitor mode
capture filters as well. This resulted a backpressure
in monitor mode destination ring.
Added an appropriate check to disable only phy error
filter without disturbing monitor mode filter setting.

Change-Id: If3ef8e9f41f32dff30773aeb939256920c515800
CRs-Fixed: 3137636
2022-02-28 10:19:54 -08:00
Harsh Kumar Bijlani
c4f3ae13ee qcacmn: Define API to get the link peer_id using peer_id and lmac_id
Define API to get the link peer_id using peer_id and lmac_id.
This is required in Rx monitor path for stats updation as Rx
monitor provides MLD peer id, whereas stats updation is done
for link peer.

Change-Id: Ib1c9e2729ccaea2e28272b7d175b3ef7fba9fd7a
CRs-Fixed: 3133003
2022-02-28 10:19:49 -08:00