Commit Graph

163 次程式碼提交

作者 SHA1 備註 提交日期
Aman Mehta
6e3897bd78 qcacmn: Update stats API interface with xmit type
Update stats API interface with xmit type. Also, updates
unmap peer update mechanism.

Change-Id: Ib39dee1c74e59d5c2ff523b3eca983e54b54676b
CRs-Fixed: 3561679
2023-09-27 22:13:56 -07:00
Ruben Columbus
4a7db7f38e qcacmn: revert 2 gerrits from 4k ini change
This reverts commit Icd1bbe85182d6baf1e25dceed0b45994aa9f55fc.
This reverts commit Id00c6351bf6bc1b9df5e19064b2057dadd315e9b.

- revert add rx_buffer_size to softumac case
- revert 4k skb buffer change.

Change-Id: I623b200c0c5f08f0e372629cb1c972b521c25eaa
CRs-Fixed: 3623665
2023-09-26 14:41:43 -07:00
Namita Nair
429dc9c9e6 qcacmn: Ensure rx_desc->unmapped is set to 1 before releasing lock
Originally Change-Id: I9fa71bdb6d4e4aa93fc795cc5dd472a181325991
was brought in to fix a race condition between Rx buffers
map/unmapped in dp_ipa_handle_rx_buf_smmu_mapping() and at the
same time map/unmapped from dp rx replenish context.
The fix ensured that rx_desc is unmapped and rx_desc->unmapped=1
flag will be set atomically within a lock.

But Change-Id: Iadb40071fb733cc4de3291784df5075d5a099a8e
introduced a flaw by releasing the lock before setting the flag to 1.

This is currently causing race condition and causing double
unmap calls when IPA smmu pool unmap and dp_rx_replenish unmap
is running in parallel. This change will fix this issue, by setting
the flag before the lock is released.

Change-Id: I3533bb5f6cc0437395149cd3c718826ef0b482a3
CRs-Fixed: 3594252
2023-09-15 21:09:32 -07:00
Pavankumar Nandeshwar
a9d8a404fc qcacmn: Handle special tx descriptor pool cases
Fix the missing special tx descriptor pool cases

Change-Id: Ie6a7539e77b805483c32cb7bcfbc3143f9ef8034
CRs-Fixed: 3610126
2023-09-13 14:20:33 -07:00
Ruben Columbus
4902c68f4d qcacmn: 4k skb buffer change
add new ini to configure skb size and change it in each place its used
correspondingly

Change-Id: Id00c6351bf6bc1b9df5e19064b2057dadd315e9b
CRs-Fixed: 3584462
2023-09-13 14:19:51 -07:00
Tiger Yu
dbfc30e61b qcacmn: Add pdev checking when processing the htt completion messages
Add pdev checking when processing the htt completion messages to avoid
NULL pointer dereference both in the dp_tx_process_htt_completion and
dp_tx_comp_handler.

Change-Id: I9e8129cfa297d4f2e180550c50ad8a4f1be20ee0
CRs-Fixed: 3583893
2023-09-04 06:21:55 -07:00
nobelj
beede07860 qcacmn: Add fix to populate transmit count
Add fix to populate transmit count for exception frame

Change-Id: I3fa77783169b86779b8a3d6cc0152de8f58cbadf
CRs-Fixed: 3583259
2023-09-03 10:42:18 -07:00
Amrit Sahai
b13bb9a868 qcacmn: Fix rx byte and num count for lithium platform
Fix rx byte and num count for lithium platform

Change-Id: Ic964efacec3bbfbb87dafbb8021415d4633a1393
CRs-Fixed: 3599422
2023-08-31 11:01:42 -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
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
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
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
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
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
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
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
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
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
Srinivas Girigowda
48cf24b446 qcacmn: Remove trailing newline from the DP Logs
Remove trailing newline from the DP Logs.

Change-Id: Iaf54e57fb44cf7c15d82bd5c0ffb3fc7c3d04a2b
CRs-Fixed: 3492501
2023-05-18 18:42:08 -07:00
Kenvish Butani
c0fe52d4c6 qcacmn: Get vdev stats based on arch
With Single Netdev Unified and Hybrid Mode,
the calculation of vdev stats is changed as
per the mode. For LI platforms the path
to get vdev stats is still same while for
BE the vdev stats config path is different.
Introduced Arch ops to handle this diversion.

Change-Id: If4f0f49e78d35126942cd3f1872a5856e4d0f5ba
CRs-Fixed: 3482567
2023-05-15 03:45:15 -07:00
Kenvish Butani
ef68ac521f qcacmn: vdev stats Support for MLO Hybrid Mode
Add vdev stats support for DP MLO Unified
and Hybrid Mode.
Add new CDP API for getting vdev stats for
NON_MLD interface.
Add support to get vdev stats for specific
vdev which is a part of MLO.

Change-Id: I72c8b25958649d473e1b65cee21810cd86951187
CRs-Fixed: 3455607
2023-05-15 01:28:24 -07:00
Vivek
7c844f2d3f qcacmn: Handle the HTT message for SAWF peer AST update
When a new MSDUQ is instantiated for a peer, additional
dynamic AST indices are allocated.The new AST indices
should be used in subsequent MSDUs.

Handle the HTT message to update the dynamically allocated
AST indices.

Change-Id: Iea24e1f3523006f40c781abdc3c176ba25ecd5a5
CRs-Fixed: 3449259
2023-05-14 08:12:02 -07:00
D Harilakshmi
82bd3d9009 Revert "qcacmn: Optimize DP Rx Error Handling (Part-2)"
This reverts Change-Id:	I760694073a06c1829f28e7e92cd1657560d8eb06

Change-Id: If1573653da912702bd343acfa42f9ae32a3f7844
CRs-Fixed: 3472220
2023-04-26 06:39:59 -07:00
Kenvish Butani
969c5bdf1f 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: I760694073a06c1829f28e7e92cd1657560d8eb06
CRs-Fixed: 3472220
2023-04-20 13:29:39 +05:30
Kenvish Butani
711fb71599 qcacmn: Revert "Optimize DP Rx Error Handling (Part-2)"
This reverts the commit.

Change-Id: Ia1a304daa5d63a063bfc2d22b9b99ccad02af0e1
CRs-Fixed: 3472017
2023-04-19 05:43:51 -07:00
Sreeramya Soratkal
73d7e4d15a qcacmn: Derive TID from DSCP in case of legacy SCS
With the convergence of SCS and SAWF, do not override the TID
for legacy SCS case. Retain the value obtained using DSCP in
this case.

CRs-Fixed: 3460620
Change-Id: I19502d09f5f37376bac08eb05fcf770c71331e1c
2023-04-18 22:02:50 -07:00
Venkateswara Naralasetty
26099afe23 qcacmn: suspend/resume changes for WCN6450
Changes required for suspend/resume support for WCN6450

Change-Id: I4610f6bdb8de92f03884af6c07a5141dd27174be
CRs-Fixed: 3447469
2023-04-18 12:11:24 -07:00
Chaoli Zhou
533fc12e2f qcacmn: Fix null pointer issue in LPM case
In the LPM case, if the tx desc has been force
freed in the dp_bus_suspend ->dp_find_missing_tx_comp,
then after data transfer resumed, fw may report
tx complete for the same tx desc, and we should
skip it to avoid null pointer access.
The reason why set default vdev_id to 0xff is:
Since in this case, it happned disconnect before
suspend, so the tx desc pool will be deleted and
reinitalized when resume, so the pdev is null in
the force freed tx_desc and vdev_id should be changed
from 0 to DP_INVALID_VDEV_ID, otherwise the below logic
in the tx complete handler will not skip handling
this freed tx_desc.

if (qdf_unlikely((tx_desc->vdev_id == DP_INVALID_VDEV_ID) &&
    !tx_desc->flags)) {
	DP_STATS_INC(soc, tx.tx_comp_exception,1);
	dp_tx_desc_check_corruption(tx_desc);
	continue;
}

Change-Id: I5f3ff6fd783893f92a0fd6b3db7457b280fcb1c8
CRs-Fixed: 3447465
2023-04-12 01:33:16 -07:00
Kenvish Butani
d0d9a987fc 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.

Change-Id: Ic8793ffcbeb2411c9b81fb32acae062e8a1f40cc
CRs-Fixed: 3362828
2023-04-07 09:13:49 -07:00
Tallapragada Kalyan
e4798ea69b qcacmn: optimization changes to improve RX KPI for WIN
done the following changes to improve the RX path KPI
	1. remove the extra invalidate in RX path as
	we no longer dirty the RX TLV cache lines.
	we now store the rx error codes in nbuf cb instead
	of RX TLVs reserved memory bytes.

	2. with features like flow tag and wds extended mode
	enabled by default, the rx_fast_flag is always set
       	to false, this resulted	in lot more instructions
       	being executed in RX path.
	Now we ensured this flag is at least set for other
	features which are not enabled by default.

Change-Id: I04c6bdc52a2b3f1248b822a108d8bd1a70abcc7c
CRs-Fixed: 3406505
2023-03-30 02:32:40 -07:00
Karthik Kantamneni
a7cd30b5da qcacmn: Route soc init/deinit handling via arch ops API's
Currently dp_soc_init/deinit API's are called first for
common soc initialization/deinitialization and then architecture
level init/deinit APIs are called from base dp_soc_init/deinit.
But with RHINE architecture dp_soc_init/deinit API's are not common,
so we cannot call these APIs as base. To handle this scenario
routing all the soc level init/deinit from arch ops APIs and
arch ops APIs will take care of calling common soc_init/deinit.

Change-Id: Ibb10d452931630c917088b4d222c7fbd82621f6a
CRs-Fixed: 3404205
2023-03-27 15:14:14 -07:00
Sai Pratyusha Magam
d2952c2e85 qcacmn: Remove wapi packets from is_eapol check
Remove wapi frames from is_eapol check in dp_rx_null_q_desc.

This change is to address the below issue:

First wapi packet received in dp_rx_nll_q_desc,
before TID setup does not reach stack since it is
treated as an eapol frame and gets dropped in
dp_rx_eapol_deliver_to_stack.

Change-Id: Ibcad786eb1a1cec1c082ec630ea38cc582627dfa
CRs-Fixed: 3413689
2023-03-24 07:23:46 -07:00
Santosh Anbu
ea42206e31 qcacmn: York Scan radio monitor mode bringup
Initial changes for York scan radio bringup in monitor mode.

Change-Id: I99c9a6eea4c9bf2255b92975e3862500d31c2f1d
CRs-Fixed: 3421410
2023-03-16 19:02:36 -07:00
Manikanta Pubbisetty
6758a546bc qcacmn: Add TX descriptor changes for WCN6450
WCN6450 is a chip based on Rhine architecture. Unlike LI/BE targets,
chipsets based on Rhine (RH) do not have host facing UMAC HW blocks.
Their corresponding SRNG interfaces are also removed. The functionality
of these UMAC HW blocks is replaced with a software implementation in
the firmware. Communication between the driver and firmware will happen
over copy engine (CE).

Although there are no host facing UMAC HW blocks, the CE hardware used
in WCN6450 expects the host driver to use the TX descriptor (HW) format
of LI targets during TX packet enqueue. Therefore it is required to
create a new pool of TX descriptors (HW) pool for WCN6450 that is used
during TX.

The logic to create/free/init/deinit these descriptors is specific
to WCN6450/Rhine, therefore it is implemented in architecture specific
Rhine code.

Introduce new APIs in struct dp_arch_ops {} to allocate and free
arch specific TX descriptors. These ops will be no-op for LI/BE
architectures.

Also for Rhine targets, allocate/free other TX descriptors like TX EXT &
TSO descriptors as part of the arch APIs.

Change-Id: I452ac69143395881ab8580355a0f75571dc3e929
CRs-Fixed: 3381711
2023-03-16 09:30:15 -07:00
Chaithanya Garrepalli
97fcc90a7e qcacmn: Handle SG case with multiple MSDUs in MPDU
In case of where multiple scatter gather frames are
part of same MPDU last_mpdu_in_msdu will be set only
for last buffer of last scatter frame in MPDU.

Below is the hw descriptors bits when 2 scatter frames
are part of a MPDU

 -----------------------------------------------------------
|Buffer_num | MSDU_NUM | first_in_mpdu | cont | last_in_mpdu |
 -----------------------------------------------------------
|    1     |     1    |       1       |  1   |      0       |
 -----------------------------------------------------------
|    2     |     1    |       0       |  0   |      0       |
 -----------------------------------------------------------
|    3     |     2    |       0       |  1   |      0       |
 -----------------------------------------------------------
|    4     |     2    |       0       |  0   |      1       |
 -----------------------------------------------------------

In above case scatter MSDU boundary checks can be done only
based on continuation bit. So while reaping use continuation
bit instead of last_in_mpdu bit to detect boundary

Change-Id: I42e7360d6a1b7d0cfd9a6688cae51e3854d430ec
CRs-Fixed: 3388668
2023-03-10 16:11:55 -08:00
Kenvish Butani
4c88b99fe7 qcacmn: Add support of HW Link ID
Add support of HW Link ID in PeerMetaData.
Retrieve the HW Link ID in both Rx per packet
path and RX Error path, store it in nbuf cb.
Use the stored value from nbuf while updating
MLO peer link statistics.

Change-Id: I11596d44fe8557af568fd399d0c0a04d2b887b2a
CRs-Fixed: 3397721
2023-03-08 07:42:49 -08:00
Amrit Sahai
24dc3d385c qcacmn: Add Support of TX MLO Link Stats for ML Peer
Add Support to update TX per packet path, MLO Link
statistics for ML Peer.

Change-Id: If8aa5433221ecbb7d84b3f6777784524f43179a3
CRs-Fixed: 3397721
2023-03-08 07:42:28 -08:00
Kenvish Butani
7fdd918e7f qcacmn: Add Support of Rx MLO Link Stats for ML Peer
Add Support to update Rx per packet path, MLO Link
stats for ML Peer

Change-Id: Ica25993126b4ce49f9e36b7b290d9887e4885155
CRs-Fixed: 3397721
2023-03-08 07:42:17 -08:00
Kenvish Butani
3243b9e4f4 qcacmn: Add Support of Rx Err MLO Link Stats for ML Peer
Add Support to update Rx Error path, MLO Link stats
for ML Peer

Change-Id: Ie5000d0d30a41fa69c86259bae0fd7a8094bddf7
CRs-Fixed: 3397721
2023-03-08 07:42:07 -08:00
Harsh Kumar Bijlani
ef49de7005 qcacmn: Consider TID from skb mark even when tid_override is enabled
Consider TID from skb mark when tid_override is enabled along
with SAWF.

Change-Id: I2d1b55017f7c1de6fa3305aa903b8a97edca501c
CRs-Fixed: 3421733
2023-03-06 11:42:22 -08:00
Kenvish Butani
2fbc8c8ab0 qcacmn: Optimize DP Rx Error Handling (Part-1)
1) In WBM2SW Rx Error path, code to reap and
the process the HAL descriptor is split into
BE and LI architecture specific functionality
in dp_be_rx and dp_li_rx files respectively.
2) The function to handle Null Queue desc.
error for WBM and REO Rx Error path is split
into BE and LI architecture specific
functionality in dp_be_rx and dp_li_rx files
respectively.

Change-Id: Ic51a9742f65cee677ed7f3081f49fb3ece5b42f1
CRs-Fixed: 3356179
2023-02-07 07:00:22 -08:00
Jeff Johnson
4f341433ba qcacmn: Fix dp/wifi3.0/li documentation
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/li, so fix those issues. In addition, there are a
number of instances where public functions have their implementation
documented instead of having their interface documented, so move that
documentation.

Change-Id: I38f98ebaa5373338cdff68dbde5c0d66780413c2
CRs-Fixed: 3373156
2023-01-24 04:48:53 -08:00
KARTHIK KUMAR T
70e9286f37 qcacmn: mcast_mlo handling in intrabss fwd
mcast mlo handling for the intra bss fwd

Change-Id: I23c1a9759ac3ac59f2f46fdb456c616c77823e8c
CRs-Fixed: 3353501
2023-01-05 18:01:34 -08:00
Tallapragada Kalyan
6774796947 qcacmn: Add soc count for multi-chip mlo
Add soc count for multi-chip mlo

CRs-Fixed: 3370858
Change-Id: I128a378cdf29f03eb4356cd8049aea47e0af7c18
2023-01-04 22:02:10 -08:00
Tallapragada Kalyan
328ea67a32 qcacmn: enable FSE with MLO support
from Beryllium onwards a single Flow Search Table
will be used across multiple radios. to ensure this
a single FST attach is called for the first SOC's
pdev and FST detach is called only during last pdev
of last SOC. the same FST instance is saved in all
pdevs of all the SOCs

CRs-Fixed: 3366409
Change-Id: I42fbdc6f09fb902021877e100a2831a1a24bc975
2023-01-04 18:30:46 -08:00
Amit Mehta
877eaf11ea qcacmn: Fix HTT HAL Tx status mapping
Currently HTT_TX_FW2WBM_TX_STATUS_DROP and HTT_TX_FW2WBM_TX_STATUS_TTL
are mapped to HAL_TX_TQM_RR_REM_CMD_REM which results in the wrong Tx
status print in case HTT_TX_FW2WBM_TX_STATUS_TTL where No ack is received.

So to fix the status log issue map HTT_TX_FW2WBM_TX_STATUS_DROP to
HAL_TX_TQM_RR_REM_CMD_REM and HTT_TX_FW2WBM_TX_STATUS_TTL to
HAL_TX_TQM_RR_REM_CMD_TX to log correct Tx Fail Status.

Change-Id: If125313f6b831ce5ca0f7eec9e8e3f1a03229f16
CRs-Fixed: 3362679
2023-01-02 10:53:33 -08:00
Kenvish Butani
620ad50e89 qcacmn: MLO Multicast Support for ML Reconfig
Add support for GET MLO Multicast API to check
if the vdev is primary multicast vdev.
Enhanced SET MLO Multicast API to reset primary
multicast flag for all partner vdevs.

Change-Id: Ic88949ce922bb1d0fd34349058d254de0d1f563c
CRs-Fixed: 3322523
2022-12-02 12:29:31 -08:00