Wykres commitów

2532 Commity

Autor SHA1 Wiadomość Data
Chaithanya Garrepalli
bd4f90b8c8 qcacmn: Allocate PDEV with size as per arch type
While allocating PDEV get the pdev size based on
arch type

Change-Id: Ic6a4c60a49db4d9bb40bc9bf5fd3ca321460f213
2021-11-22 02:49:01 -08:00
Yu Tian
2446f8ed54 qcacmn: Clean up force BA64 ini config
This force use BA64 ini config is no longer needed, because another
gRxAggregationSize can do the same settings and more flexible.
Change is used to remove this config.

Change-Id: Ie780489849f8b701481a628a9bca2b4112460bd8
CRs-Fixed: 3076982
2021-11-22 02:48:56 -08:00
Yu Tian
ac2110769b qcacmn: Add an ini control to disable Dynamic GRO feature
Dynamic GRO feature is enabled by default and aimed for specific
customers. Add an ini control to allow other customers to config
this feature enable/disable.

Change-Id: I7f505599327ac131b3cdac9b4d9e038861b1aeb6
CRs-Fixed: 3074689
2021-11-21 23:59:57 -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
Sai Rupesh Chevuru
30c0b8b4cd qcacmn: Potential memory leak in dp_tx_process_htt_completion
In dp_tx_process_htt_completion(), when vdev is NULL,
returning without freeing nbuf and tx_desc.

Change-Id: I234f0a4f710cc9eb0fc5431fb26a1846326fd931
2021-11-19 03:22:01 -08:00
Yu Tian
ef29d92da0 qcacmn: Add a tid check for RX to avoid of OOB access
Tid in RX frame header may be larger than MAX TID allowed
value, this will lead a out of boundary array access and
lead to kernel crash at last. Change is aimed to do a TID
check and discard such frame when necessary.

Change-Id: Ie9e7a1816d197d05cf845e81251ef7772721b849
CRs-Fixed: 3071743
2021-11-17 04:36:19 -08:00
Rakesh Pillai
b2e3fdcdef qcacmn: Disable intra-bss forwarding for NDI interface
Disable intra-bss forwarding for NDI interface.

Change-Id: I0f3276547795defbd6c0f1f387b5e0018ef11048
CRs-Fixed: 3073451
2021-11-16 23:30:18 -08:00
Lincoln Tran
7ffc4a761b qcacmn: Fix compilation issue with mon_register_intr_ops
Some platforms don't have mon_register_intr_ops enabled so add
a similar macro around dp_mon_register_intr_ops to resolve
compilation issues.

Change-Id: Id9c7bb45d965005d4dd0dde3a08f254464244147
CRs-fixed: 3075651
2021-11-16 19:52:16 -08:00
Shikha Bakshi
eaf287ec84 qcacmn: Avoid updating tid for non-mscs station
Check of Invalid QOS tag which can be set for non-mscs clients
connected on same VAP as MSCS clients. TID override needs to be
avoided for those clients

Change-Id: I651a354e740fe6aee74f94b59ac2e6f154a80c6d
2021-11-15 20:37:26 -08:00
Pavankumar Nandeshwar
e3d4f6b095 qcacmn: remove mec_fw_offload assert
remove the assert when HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY
is received and mec_fw_offload is enabled.

Change-Id: I1b9c876822e3e9c05b5035af82afa484106e880a
2021-11-13 00:22:22 -08:00
Jinwei Chen
9b26ed4fbf qcacmn: Avoid SW AST table accessing for MC/BC frame
For DA MC/BC RX frame, host should not use da_idx to access soc->ast_table
as this da_idx is not valid, OB accessing might happen.

Change-Id: I5c78d869e32536effe2635e561cb6881cdc97c38
CRs-Fixed: 3072841
2021-11-12 16:37:12 -08:00
Amit Mehta
8410d24e7b qcacmn: Remove csum_enabled flag and related changes
As part of code change we are removing csum_enabled flag check.
In that case, csum_enabled becomes redundant since we are not using it
in the code base, So remove redundant code as part of the cleanup.

Change-Id: Iac411b20f06436053b1969a1af9e3b3ee418c34c
CRs-Fixed: 3070858
2021-11-12 11:32:48 -08:00
Amit Mehta
eaa0e3776e qcacmn: Remove csum_enabled flag check
Currently, to set checksum enable flags in Tx descriptor
we are checking the csum_enabled flag along with stack checksum
offload request. In case of roaming from latency-critical connection
to non-latency critical connection we request stack to calculate
checksum and set csum_enabled flag to 0. For some packets which
are already queued where the stack has not calculated checksum and
csum_enabled flag is set to 0, we will not set the checksum enable
flags in Tx descriptors for those packets.

To fix the issue remove the csum_enabled flag check and directly
check if the stack has calculated checksum for those packets or not.

Change-Id: I8d7754afc3d0a33315b85b0113cd3062e5783e28
CRs-Fixed: 3070858
2021-11-12 11:32:43 -08:00
Himanshu Batra
8096fd4cbf qcacmn: Register monitor interrupt ops after monitor object creation
Register monitor interrupt ops after monitor object creation

CRs-Fixed: 3060183
Change-Id: Ia1936d2b124ede3f2082360140ab923f8b21fb43
2021-11-12 08:53:05 -08:00
Subrat Mishra
813d7d9a43 qcacmn: Define cdp interface APIs to fetch delay and jitter stats
Define a new cdp interface to fetch peer delay stats.
Define a new cdp interface to fetch peer jitter stats.

These interface APIs will be used by upper layers to fetch delay and
jitter stats per peer for telemetry stats feature.

Change-Id: I96ee6a861fa2626e7e1fba3df7df9ec64ff7e946
CRs-Fixed: 3071493
2021-11-12 06:20:07 -08:00
Chaithanya Garrepalli
41fda10bc5 qcacmn: In WBM err process read peer_id from peer_meta_data
In WBM error processing read peer_id from peer_meta_data
instead of sw_peer_id.

This changes is needed because we need to process Rx packet
on ML peer. But in MLO case sw_peer_id field contains
link_peer_id where as peer_meta_data has ml_peer_id.

Change-Id: I3f469adfdf7efa88cb081e94fa9fe0c54c1fb078
2021-11-12 04:46:16 -08:00
Chaithanya Garrepalli
0edc443d5a qcacmn: Fix for tx buffer leak without monitor module
When monitor KO not loaded Return QDF_STATUS_E_FAILURE
from dp_monitor_tx_add_to_comp_queue() so that caller
will free the buffer

Change-Id: Idebcf81121767ccd93d95308433241fcf0a93c93
2021-11-12 03:13:27 -08:00
Amit Mehta
08f31818b9 qcacmn: Extend tid_lock in rx defrag store fragment path
Currently, we are Flushing fragments for peer as part of rx defrag
clean up. There is the possibility that frag flush is called while
we are accessing frags in rx defrag store fragment path in parallel.
Which will cause access after the free issue.

Extending lock in rx defrag store fragment path to avoid any
parallel flush while accessing the frags.

Change-Id: I1e897b195f61d80ea6738e9a93f7bcaaa04adc97
CRs-Fixed: 3065414
2021-11-12 03:13:21 -08:00
Ananya Gupta
182d1268cc qcacmn: Unlock tid_lock after status check
There is a race condition as tid_lock is unlocked early in
dp_rx_defrag_store_fragment and descriptors are replenished
from dp_peer_flush_frags and same descriptor is again
being replenished in fragmented path.
To resolve this, extending lock period till all the operations
on tid.head_frag_desc are done.

Change-Id: I6d2abb2119e3bebf739de9e41334d58ba87ee391
CRs-Fixed: 3068165
2021-11-12 03:13:16 -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
Sai Rupesh Chevuru
b1db784a64 qcacmn: send event to control path to inditate presence of backhaul
send event to control path on receiving 1st 4-address frame from backhaul
Change-Id: I7c78566d0adf275aeb2edd29233a42563d156fc5
2021-11-08 05:19:56 -08:00
Mohit Khanna
2c4ac431f0 qcacmn: Avoid tracing packets at high throughputs
Avoid tracing data packets at high throughput levels. This helps save
CPU cycles.

CRs-Fixed: 3059712
Change-Id: Ideca04e142a2f4080cd5758fe27f0b526ea4f9ad
2021-11-08 05:19:51 -08:00
Mohit Khanna
9d2cde1128 qcacmn: Add last TX/RX timestamp in DP peer stats
Add timestamps for last TX/RX in peer stats. This stat is needed to be
passed on to upper layers on demand.

CRs-Fixed: 3059712
Change-Id: If0d8b7dc3c139e4d1b670bf98f3f574f02ea9715
2021-11-08 05:19:46 -08:00
Mohit Khanna
81e29163db qcacmn: Add throughput based RTPM API support
Add support to invoke HIF runtime PM APIs in TX packet path based on
throughput level. Essentially at high throughputs, where runtime PM is
not expected to provide power gains, invoking the APIs is deterimental to
performance.
Hence invoke runtime_pm APIs based on throughput level.

CRs-Fixed: 3059712
Change-Id: I49d111bffa8a37c68abbdd54911f9ecc22430562
2021-11-08 05:19:41 -08:00
Mohit Khanna
25652ed9d8 qcacmn: Return invalid peer state if peer is not found
Return an appropriate value in case a peer is not found.

CRs-Fixed: 3059712
Change-Id: I951d4dd900cde0606e8f03c2b8748f5e76fe5736
2021-11-08 05:19:36 -08:00
Yeshwanth Sriram Guntuka
d9eb751658 qcacmn: Add support to affine individual grp irqs
Add support to affine individual grp irqs to either
perf or non-perf cluster.

Change-Id: I90006645acb82b71c63d2255722e2c67bb7a2f46
CRs-Fixed: 3059676
2021-11-08 05:19:31 -08:00
Yeshwanth Sriram Guntuka
e4bd6bb939 qcacmn: Repurpose the IPA tx ring pairs for normal use
Repurpose the IPA tx and tx completions rings for
normal use when IPA is disabled either via config
flag or ini.

Change-Id: Ia4b6a89c73d888a217bdef40e3c05435c3bb1bb2
CRs-Fixed: 3059730
2021-11-05 12:32:35 -07:00
Jinwei Chen
dcdd40116f qcacmn: fix dp_rx_process_be dead loop issue
For T-put test case, if near_full IRQ is fired, ring_near_full
flag will be set and host will always reap reo2sw ring as much
as possible, but if quota 0, this will lead to dead loop
in dp_rx_process_be.

stop reaping reo2sw ring if quota is 0 even ring_near_full is set.

Change-Id: Ifea885162be3ccc6ae0515fc3c2538c459372887
CRs-Fixed: 3067231
2021-11-05 06:26:07 -07:00
Neha Bisht
084e26e4d9 qcacmn: Fix double increment of tx ifconfig stats
In ifconfig athX stats, tx packets and bytes were getting double
incremented in NSS offload disabled case. It was due to tx.comp_pkt
stats getting updated both in per packet Tx completion path and in 
Tx per ppdu indication from HTT path.
Fix by updating stats only in the Tx. completion path.

Change-Id: Id75d914874480a4e24ccb13223818b67869eb378
2021-11-03 00:21:45 -07:00
Sai Rupesh Chevuru
ea5aa01827 qcacmn: Fix for crash observed in E2E FTM mode during Tx
Fix for crash observed in E2E FTM mode during Tx.
Change-Id: Ib7d1723b0887f1abfbf4bdb564bbdf1c5d4acc7e
2021-11-02 00:15:33 -07:00
sandhu
88ff3516d7 qcacmn: Make changes to support fisa flow deletion
Add fisa deletion support by invalidating the fisa
DDR entry when adding a new entry.

Change-Id: I02189e22e09ca0ef5e1fdb5952c7e72cd87d3673
CRs-Fixed: 2954060
2021-10-29 12:03:50 -07:00
Amit Mehta
9cf3f44770 qcacmn: Update MPDU retries in case of successful transmission
In case of successful transmission If MPDU tx
is retried more than the threshold then
increment MPDU retry count by transmit_cnt / threshold

Change-Id: Idbc7e2d0579ff68e272132fe4ffe9f951c4aacf5
CRs-Fixed: 3058464
2021-10-29 10:23:17 -07: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
Jinwei Chen
b521830197 qcacmn: get sw_exception from reo dest ring descriptor
sw_exception bit will be marked in reo dest ring descriptor for
FW re-injected frame, get this bit and save it in skb->cb,
this bit value can be used for FISA further check.
there is no reo_dest_indication field in reo dest ring on beryllium,
so share same cb member for sw_exception and reo_dest_indication.

Change-Id: I2321121be7dda68ed19faca177d868c7e8ba1dbf
CRs-Fixed: 3056156
2021-10-28 10:21:20 -07:00
Ananya Gupta
122bc19864 qcacmn: Fix REO reinjection path in hamilton DP
Add HAL APIs to fix REO reinjection path in hamilton DP

Change-Id: I73c6ec0aeb2f6d4bc72b366e22e9bc826f852426
CRs-Fixed: 3058549
2021-10-27 07:05:06 -07:00
Amir Patel
6d6881fff4 qcacmn: Fix compilation issues from monitor mode
Fix compilation issues from monitor mode

Change-Id: If687dd91bbf29d2bb7d30546e6c1e332cc97d220
2021-10-27 05:34:17 -07:00
Jianmin Zhu
fb1db30308 qcacmn: Fix wrong rssi in monitor mode
If ppdu rssi unit is dbm, need convert to db for API:
qdf_nbuf_update_radiotap, only need convert once for first mdpu in the
ppdu. if convert for each mpdu, wrong rssi will be saved.

Change-Id: I85e92121ddb289e3513022ff092083825197efb4
CRs-Fixed: 3057041
2021-10-27 02:36:07 -07:00
Himanshu Batra
ff8ee42eac qcacmn: Add API to get dp peer authorize state
Add API to get dp peer authorize state.
Also modify dp_tx_get_rbm_id_li to update rbm for IPA offload
scenario

Change-Id: I0f8cca4623a1c3b840f336aa6d67740951cb6700
2021-10-26 03:10:03 -07:00
Tallapragada Kalyan
5026c5a3d3 qcacmn: Add nbuf and nbuf->data prefetch in Lithium RX
Adding a nbuf and nbuf->data prefetches in 2nd loop
of Lithium datapath RX improved UDP throughput by
about 250Mbps.
PINE default driver: 3189Mbps @ 100% core-3
PINE with prefetch:  3469Mbps @ 100% core-3

Note: PINE reo ring is mapped to core-3.
Change-Id: I7f166b52c3697facdce3954994755c9c1412c1f3
2021-10-25 07:47:11 -07:00
Naga
85bfde2f0a Revert "qcacmn: Enable timer based low threshold interrupt"
This reverts commit Ia33b110337e610ab9b5d7a9cecb61f6952cd3379.

Change-Id: I07e2c8565b2aaa6cfd55b262d65ba0269a0a1d8a
2021-10-22 12:41:13 -07:00
Rakesh Pillai
c634e23cf7 qcacmn: Fix the parsing of current pn in REO error path
The current PN is a 128-bit field which was incorrectly
stored into a 64-bit variable, leading to stack corruption.

Fix this by increasing the size of the variable
for current PN to 128-bits.

Change-Id: Ib26cc0bb7d244360afb258a55d5b9a8ddd6aa4ca
CRs-Fixed: 3059345
2021-10-22 03:04:53 -07:00
Naga
3e3c3c8df3 qcacmn: Fix to disable full monitor mode
Fix to disable full monitor mode.

CRs-Fixed: 3057668
Change-Id: I43238db8bf29ab3c7c24d8e5bea537cbd28da896
2021-10-21 22:07:57 -07:00
aloksing
2674d65536 qcacmn: Add tx capture timer stop flag
Add stop timer flag to avoid resubmission of tx capture work queue timer
while del_tiimer_sync.

CRs-Fixed: 3056656
Change-Id: I72bfb6916f02297b15bb733359c0e4d7f91f0b73
2021-10-21 08:55:47 -07:00
Sai Rupesh Chevuru
ba3f9c04c8 qcacmn: Update TID value in skb priority from the MPDU buffer
Update TID value in skb priority from the MPDU buffer.

Change-Id: I707190f0c3095b4c47bd4b3cffd4a94f5952939c
CRs-Fixed: 3037067
2021-10-21 02:33:44 -07:00
Sai Rupesh Chevuru
ffb9ec5cae qcacmn: use appropriate MOD_ID while updating primary VDEV for a peer
In the case of MLO updating the mod id param,
where initial link is not the primary link.

Change-Id: I2fe21ffb2ebf3a081da7f07a4828d41f1bcea98e
2021-10-18 11:54:49 -07:00
Chaithanya Garrepalli
4c9b9c0ab0 qcacmn: fix compilation issue for WCN7850
Fix compilation issue for WCN7850

Change-Id: Iaf5bb6d320a2b639b20c7bc8edb0aa9c4c55a985
2021-10-15 17:54:22 -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
2069fa6cdd qcacmn: Handle htt peer map/unmap v3
Add the handler for processing the htt
peer map/unamp v3 and MLO peer map/unmap msgs.

Change-Id: Ie2ab0b76e7aee566ca3b9637b83fd7a14718ab01
CRs-Fixed: 3039326
2021-10-15 13:13:22 -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
Jinwei Chen
5c85cfb5a0 qcacmn: cdp/dp peer change for MLO
cdp/dp peer change for MLO

Change-Id: I9b8eb741317a0dc7337aff7e773148892e531ba2
CRs-Fixed: 3031166
2021-10-15 13:13:12 -07:00