Revīziju grafs

203 Revīzijas

Autors SHA1 Ziņojums Datums
Sai Rupesh Chevuru
12c8b0d0be qcacmn: compact tlv support for QCN9224
Adding compact tlv support for QCN9224, As part of this change
Rx tlv size will reduce from 384 bytes to 128 bytes.

Change-Id: I3f42a781e42b2e696a5b25d9c5f333c8cc83b7fe
CRs-Fixed: 3274152
2022-10-14 23:42:02 -07:00
Sai Rupesh Chevuru
431514912a qcacmn: SG support in RX path
Process the sg frames received in RX path.

Change-Id: Ia2d83c75c46f804599ca8fda4668c43ee508d59e
CRs-Fixed: 3303055
2022-10-14 08:31:27 -07:00
Jeff Johnson
ebfbc0d927 qcacmn: dp: Fix misspellings
Fix misspellings in dp/...

Change-Id: I6ef7a19ee03104ae38a8a77e229b90aa80329592
CRs-Fixed: 3304682
2022-10-07 22:42:22 -07:00
Devender Kumar
a85ce1152c qcacmn: Debug framework for SMMU buffer tracker for IPA offload
Debug framework for tracking the SMMU mapping and unmapping of
skb buffer when IPA offload is enable and IPA_SMMU_NBUF_TRACKER
is define.

CRs-Fixed: 3255423
change-Id: I8966097945b33cb866f4642b98b3d1a4beabfad7
2022-09-13 03:24:34 -07:00
Chaithanya Garrepalli
daed8f2cc5 qcacmn: Changes for Rx fast flag
Change to avoid processing of extended features
based of Fast RX flag

Also add changes to enable or disable this flag
based on feature settings

Change-Id: I8064780a271f8bdcf396bb9e2e2c14998f195535
CRs-Fixed: 3268842
2022-09-08 12:24:27 -07:00
Pavankumar Nandeshwar
67de6bcbfd qcacmn: Handle Umac post reset at host
Handle Umac post reset and post reset complete
events from firmware.

Change-Id: I76ac1b96f01f026535d31edcbd245b3643ecf6ee
CRs-Fixed: 3267222
2022-08-21 00:37:46 -07:00
Venkateswara Naralasetty
4fc084d9c6 qcacmn: change pool id validation for mon status ring process
Pool id validation should not be against MAX_PDEV_CNT because pool id
1 is valid in case of monitor status ring process. Hence, added a new
API dp_get_rx_mon_status_desc_from_cookie() which validate the pool id
against NUM_RXDMA_RINGS_PER_PDEV to get rx_desc from rx_desc_status pool.

Change-Id: I20baf8c667c1983eff08a204afe3736708d844d1
CRs-Fixed: 3262544
2022-08-12 04:28:18 -07:00
Yu Tian
ed3ba3ca44 qcacmn: Replenish more RX buffers when refill ring runs low
When nbuf allocation failure happens, there is no retry scheme.
So RX buffers in refill ring may shrink and not got enlarged.
This change is aimed to replenish more RX buffers when watermark
is less than critical low threshold.

Change-Id: I201b9e252ba08ba1bff47e0b5ec819a45f1b1ddf
CRs-Fixed: 3245915
2022-08-11 12:43:23 -07:00
Tallapragada Kalyan
f7a1c7e0c7 qcacmn: Add HW, SW and nbuf prefetch support in Berryllium
Add HW, SW and nbuf prefetch support in Berryllium, this will
ensure we have prefetched the HW desc, SW desc and nbuf by
the time we are in the 3rd iteration of the dp_rx_be_process
first loop.

CRs-Fixed: 3218647
Change-Id: I27d371c5d1c9a37d61e4fc00d5eb03609fad589c
2022-08-11 09:47:27 -07:00
Jinwei Chen
9b323ded29 qcacmn: Support RX T-put simulation for KIWI
Duplicate X times of RX packet before delivering to stack, if OTA
RX T-put is 100 Mbps and try to simulate 200 Mbps RX T-put,
duplicate extra 1 time RX packets, this is aimed to test
driver/stack RX capability.

Change-Id: Iaf4db05d0ec0e0cda5fac19fa63b9d3133270847
CRs-Fixed: 3132743
2022-07-24 01:02:01 -07:00
Venkateswara Naralasetty
333ae2374e qcacmn: fix invalid rx desc pool access
Only one rx desc pool is used for MCL for Rx data. Pool_id from
the SW cookie is used to get the rx desc from the corresponding
rx desc pool. Checking pool_id against MAX_RXDESC_POOLS may lead
to kernel NULL pointer dereference Since, pool_id other than 0
is not valid for MCL.

Fix this issue by checking pool_id against MAX_PDEV_CNT
to get the rx desc from rx desc pool.

Change-Id: Ib9b152ac2cfe2c16d388aca9e22440fbcdf7fe6c
CRs-Fixed: 3244453
2022-07-23 21:04:56 -07:00
jinbliu
a8f2b81354 qcacmn: Skip special frame rate info update
To avoid unmeaningful rate fluctuation, when report
rx linkspeed to upper layer, exclude special frames:
arp/ssdp/dhcp/eapol/ipv6 NA/NS/DHCPV6 in low rate.

Change-Id: I4bc49a808a02b4bc8c687f70690922045d65e739
CRs-Fixed: 3198484
2022-07-15 13:35:11 -07:00
Devender Kumar
277054124d qcacmn: AST entry create and update support for IPA
To support WDS feature in IPA driver, WLAN needs
to update the ast entry for any new rx packet, and for
end-nodes connected via repeater to root.

CRs-Fixed: 3226348
Change-Id: I7383b12f18e7c70ec06499d66130667eca033131
2022-07-13 02:37:22 -07:00
Neha Bisht
87596da3e4 qcacmn: Avoid qdf framework for nbuf free in Tx. simple path
Avoid qdf framework for nbuf_free in Tx. simple path.

Change-Id: Ic0a82279586a16f07625fc78d3e07d1a134af3a4
CRs-Fixed: 3224285
2022-06-29 04:31:25 -07:00
Rakesh Pillai
4b31289715 qcacmn: Skip sanity of sw_cookie in RX error for KIWI
Currently the sw_cookie is validated in RX error path
using the pool_id logic, which is not valid for KIWI target.
Kiwi target has a different logic to assign rx sw_cookie, as
compared to other legacy chipsets.

Hence this sanity of sw_cookie fails always for RX error
packets on KIWI target, and these corresponding buffers are
never released/replenished back. Eventually as more RX error
packets are received, the device runs out of buffers in the
refill ring and induces a backpressure.

Hence disable this sanity check for sw_cookie in rx error
path for KIWI target.

Change-Id: I320fcb268c1fe24695daeb4677af6cc0cbc445ed
CRs-Fixed: 3228792
2022-06-25 03:03:37 -07:00
Karthik Kantamneni
b70014489c qcacmn: Avoid invalid Rx descriptor access in error path
There is possibility of receiving invalid SW cookie
which maps to invalid rx descriptor access, to avoid such
issues validate the SW cookie before using it for fetching
rx descriptor

Change-Id: Ib90a398865c5e0afedd5804615d6df6ad5ee77f6
CRs-Fixed: 3214570
2022-06-17 13:11:11 -07:00
Subrat Dash
ed329bd354 qcacmn: Avoid using smp_processor_id() when preemptible
Call trace is observed in the function dp_rx_per_core_stats_update()
with the following message.

"using smp_processor_id() in preemptible"

Use qdf_get_cpu() as it takes care for disabling preemption.

CRs-Fixed: 3203385
Change-Id: I9761bf707b5ee92c7e0bb698c2825c9369efd7d5
2022-06-11 06:56:47 -07:00
Chaithanya Garrepalli
d66a8a55bb qcacmn: Use common REO2SW rings for all SOCs of MLO
Use common REO2SW rings for the packets coming from
all chips of MLO

Change-Id: Icdfd3292d2fbf5e38c1d3b8ff4b30b18009a49f8
CRs-Fixed: 3208378
2022-06-07 19:27:03 -07:00
Adwait Nayak
94eec2edd6 qcacmn: Fix to process the RX_PPDU_END_STATUS_DONE TLV
RX_PPDU_END_STATUS_DONE TLV is not being processed, since Host
is not copying the last byte from the payload.
Add code to copy the full payload from status frag and process
it to the upper layer.

Change-Id: I51d03f5664b2944008936e3711f2ba74bcfde89c
CRs-Fixed: 3179137
2022-04-28 15:46:24 -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
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
Harsh Kumar Bijlani
93cd9e0af8 qcacmn: Update stats in dp_txrx_peer in per packet path
Update stats in dp_txrx_peer in per packet Tx completion and
Rx path.

Change-Id: I807cb5ca9fe2aeeabdd4cb95d6e30cb9781560f4
CRs-Fixed: 3092123
2022-02-09 11:54:46 -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
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
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
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
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
Yeshwanth Sriram Guntuka
de814c9b16 qcacmn: Trace del reg write, ce tasklet latency, tx, and rx pkts
Use the tracepoints to trace delayed register write, ce
tasklet scheduling latency, tx, and rx packets.

Change-Id: I63a89276177a9d0466dcb0c831eeb8e938a2bf79
CRs-Fixed: 3081870
2021-12-14 21:22:49 -08:00
Adwait Nayak
c3f8294cc4 qcacmn: FR65980: Process log contents to pktlog buffers
This change will enable packet logging for the fragments
from RX monitor status ring and send it to the pktlog module
for post processing through WDI event.

Change-Id: I283a20e7d0fa1f9b88223a989beda529beff6718
CRs-Fixed: 3074184
2021-11-26 10:13:26 -08:00
Devender Kumar
30482aa5c4 qcacmn: Change buffer replenishment model for SDX+Pine
For IPQ products, there is 1 refill ring which is of hardware type
and host replenishes the buffers onto this ring so that hardware can
use these buffers for Rx.

In IPA offload mode, the buffer replenishment model is different from
the one mentioned above. There are 3 refill rings, out of which,
2 are software refill rings (1 for host and 1 for IPA), and last ring
is hardware ring given to FW.
Ring given to IPA is to refill the buffers after processing the
regular Rx packets and ring given to host is to refill the buffers
after processing of exception packets. Since there are 2 entities to
refill the buffers, the hardware ring given to FW multiplexes these 2
software rings and provides the buffers to hardware.

Make changes to follow above replenishment model for SDX+Pine
integration.

Change-Id: I0d9e4ec811a3023a258e0a6b9ee22ccdffcebafa
CRs-Fixed: 3049633
2021-11-19 03:22:08 -08:00
Jinwei Chen
7e267e17b1 qcacmn: support MLO intra-bss forwarding
Support MLO intra-bss forwarding

Change-Id: I7ffd54bbead3e56c7811e88aef935867b0ee4fd6
CRs-Fixed: 3066899
2021-11-10 03:56:09 -08:00
Pavankumar Nandeshwar
146d67af95 qcacmn: Avoid using ast_entry in intra_bss handling
Avoid using ast_entry in intra_bss handling, instead use
da_peer_id directly from the msdu_metadata

Change-Id: Ic586f297e8e393504d7d399cff7a67c3035aa11f
2021-10-29 07:25:10 -07:00
Rakesh Pillai
57e2c01e5e qcacmn: Peer id parsing changes for beryllium
Take care of the MLO peer bit indication to be
concatenated with peer_id to access the peer map
object.

Change-Id: Ia603a728101e83829a8906d1b847f42389e78ca6
CRs-Fixed: 3039326
2021-10-15 13:13:27 -07:00
Rakesh Pillai
32046ad850 qcacmn: Vdev attach changes for MLO
Add mld mac address info during datapath
vdev attach.

Change-Id: I0ea22025d19be82be0c56809871e8513c3ce7962
CRs-Fixed: 3039326
2021-10-15 13:13:17 -07:00
Chaithanya Garrepalli
3c3e5709ac qcacmn: Increse num TX rings for QCN9224
This change includes below
1) Changes needed to increase Tx rings to 4
2) Use WBM2SW4 ring for rx error in QCN9224
3) memset srng at alloc to avoid populating RBM_id
in per packet path and enable implicit RBM

Change-Id: Icbd5ac2378273b8f3c6adc41c611e29551fff22f
2021-10-13 13:12:19 -07:00
Pavankumar Nandeshwar
26c6cd1397 qcacmn: Enable intra-bss in Waikiki
In Beryllium the HW does the ast lookup and match
and sets the intra-bss bit in the msdu_desc_info
structure of reo_destination ring and WBM Rx release ring.

So, change the Beryllium code to make use of this
hardware assistance for intra-bss.

Change-Id: Ic7c89efc741fefe35603082309204fbe3c9a97c7
2021-09-24 18:28:07 -07:00
Vivek
307546f6f9 qcacmn: Add dependent macros for dp_rx_update_protocol_tag
The function dp_rx_update_protocol_tag is called from
dp_rx_mon_update_protocol_flow_tag which is enabled when either
WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG or WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
is enabled.

However the prototype and definition is enabled only when
WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG is enabled.

So adding the dependent macro to the prototype and definition
of dp_rx_update_protocol_tag

Change-Id: Ic1120b77d527dc8ceeb981bb6516816e4658bdcb
CRs-Fixed: 3022319
2021-09-14 02:33:30 -07:00
Shiva Sankar Gajula
dcbdb29d04 qcacmn: Register separate function pointer to receive EAPOL frames
Add changes to register separate function pointer to receive EAPOL
frames instead of using regular RX path and adding export symbol
for __qdf_nbuf_data_get_eapol_subtype() to access in it multiple
modules

Change-Id: Id05b982d31a7e008536d10dd5281e88cceba96db
2021-09-07 07:59:06 -07:00
aloksing
c60b9619a3 qcacmn: Conditionally compile monitor related features and issue fixes
PATCH[7/7]:
This patch consists following changes:
 -Conditionally compile all monitor destination ring related code
  Macro used QCA_MONITOR_PKT_SUPPORT
 -Add QCA_ENHANCED_STATS_SUPPORT macro to conditionally compile
  enhanced stats support
 -Use QCA_MCOPY_SUPPORT and QCA_TX_CAPTURE_SUPPORT macros
  to conditionally compile MCOPY and Tx capture features
  respectively
 -Use QCN_IE macro to conditionally compile BPR
  feature
 -Use QCA_ADVANCE_MON_FILTER_SUPPORT macro to conditionally
  compile advance monitor filter feature
 -Fix vdev attach issue for special and smart monitor vap
 -Fix status ring initialization issue.

Change-Id: I0deaa28a9a54bf34b0f41e6dd510fdd8d4992db2
CRs-Fixed: 2983780
2021-07-30 21:51:26 -07:00
aloksing
53fe7000ba qcacmn: Move monitor related fields from soc/pdev to mon_soc/mon_pdev
PATCH[6/7]:
This patch consists following changes:
 -Move monitor related pdev variables to struct dp_mon_pdev
 -Move monitor relted soc variables to struct dp_mon_soc
 -Move cookie to monitor link desc va to monitor file
 -Add APIs to access monitor related variables
 -Add dummy APIs to build without monitor support.

Change-Id: I032a480b1383d061f984cee3ba6b10ac7a0ff350
CRs-Fixed: 2983781
2021-07-30 21:51:21 -07:00
Rakesh Pillai
5605d45923 qcacmn: Add near-full irq processing handler for RX ring
Add the handler to process the near-full condition
on the rx ring.

Change-Id: I426480386c4716702f8410ed87c70160decaa03f
CRs-Fixed: 2965081
2021-06-30 13:48:07 -07:00
Jinwei Chen
4083155141 qcacmn: Add support for HW cookie conversion
Support HW cookie conversion for BE platform.

Change-Id: I39058fbf256266557f5e734ba376db4db0731b24
CRs-Fixed: 2929533
2021-06-23 23:32:49 -07:00
Varsha Mishra
91662e68f5 qcacmn: Drop packets in wbm release ring on cce match
When cce rule gets matched, drop packets in wbm error ring.

Change-Id: Ie9ca88492e3f34156a33747a9043e13c6cde66c0
2021-06-21 07:03:36 -07:00
nobelj
25acb759bf qcacmn: Fixes to enable LI & BE in a build
Changes to build Lithium and Beryllium together.
This is needed for WIN

Change-Id: I74c86803ea99fb17d1f73e8b9c4e7cf59751a707
2021-06-07 01:51:15 -07:00
Manjunathappa Prakash
477928661c qcacmn: Core DP RX path changes for WCN7850
Implement core DP rx processing to functions in to corresponding
architecture specific be/li rx files. Keep common utility functions
in DP common files.

Change-Id: I40083e10772fd2b6ce2f1fa9e197f2ad92d0522a
CRs-Fixed: 2891021
2021-06-07 01:51:15 -07:00
Yeshwanth Sriram Guntuka
69e696c423 qcacmn: Reset the inv bit in ring desc cookie for jumbo pkts
When a msdu scattered across multiple nbufs is received
in REO2SW ring and the remaining nbufs are not yet
available in the ring, loop in dp_rx_process is exited
without resetting the invalid bit in the ring desc cookie.
This will result in an incorrect assertion failure when
the same entry is processed the next time.

Fix is to reset the invalid bit in ring desc cookie
when the loop is exited in the above msdu scattered
scenario.

Change-Id: Ie5cfa1fb8ea1db4b7a0a4837545ecbfdfbb8719a
CRs-Fixed: 2916296
2021-04-08 02:50:56 -07:00
Karthik Kantamneni
1759c5d6cb qcacmn: Rate limit excessive logs in WBM error path
Rate limit excessive logging prints in WBM error path

Change-Id: Ifb69959b78740bf4a0fca7b7611a2da0ef740413
CRs-Fixed: 2908240
2021-04-06 18:43:06 -07:00
Subrat Dash
ecb559ab6f qcacmn: Add check to discard multicast echo packets
The bridge forwards the multicast packets to all the
interfaces attached the bridge.

When the STA network interface receives such packets
from bridge and send it to the AP, it is echoed back
from the BSS.

These packets are not intended for the bridge as it
will lead to looping.

Add a check to detect and drop such packets when
received back from the BSS.

Refactor dp_rx_mcast_echo_check function to fix
compilation errors from the above change.

CRs-Fixed: 2894272
Change-Id: I3f9e92c3598af11d3ff4e6b9b8afbc4110a926fc
2021-03-18 07:43:13 -07:00