提交图

3096 次代码提交

作者 SHA1 备注 提交日期
Amit Mehta
68b9b355b5 qcacmn: Fix monitor status buffer double free issue
currently rx_mon_ring and REO are part of the same
interrupt group, due to which in case of mission
mode when IRQ is received from REO, even the lmac
rings are processed in the same context.
This results in dp_mon_reap_timer_handler and
dp_process_lmac_rings calling dp_rx_mon_status_process_tlv()
in different context and access global list at the same time,
which may lead to skb double free issue.

To fix the issue if current mode is not monitor mode
do not set rx_mon_ring_mask MSI interrupt mask.

Change-Id: Icc64455824f919e17d3daa741be1cbdafd6fe88f
CRs-Fixed: 3274531
2022-08-29 10:00:54 -07:00
Jeff Johnson
88c15dadbb qcacmn: Fix misspelling "recevied"
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."

Change-Id: Ibd7f4a136541be8aa98f5bee4db7f75af0271f53
CRs-Fixed: 3273526
2022-08-28 19:08:26 -07:00
Rakesh Pillai
3a7048480c qcacmn: Add reo_mismatch stats for FISA path
Add reo_mismatch stats for FISA path.

Change-Id: I954c9604b98cfb0b08be09ef0bf3e2235f47a3db
CRs-Fixed: 3277338
2022-08-27 22:57:48 -07:00
Nandha Kishore Easwaran
68ef6e5dff qcacmn: Fix ref leak when monitor peer is null
Free the reference when peer is not null and monitor peer
is null.

Change-Id: I81875fbdf3918346b8c4f297f61fc241e7888fd4
CRs-Fixed: 3277552
2022-08-27 13:48:42 -07:00
Pavankumar Nandeshwar
6eebf44a9a qcacmn: Fix reo_remap_config call in umac reset case
Fix reo_remap_config call in umac reset case by
using arch specific callback

Change-Id: I3edeb2f1ec5cdbc7e9cba6f624d699df30d347ba
CRs-Fixed: 3275169
2022-08-26 07:32:01 -07:00
Pavankumar Nandeshwar
2f3e28c33c qcacmn: Configure registers for reo2ppe
Configure REO destination remap register and REO DST_INFO
register fot REO2PPE ring

Change-Id: I81cce807cde3babcfb265675ec758d33fc10214f
CRs-Fixed: 3274303
2022-08-26 07:31:54 -07:00
Devender Kumar
13c6048f72 qcacmn: Fix for Unicast packet flow from WDS node in Intrabss
When EasyMesh feature is enabled, ARP replies from WDS node are
getting dropped by the AP, as there is no proper way to find the
DA_PEER with given WDS mac address.
Fix is to get the peer mac address for wds node based on ast entry.

CRs-Fixed: 3265158
Change-Id: I5ea890ce37dfde89d067b471417ba7aeb8c5d6f5
2022-08-24 17:22:30 -07:00
Sajini R
51cde26ad5 qcacmn: Initial changes in dp for ipq5332 target compilation
Added device ID and target type checks in dp for ipq5332 traget
compilation.

CRs-Fixed: 3273820
Change-Id: I03a9bc8f9a885587d7324f7907d26bfc77cfeba7
2022-08-24 07:26:03 -07:00
Pavankumar Nandeshwar
9495c52c2e qcacmn: Update tx_fast callback with dp_tx_drop
Update tx_fast callback with dp_tx_drop in
Umac pre-reset handler to pause the tx.

Change-Id: I39a74179a3deb8fba34acb7149046471e3f4797b
CRs-Fixed: 3267249
2022-08-23 00:49:30 -07:00
Chaithanya Garrepalli
adbb77002a qcacmn: Use different Rx ring mask for ML and non-ML peers
Add framework to use different RX hash values and ring masks
for ML and non-ML peers

Change-Id: I098cb50b8873eb137ce096011d01a5c21aaf854f
CRs-Fixed: 3269916
2022-08-22 14:56:26 -07:00
Sai Rupesh Chevuru
383edf35d0 qcacmn: Map and umap MLO DP peer to partner soc
Maping and unmaping of the MLO DP peer to the partner soc
will be initialized based on architecture.
dp_mlo_partner_chips_map
dp_mlo_partner_chips_unmap

Change-Id: I918f6d552acd9d64086abf4c38f913348e13c381
CRs-Fixed: 3267904
2022-08-22 11:30:40 -07:00
Madhavan Ganesan
af8acc5430 qcacmn: Check peer_monitor is valid before processing
Check peer_monitor is valid before processing.
This is required for new boot flow where vap creation starts
before monitor ko insmod.
This check makes sure that monitor_peer is valid which indirectly
means that monitor ko is insmoded.

Change-Id: Ifd132cd6717e3537dd1aa7b7b37e95012d7fe8fc
CRs-Fixed: 3272747
2022-08-22 11:30:32 -07:00
Tallapragada Kalyan
3203b7bf92 qcacmn: pipeline prefetch of tx comp ring for BE
pipeline prefetch of tx comp ring for BE

CRs-Fixed: 3272534
Change-Id: Ib1091b5163e75b56be08fbbf87c26b1c77638b76
2022-08-22 03:25:41 -07:00
Pavankumar Nandeshwar
38d078b7a0 qcacmn: Restore Umac registers for hard reset
Restore Umac registers in case of hard umac reset

Change-Id: I7718a97d8351558c58e804e9be0b43b09c2a1ca0
CRs-Fixed: 3267247
2022-08-21 00:38:07 -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
Tallapragada Kalyan
1b1b3adbea qcacmn: fast TX API and registration
This is a new FAST TX API which avoids various checks.
This API will be called when SFE tags a pkt as fast_forwarded
and vap's fast_tx flag is set.

avoid additional re-checks in the wifi TX function

CRs-Fixed: 3218650
Change-Id: Iba17ede59652a1ff2af553f57de21dc58946298e
2022-08-19 16:15:21 -07:00
Amir Patel
1885bbbc5e qcacmn: Fix pointer typecast issue
Fix pointer typecast issue in monitor

Change-Id: I45579fce49a7e2afacfc5462f208c01280c677d8
CRs-Fixed: 3257285
2022-08-18 23:08:25 -07:00
Amrit
cbc05e67fe qcacmn: Allocate memory according to num_users in rx path
Allocating memory according to number of users in rx path

Change-Id: I02ced1772ed04e67dfba5beb87737fcd874fd6da
CRs-Fixed: 3264995
2022-08-18 02:11:59 -07:00
Jeevan Kukkalli
b207f0b859 qcacmn: Add space for PPDU id TLV in headroom
Aad additional space for PPDU id TLV in headroom
while forming monitor mpdu.

Change-Id: Ie033ee6dd196838aa63cc456794b55fd9b780531
CRs-Fixed: 3237248
2022-08-17 15:35:35 -07:00
[B
1a321fabfd qcacmn: Error Handling in Event Based Mechanism
Error Handling in Event Based Mechanism to reduce
delay by removing sleep while getting response
from firmware.

Change-Id: I9ee8e03b0d0ebdaae150417fb0fb0531e5bf4a86
CRs-Fixed: 3268808
2022-08-17 15:35:28 -07:00
Ripan Deuri
28f25ca052 qcacmn: Support HW Tx delay stat
Use WLAN_CONFIG_TX_DELAY to enable HW Tx delay for both
SAWF and non-SAWF stats.

Change-Id: I6db7d386c0e3654f53398dcba1db7c5568544b0c
CRs-Fixed: 3262425
2022-08-17 04:58:14 -07:00
Chaithanya Garrepalli
baa9ecbd3c qcacmn: update peer state assert for MLO peer
Update the peer state check for MLO peer as per
MLO state transistion

Change-Id: Ia57ab5fd95f90226f505cba6363a343e5e0b44e1
CRs-Fixed: 3266005
2022-08-16 10:47:17 -07:00
nakul kachhwaha
f9883deaec qcacmn: Add dp support for traffic end indication
Based on traffic end indication marked packet coming
from network stack, send indication packet to fw via
exception path to terminate ongoing SP.

Change-Id: Ia2be60d485be4b05665cf6b1684af9258417ffb1
CRs-Fixed: 3207392
2022-08-16 07:40:41 -07:00
Tallapragada Kalyan
bddee57d00 qcacmn: Access peer, vdev only if peer_id changes
Access peer, vdev only if peer_id in current pkt is
different from previous pkt.

CRs-Fixed: 3257844
Change-Id: If10356a01030511c7473112f67f3434d328d4586
2022-08-16 07:40:29 -07:00
Nandha Kishore Easwaran
9b81f6a195 qcacmn: Enable Subtype and PPDU filtering
Enable subtype filtering for all types of frames. Check the subtype
for all types of frames and drop the frames which are not requested.

Also enable PPDU level filtering by dropping the MPDUs after the first
MPDUs.

Change-Id: I94496ec278724a7023a79b50c2cd7a77b2707e74
CRs-Fixed: 3247309
2022-08-16 06:01:12 -07:00
Nandha Kishore Easwaran
0585386f57 qcacmn: Fix mpdu logging option in htt command
Fix the mpdu logging option in htt command so that msdu/mpdu
logging is correctly written into the register.

Change-Id: I98b8a1a78cc0cfae37e91e9e3e489ac54139ff75
CRs-Fixed: 3265015
2022-08-16 06:00:58 -07:00
Yu Tian
226e9258ba qcacmn: Add force break quota for REO error ring process
In some conditions REO error ring may have RX flood, but
there is no force break scheme for that ring process. This
leads to starvation of RX refill buffer ring and then FW
crashes due to no refill buffer. Change is aimed to force
break of ring processing and refill buffers in small batch
count.

Change-Id: I3c543ebb16bd1709e782be759c9063a356a96562
CRs-Fixed: 3262685
2022-08-14 21:58:06 -07:00
Tallapragada Kalyan
d5a9b008f4 qcacmn: initialize num_pending variable
initialize num_pending variable to avoid compilation issues

CRs-Fixed: 3266470
Change-Id: I877adca30d2f91d011c18a8a2ffc3e4c083f91ad
2022-08-12 22:47:05 -07:00
Jinwei Chen
2e15ede864 qcacmn: fix rx de-frag issue for aes_ccmp security
In function dp_rx_defrag_ccmp_decap(), it will remove the 8 bytes
ccmp header for each fragment, but later at the end of dp_rx_defrag(),
8 bytes ccmp header will be removed again, then actual 8 bytes packet
data will be lost, de-frag failed.

Do not remove ccmp header in dp_rx_defrag_ccmp_decap() as it is not
necessary.

Change-Id: Ibf7beca38e9979a3203d4de702716c8e24e435fe
CRs-Fixed: 3263872
2022-08-12 22:46:58 -07:00
aloksing
89d0469b44 qcacmn: Fix RCU issue due to infinite loop
Loop is continuing as chain index is getting assigned to zero inside loop.
Adding check for chain index to avoid infinite looping.

Change-Id: Ifff67c00b15d12195e5a3bf554de1529511c400f
CRs-Fixed: 3261913
2022-08-12 18:55:56 -07:00
Sai Rupesh Chevuru
086f192c0a qcacmn: Forward the igmp packet for intra bss processing
Forward the igmp packet for intra bss processing

Change-Id: Ie4838a00542e49e8d76503297332b99cf3e67563
CRs-Fixed: 3261921
2022-08-12 16:46:59 -07:00
Amir Patel
4720a30038 qcacmn: Optimize branch predictions in monitor path
Optimize branch predictions in monitor path

CRs-Fixed: 3265307
Change-Id: I7536a2fb94b350a678c123d7e0cfcd187816c96d
2022-08-12 13:49:05 -07:00
Debasis Das
73c7a4f2a3 qcacmn: Add support to calculate percentile delay-stats
Add support to calculate percentile of delay-bound
for for Tx-delay stats.

Change-Id: If386e0d1c5091f260aa4281adbd3debde4bf8446
CRs-Fixed: 3243170
2022-08-12 04:28:25 -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
Himanshu Batra
42809a7e56 qcacmn: Add fix to avoid out of bound access in monitor peer stats
Add fix to avoid out of bound access in monitor peer stats

Change-Id: I361a931803471d073a8120ee0d930ee3f042e0fc
CRs-Fixed: 3264994
2022-08-12 02:35:59 -07:00
jinbaoliu
d1a40c701e qcacmn: Driver provides rx rates info instead of FW
Driver is able to get rates info per MSDU, which can
exclude special frames like ARP, DHCP, etc. This change
is to refill the rates info parsing by rateflags from FW,
including legacy rate, MCS, NSS, BW, preamble, GI, etc.

Change-Id: I129d5f0dc48758d1a92ac0c3622c1761cdae8286
CRs-Fixed: 3255467
2022-08-12 02:35:46 -07:00
Pavankumar Nandeshwar
a839cac207 qcacmn: Datapath changes for umac prereset handling
Handle Umac prereset event from firmware.

Change-Id: I1d3d295468e97ebce5e7310055abc508e16e99b0
CRs-Fixed: 3174560
2022-08-11 15:23:13 -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
jinbaoliu
7c19bfc5eb qcacmn: Fix CSI Stats being not collecting in MLMR Mode
Features that rely on monitor status rings do not work when
num_rxdma_status_rings_per_pdev is assign to 1. This change
will fix this issue by removing this assignment statement.

Change-Id: Ic7b8b84be6fa9c34c15a86cb6ec5174cc512ddd9
CRs-Fixed: 3258392
2022-08-11 09:47:19 -07:00
Sai Rupesh Chevuru
ceccc982e3 qcacmn: Get the peer meta data from msdu end tlv
In QCN9224 fetch the peer meta data from the msdu end tlv
instead of MPDU start

Change-Id: Icd9420cd83e06abe5e54e9e05cc8cbf8d8312ae1
CRs-Fixed: 3245626
2022-08-10 01:18:45 -07:00
nobelj
653cfeb7b7 qcacmn: Add fix for response timestamp and others minor fixes
Added fix,
a. To populate response timestamp from phy timestamp.
b. Based on window type swap address1 and address2 to match the sniffer.
c. For VHT frames, increment 1 to the received nss value.

Change-Id: I68dffadb609d82e2ad2cf433fcee2a76b0be98e7
CRs-Fixed: 3235718
2022-08-09 08:19:03 -07:00
Tallapragada Kalyan
cea862a118 qcacmn: map tx ring to get_cpu instead of skb queue
skb queue is not always mapped to the proper CPU
hence it is good to map the ring_id to CPU through get_cpu
API.

Change-Id: I3bf76452cc1fcb2033ef1a8640c4dd31ecba61b3
CRs-Fixed: 3255144
2022-08-08 13:07:35 -07:00
Yu Tian
11df417c3b qcacmn: Add Link stats check before ring access directly
Throughput based RTPM logic of ring access may fail and
lead to NOC error in some corner cases. Change is aimed
to add additional link states check to prevent invalid SRNG
access.

Change-Id: I7e7edbadfd21b4857efa4faff0ada6d94d682f2c
CRs-Fixed: 3256702
2022-08-08 07:49:39 -07:00
Yu Tian
c58feb9240 qcacmn: Force free leaking TX completion in PERF build
When TX completion entires are pending over 60 seconds,
Perform force free for these entries that belong to invalid
vdev. This could allow system to continue to go to suspend.

Change-Id: I34a39b8c7a9385fea0bed087e0644564f426bf90
CRs-Fixed: 3252807
2022-08-07 21:20:11 -07:00
nobelj
8d6fd579fb qcacmn: Add fix for memory leak
Added fix for two leak,
a) During wifi unload, buffer used in init need to be free during deinit.
b) Before buffer free, unmap is required for the buffer mapped to DMA.

Change-Id: I4e5a63b0c2aabb69367365e74961a63194144057
CRs-Fixed: 3157424
2022-08-05 15:16:16 -07:00
Tallapragada Kalyan
57f7c8363b qcacmn: get proper rbm value when 4th tx comp ring is not enabled
get proper rbm value when 4th tx comp ring is not enabled

Change-Id: Iaffe520afc72387d14ca72269fc61e597c85972c
CRs-Fixed: 3234810
2022-08-05 15:16:10 -07:00
Ruben Columbus
895c8bcde6 qcacmn: add tlv format to buffer along with debug mechanism
use msdu_count and index to occupy buffer headroom within mpdu.
new mechanism to debug buffer while using pf tags enabled

Change-Id: I1b7d8a1d7ec93f51869119294d2f0b14e3909fe9
CRs-Fixed: 3217284
2022-08-03 13:39:44 -07:00
Shiva Krishna Pittala
8641a158f3 qcacmn: Hook the UMAC reset in the target attach path
Call UMAC reset initialization API from soc_attach_target().
FW exposes a service bit for this feature, use that to conditionally
enable this feature. Also, add default log levels for this feature.

CRs-Fixed: 3253464
Change-Id: Ia7c9cf07a7ab7b000ebe452ab074a82173b70129
2022-08-03 07:35:26 -07:00
Ming Jiang
53537c67e1 qcacmn: Support none 4k page size kernel
DP uses multi page allocation for tx/rx descriptor.
ID and offset mask of decriptor is based on 4096 which
couples with Kernel's MMU PAGE_SIZE. This cause trouble
when deploy driver on none-4K page size kernel.
Set qdf_dp_blockmem_size to 4096 so that DP won't
depend on kernel page size.

Change-Id: I17f5c10b394e8709e6b4b153f3dd094cf792787f
CRs-Fixed: 3235246
2022-08-03 05:29:55 -07:00