Commit gráf

418 Commit-ok

Szerző SHA1 Üzenet Dátum
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
Kenvish Butani
bad3898323 qcacmn: Ini and Config command Support for MLO Link Peer Stats
Add support to enable/disable MLO Link Peer stats through
ini and cfg80211tool enable_ol stats command

Change-Id: Id1229a149befa416d060e1b07eee150e6b295abf
CRs-Fixed: 3397721
2023-03-08 07:43:00 -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
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
Karthik Kantamneni
82a1c01b88 qcacmn: Refactor unused RX code for SOFTUMAC platforms
In RX and defrag path some of the code in common files will
not be used by new SOFTUMAC based platform. So placing all
the unused code under SOFTUMAC macro and for better readability
clubbing all the code at one place in source file.

Change-Id: I6ff3997a42872a25fb020898f7fb1879746fc8e6
CRs-Fixed: 3382899
2023-03-04 13:22:29 -08:00
Yu Tian
4bb2e1a3f2 qcacmn: Add SA check for Decrypt error frame
Usually decrypt error frames will be reported and cause
a disconnection. In some cases, the disconnection is unwanted.
Change is aimed to do additional check for frame SA, if it's
received from a valid peer, then don't report it to protocol.

Change-Id: I19d9acffc5ebd2c20abdf19eebc02f6875f762ca
CRs-Fixed: 3363352
2023-02-07 00:54:33 -08:00
Jeff Johnson
b13df1bdce qcacmn: Fix dp/wifi3.0/dp_rx.* documentation
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_rx.[ch], 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: Id0ac49ebfa23790346384d688cc6346f513a7969
CRs-Fixed: 3373158
2023-01-26 04:10:05 -08:00
Pavankumar Nandeshwar
9eae97850c qcacmn: Fix the max number of rxdma entries to be replenished
Fix the max number of rxdma buffer ring entries that can be
replenished during Umac reset.

Change-Id: I4092f09f2ccf069314b2bbe8d463e32365e9a472
CRs-Fixed: 3369673
2023-01-25 16:36: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
Pavankumar Nandeshwar
4c86eb5e8a qcacmn: Use flag RX_PEER_INVALID_ENH for invalid peer handling
Use the flag RX_PEER_INVALID_ENH for invalid peer
event instead of FEATURE_NAC_RSSI

Change-Id: I87e301a48b1ccdcd28f8e2eb0ba80b215efa384c
CRs-Fixed: 2969193
2022-12-27 07:12:18 -08:00
Yeshwanth Sriram Guntuka
34d893df39 qcacmn: IOMMU map and unmap RX buffers to LPASS SMMU CB
IOMMU map and unmap RX buffers into LPASS SMMU context
bank for LPASS to access RX buffers in direct link
usecases.

Change-Id: Ie72a008309e3abdf3fbc7198bb5d3af5e9497180
CRs-Fixed: 3356568
2022-12-22 00:45:12 -08:00
Venkateswara Naralasetty
cdbbb3ed59 qcacmn: Remove skip HP update logic during tx pause flag is set
Currently HP update can skip for few packets if the system suspend
is happening in parallel with tx. This could lead to SMMU fault if
the skipped HP update goes after tx desc force free.

Remove the tx pause check in HP updates and have the check before
calling dp_tx_send in case of intra-bss forward case. No special
handling is needed for non intra-bss case as we don't expect packets
from network stack after suspend.

Change-Id: Id4f2cefcc0a14e7c16438b9bda5cb1d55eb05050
CRs-Fixed: 3327818
2022-12-05 18:42:35 -08:00
Chaithanya Garrepalli
682c7e09d1 qcacmn: minimize lock contention in Rx replenish
Changes dp_rx_buffers_no_map_replenish API to
miminize the contention on RX refill ring lock

Change-Id: Ie55f034c6d01abbab21707460cd0f20548b35ba2
CRs-Fixed: 3313886
2022-10-18 05:22:34 -07:00
Jeevan Kukkalli
07113ba281 qcacmn: Check boundary conditions while allocating extra buffers
We allocate extra buffers than requested when watermark is less
than critical low threshold. While allocating extra buffers we
should check for boundary conditions so that total allocated
buffers is always within the range of available entries.

Change-Id: I2f24c6157cb2afcc8bc5ca84b7e0308588a4d99d
CRs-Fixed: 3307051
2022-10-17 03:02:31 -07:00
Tallapragada Kalyan
4c45f8a2ed qcacmn: get HP of RXDMA ring without incrementing
get the HP of the RXDMA ring without incrementing
This will ensure in case of nbuf failures the ring
HP remains unchanged

Change-Id: I69ec9207a44a4c50484933797326e962ad2d4a5c
CRs-Fixed: 3309394
2022-10-16 07:49:31 -07:00
Tallapragada Kalyan
efff4ec854 qcacmn: Alloc nbuf only after rx descriptor is allocated
Alloc nbuf only after rx descriptor is allocated

Change-Id: Idc7fbb3e119761b877cfa4d625d1af84bf785ad2
CRs-Fixed: 3309036
2022-10-16 07:49:25 -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
Jinwei Chen
76de3f74ee qcacmn: Store eapol frame to cached buffer queue of MLD peer
For STA MLO connection, AP might send M1 right after assoc response
on assoc link, but at this monment, host has not sent wmi_peer_assoc
for the assoc link and no osif_rx is registered to dp_vdev, MLD peer
will not be initialized in FW side and no HTT MLO peer map msg to host,
then this M1 frame will be detected as no valid txrx_peer and dropped
in host as dp_vdev->osif_rx is NULL as well.

Store this M1 frame to cached buffer queue until CP register the osif_rx
to DP and then flush them back to stack.

Change-Id: Ie84fa9c39db75fe77b9fd61dc1bf46f2fa737df7
CRs-Fixed: 3289587
2022-10-12 23:22:51 -07:00
Tallapragada Kalyan
9ab6f487c0 qcacmn: fix compilation issue
fix the spelling typo when passing the argument dp_soc

Change-Id: I9b4155af801feddbfad706d292267629f9f2c5b5
CRs-Fixed: 3306506
2022-10-09 05:20:03 -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
Srinivas Girigowda
7cb3b7dd47 qcacmn: Fix issues reported by static analysis tool
Add changes to fix issues:
1. Array out of bound access
2. Arithmatic expression overrun

Change-Id: Idf9bdea33422015e0310e57d005f7d6941f8151e
CRs-Fixed: 3298301
2022-09-26 17:43:48 -07:00
Prakash Manjunathappa
60c0c089cd qcacmn: Free the raw mode mpdus in REO error ring
Raw mode mpdus in REO end up resulting in NULL_QUEUE_DESCRIPTOR error.
Raw mode mpdus are not expected in REO, free them without further
processing.

Change-Id: Ica920caecf90a1107ce17836051e1019c9dfc994
CRs-Fixed: 3282836
2022-09-23 10:23:44 -07:00
jinbaoliu
46796f2eb5 qcacmn: Fix failing to get rx rates stats when in MLO mode
In MLO mode, there are 2 link peers and 1 MLD peer. TX/RX stats
is kept in txrx_peer, which only exists in MLD peer. This change
aims at fixing HDD failing to get rx rates info when in MLO mode.

Change-Id: If476216a6b0d1c006fbc0d45a3cbfbb0be79efd3
CRs-Fixed: 3287090
2022-09-19 21:02:54 -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
cd40aa85ab qcacmn: Add few missing stats
1. Add stats to indicate REO ring size and Rx desc pool size
2. Add low threshold interrupt stats
3. Update SW2RxDMA ring size max to 16K

Change-Id: If84b88bc08e447774ab445df36b9f2f2219356b8
CRs-Fixed: 3286940
2022-09-12 00:28:13 -07:00
jinbaoliu
195e4c7d1b qcacmn: Fix the nss geting from tlv being invalid in 11b mode
Only in 11b mode, exclusive of other legacy modes(11ag) will
the NSS obtained from the TLV header be invalid, which is 0
and cannot be resolved. This change will set nss to 1 in 11b.

Change-Id: I93e8bdb125764fb0247265da328929ecc837fb84
CRs-Fixed: 3275793
2022-08-31 16:04:33 -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
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
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
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
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
Jinwei Chen
64d7493b30 qcacmn: add RX statistics per lmac for MLO connection
Add RX statistics per lmac for MLO connection.

Change-Id: I72b942732cc362c1613fae637bc5e1154f9e2ec2
CRs-Fixed: 3251609
2022-07-29 22:57:35 -07:00
Neha Bisht
173f9e6b1d qcacmn: Use cpu index for tx. ring id
The list of SW descriptors that we create from the HW descriptors 
in DP Tx completion path is corrupted in intra-bss path. This is causing a
crash when corrupted descriptor is accessed.
The cause of corruption seems to be due to incorrect rings being accessed. 
Use cpu index to fetch tx. ring IDs.

Change-Id: I5342b7c4e24df983900fde79f36df8395bf628cb
CRs-Fixed: 3223420
2022-07-27 09:25:33 -07:00
Chaithanya Garrepalli
b34fe34b48 qcacmn: Add WAR to get the vdev in invalid peer path
For QCN9224 splitphy mode do not rely on rx_desc_pool_id
to get to the VDEV as desc pool is common across PDEVs

Change-Id: I2552878bd56696a8df463b35e2b273ed4e591050
CRs-Fixed: 3220690
2022-07-27 05:36:47 -07:00
Amit Mehta
7e799fcbae qcacmn: Fix Rx packet logging issue
Currently while sending nbuf to rx fate logs
we are not removing rx tlv before sending nbuf
to logger which is causing issue of incorrect
packet type issue.

To Fix issue make changes to make sure that
rx tlv is removed and nbuf length is set

Change-Id: Ib56c8e009398b3410c43be910feb4048bfb06b54
CRs-Fixed: 3241828
2022-07-24 23:07:50 -07:00
Sai Rupesh Chevuru
bedd18fa8b qcacmn: Enable NO_RX_PKT_HDR_TLV
Unsubscribe the PKT HDR TLV in RX path.

Change-Id: If37102569ba1963efd743c6508dc9c835b49bf01
CRs-Fixed: 3229821
2022-07-19 05:19:20 -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
Amir Patel
09ae481644 qcacmn: Use page_frag_cache to avoid fragmentation
Use page_frag_cache to avoid memory fragmentation
in WKK RxMON

CRs-Fixed: 3234833
Change-Id: I2e42a41999694a91b0f3f9386a1ad0c691bf5caf
2022-07-15 05:01:37 -07:00
Jinwei Chen
9d2b26795a qcacmn: add 11be TX/RX rate statistic support
Currently 11be msdu rate statistic is not supported yet.
Another issue is: HW reported pkt type value 6, while host
SW defined 11be type DOT11_BE (value 5), they are not matching.
DOT11_BE value 5 is referred in monitor mode and otherwhere,
so do map and conversion in host sw side.

Change-Id: Ic5c2dd2a35cbe0ecd6430f007b6e7e02ece40998
CRs-Fixed: 3230900
2022-07-05 03:19:03 -07:00
Chaithanya Garrepalli
bd0375c2de qcacmn: Remove unnecessary checks in Tx path
1. Remove prints in per packet path
2. Add prefecth for skb shinfo
3. Avoid qdf_get_cpu() in DP tx

Change-Id: I86d196cc7865a2d5b3a5a6098f6f7d84397a60d0
CRs-Fixed: 3227568
2022-06-28 14:00:52 -07:00
Srinivas Girigowda
c8fafae5ee qcacmn: Remove irrelevant qdf_assert_always()
For non-self sta peer (sta_self_peer is set to 0) and in error cases
like (WMA peer create failure), peer->txrx_peer is NULL which
indicates DP peer setup has not happened and therefore there are
no rx cached frames flush. Having a qdf_assert_always() if sta_self_peer
is set to 0 is incorrect. This a valid scenario.

Hence remove the irrelevant qdf_assert_always().

Change-Id: I1ab18dd681534bb9257be388a74adedc529a67cf
CRs-Fixed: 3212253
2022-06-13 17:50:06 -07:00
Subrat Dash
46d50239e8 qcacmn: Microsecond time stamping for hw tx latency stats
Use microsecond timestamping for the tx descriptors
for capturing the latencies more accurately. It will help
to determine the appropriate bucket.

Change-Id: I216e083a7c89b01b6f2f384c1c0a85ca323d3a3e
CRs-Fixed: 3165153
2022-05-16 17:18:48 -07:00
Surabhi Vishnoi
ecaa0f1f6c qcacmn: Allow rx UDP packets during roaming before peer map is received
In VoIP cases, no or minimal packet drop is expected during
roaming. Currently, data packets are dropped in host if they
are received after roam sync indication from firmware and before
peer map indication is received due to invalid peer.
This change allows rx UDP data packets during roaming before
peer map indication is received from FW if peer's auth_status
received in roam_sync_indication from FW is authorised.

Change-Id: Ic518b7cd0aef48a2b0f8c923a2e20838b07f3d1f
CRs-Fixed: 3168603
2022-05-12 23:34:21 -07:00
Jinwei Chen
5f37239c73 qcacmn: Fix SAP DHCP ACK no TX Comp notify issue
When TX completion is released from FW, dp_tx_notify_completion()
will not be invoked, then TX DCHP ACK will miss
hdd_softap_notify_tx_compl_cbk() which then
WMI_PEER_CRIT_PROTO_HINT_ENABLED with value 0 will not send to FW.

(1) move dp_tx_notify_completion() from dp_tx_comp_process_desc_list()
to dp_tx_comp_process_tx_status(), so that both TX completion release
source FW or TQM case will call it.
(2) clear TX notify flag for intra-bss forwarding BC/MC to avoid
unnecessary TX completion notify.
(3) Set ts.status for release source FW case otherwise it will be value
0 always.

Change-Id: I2bf9900a3d16ba162a83b061f0b96e7d2f79423a
CRs-Fixed: 3178423
2022-04-21 03:20:36 -07:00
Yeshwanth Sriram Guntuka
df666b7116 qcacmn: Add support to enable tx hw latency stats at run time
This feature can be enabled runtime using sysfs interface.
Support is added to dump and clear the histogram stats.

The lower delay regions has to be more granular to indicate any
medium related issues for time sensitive XR applications.

Change-Id: I0a44a54d12d92ce016de349810cb2bedebaf9a58
CRs-Fixed: 2981006
2022-03-24 06:47:10 -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
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
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