Commit gráf

3026 Commit-ok

Szerző SHA1 Üzenet Dátum
Jinwei Chen
6a194730ae qcacmn: rename dp_is_hw_dbs_enable function
dp_is_hw_dbs_enable() is checking DBS and update number of
MAC rings value, current function name makes confusion.
rename it to dp_update_num_mac_rings_for_dbs().

Change-Id: I82540a943445560a99e27067e58d59035147208b
CRs-Fixed: 3131546
2022-02-23 22:45:48 -08:00
Yeshwanth Sriram Guntuka
c467daf31c qcacmn: Do not use WBM2SW4 as tx completion ring
Ageout flush does not happen for WBM2SW4 if there
is only one TX completion pending in FIFO and all the
other WBM release rings are not active. This is due to
an issue in HW and this prevents suspend to happen due
to pending tx completions.

Fix is to avoid using WBM2SW4 release ring and instead
reuse WBM2SW0.

Change-Id: I250d8c9d460895449939212ebdb7abd62edb0234
CRs-Fixed: 3124733
2022-02-23 20:49:14 -08:00
sandhu
9598f6b6c4 qcacmn: Resolve static analysis issue
check null pointer for soc return val and
check array index input for out of bound access.

Change-Id: Ib1d52f70128eaf9ba24e9024440490e470fec3d4
CRs-Fixed: 3127451
2022-02-23 20:49:02 -08:00
Naga
cf11e93c66 qcacmn: Fix pool size while initializing descriptors
Fix pool size while initializing monitor
descriptors

Change-Id: Icb02e096399f02dd36e74db3aab862de0a81befe
CRs-Fixed: 3134570
2022-02-23 12:28:51 -08:00
Mohit Khanna
21f6f3ad8f qcacmn: Donot do PN-Check for open mode OOR frames
Currently pn-check logic for OOR frames does not take into account
the security mode. For open mode case, BE hardware does not populate
current and previous pn_numbers. Hence a PN-check comparison may yield
incorrect results.

Check for secure mode, before checking for PN numbers.

Change-Id: I398872d467058bc1ee1d04c811818ea20c5aec7e
CRs-Fixed: 3129986
2022-02-23 11:10:29 -08:00
Chaithanya Garrepalli
be02a2d44f qcacmn: Add stats for new TQM release reason on BE
Add Tx completion stats for TQM release reason added
for BE

Change-Id: I7d28cbfacd1378982c5cf9a3f2cf3cffa070ee87
2022-02-23 08:37:16 -08:00
Vinay Adella
381d67a7a2 qcacmn: Add support to get reo qdesc size for li & be platforms
Bifurcate the hal_get_reo_qdesc_size to corresponding lithium
or Berillium platforms.
This can handle difference, if any between them and later enhance
to set the qdesc size based on peer negotiation.
Currently for NON_QOS_TID, the BA window size is hardcoded as
256 for Li and 1024 for Be.

Also modify hal_reo_cmd_update_queue_params to accommodate higher
Block-Ack Window size. For this steal bits from pn_size and use
pn_size values as macros PN_SIZE_XX which is only 3 bits,
instead of 8bits.

Change-Id: If310175da579aa3a47a8b031a1774c6c8982d4b2
CRs-Fixed: 3125986
2022-02-22 16:04:01 -08:00
chunquan
fae0e38eb4 qcacmn: Disable monitor mode on sdxlemur
Disable monitor mode on sdx65,it will save 5MB buf,
and improve iperf performance.

Dp_rx_buffer_pool_refill is used monitor mode in
MCC, and rxdma1_enalbe=0, we don't need this logic.
But in WIN side, only monitor mode need this logic,
and rxdma1_enable will set true.

Add func dp_monitor_pktlog_reap_pending_frames and
dp_monitor_pktlog_start_reap_timer in dp_internal.h
for compile issue.

Change-Id: I43fee6d7a1836063a7539c3bd4745eef15a4e4b2
CRs-Fixed: 3129542
2022-02-22 04:54:49 -08:00
Ripan Deuri
351c175a02 qcacmn: Define CDP ops and DP context for SAWF
- Add CDP ops for SAWF default queue mapping.
- Initialize DP context per peer.

Change-Id: Ic9c4e7d197aeeaa4ed19376ec4007711e86cbe5f
CRs-Fixed: 3128801
2022-02-22 00:57:27 -08:00
Pavankumar Nandeshwar
1bf15a02b7 qcacmn: Ignore peer if it is missing txrx_peer in reinject path
Ignore peer if it is missing txrx_peer in reinject path while
going through the peer_list. This condition can hit when the
peer_setup call from the control path is not yet received for
the peer.

Change-Id: Ie57d07353f33749a439415d808fc010702c3c884
CRs-Fixed: 3130821
2022-02-21 22:41:41 -08:00
aloksing
0de5f8943a qcacmn: filter setup for enhanced statistics
setup/reset filter to enable/disable enhanced statistics for WKK.

CRs-Fixed: 3121252
Change-Id: Ib6d7653144b0f962e5f0f3330ab1a0ff25cf1802
2022-02-21 06:41:28 -08:00
Pavankumar Nandeshwar
24c089c678 qcacmn: Add the missing tid value in rx_tid_defrag
Initialize the rx_tid_defrag with correct tid value
which was missing

Change-Id: Ib01d9692352e56f62d1338f353afac11b175d710
CRs-Fixed: 3130846
2022-02-18 15:32:08 -08:00
Pavankumar Nandeshwar
70bd47772e qcacmn: Sanity check for phy addr in cb against ring_desc
Check phy addr in cb against ring_desc for sanity
in wbm rx path

Change-Id: I40dd2949993129d1da548da45160f9eace094bff
2022-02-18 15:32:02 -08:00
sandhu
98f2bdc213 qcacmn: Add support to dump idle link ring hp tp
Add support to dump idle link ring hp tp.

Change-Id: Ia5fa1afd260a64c40133bf52368e93163b80c3ab
CRs-Fixed: 3128366
2022-02-18 14:08:22 -08:00
Basamma Yakkanahalli
3498dbc3a6 qcacmn: Add support to configure phy error mask
The monitor status ring is configured for filtering
in undecoded phy error packets. Each phy error can
be controlled using a specific error mask configuration.

Added below cfg80211tool command to configure phy error
mask for filtering undecoded phy error packets.

cfg80211tool wifix set_phyrx_error_mask mask_0to31 mask_32to63
cfg80211tool wifix get_phyrx_error_mask

Change-Id: I5e4f6a49458cc534d6d1d0f7f2a7424f3cc747b4
2022-02-18 04:53:23 -08:00
Basamma Yakkanahalli
e85fbce095 qcacmn: change to configure and handle undecoded metadata capture
Added change:
1. Set/reset RXDMA MON STATUS ring filter setting and send HTT
   message to capture undecoded frame
2. Handle undecoded frame to update cdp_rx_indication_ppdu structure
   from hal ppdu_info rx status and generate WDI event to deliver it
   to upper layer

Change-Id: I14485f28333b113b5a2fab639611551c2b08af2b
2022-02-18 04:53:18 -08:00
nobelj
df4a101c0e qcacmn: process tx monitor per ppdu status buffer
Add skeleton code for handling tx monitor per ppdu status buffer.

Change-Id: Idfb4e038007e0a45cb1a4805270453cc01cd986e
2022-02-18 01:27:43 -08:00
Pavankumar Nandeshwar
e157e0df4e qcacmn: Flush dp cached frames only for mld peer
Flush dp cached frames only for mld peers and legacy peers, as
link peers don't need it.

Change-Id: I19a27c5810a1fec6a62bfe5a6377073dc382fb4c
CRs-Fixed: 3131405
2022-02-17 09:40:38 -08:00
Ripan Deuri
831995f9ca qcacmn: Add default queue map config message handler
Add default queue map config msg handler. This msg is sent by the target
in response to a default queue map request.

Change-Id: Id08e0b175172614514b9fb2dcabcc5f7f068896f
CRs-Fixed: 3126854
2022-02-17 06:25:05 -08:00
Jinwei Chen
7a60675260 qcacmn: Support TX completion and RX delay tracing for KIWI
Support TX completion and RX delay tracing by Ftrace for KIWI,
Add generic IP protocol packt tracing like ICMP packet.

Change-Id: Ie0c4b1764ce953fd2ed41fc5eea8aa28c8d427d9
CRs-Fixed: 3126080
2022-02-17 05:03:40 -08:00
Jinwei Chen
a2f8cef72d qcacmn: Check DBS capable to determine max_mac_rings
For 1x1 DBS case, host also need to configure max_mac_rings
as 2 and initialize each RX ring, currently host only consider
2x2 DBS case.

Check DBS capable instead of 2x2 DBS capable only.

Change-Id: Ic2d4fda9be245a3d0448b6b87ba8676f41d9187e
CRs-Fixed: 3129165
2022-02-17 05:03:29 -08:00
Devender kumar
95ced9577d qcacmn: Add support in IPA datapath for 2X_PDEV
2x_pdev changes are include for support new IPA API's
and change the existing API's argument to support new
parameter which is ipa handle, create a new API to get
the IPA hdl from IPA component in DP

Change-Id: I3d2b378620dbd1e64d295623534126e0eebc2d28
2022-02-16 16:56:50 -08:00
Harsh Kumar Bijlani
cc4bde4708 qcacmn: Use atomic variant of qdf_mem_malloc for vdev stats
When kernel calls driver callback to get stats, dev_get_stats()->
ndo_get_stats64() .Host driver allocates memory using
kmalloc (size, GFP_KERNEL) routine,
but as ndo_get_stats is under RCU lock but not in interrupt
context(in_irq = 0, in_interrupt = 0, irq_disable = 1),
qdf_mem_malloc () uses ‘GFP_KERNEL’ to allocate memory,
leading to backtrace for sleeping function call from invalid
context.

As per kernel doc
(https://www.kernel.org/doc/Documentation/networking/statistics.rst),
while in ndo_get_stats64 () API, driver should not calling a routing
which can sleep. Use atomic variant of qdf_mem_malloc() to fix this.

Change-Id: I775f53dd1e8165e962321215e65d46142fb3b3cc
CRs-Fixed: 3128647
2022-02-16 10:26:20 -08:00
Vivek
afc1a46abd qcacmn: Define CDP ops and DP context for SAWF
Adding SAWF ops for CDP and adding SAWF context
to DP peeer.

Add calls to initialize DP SAWF peer context
when DP peer is created.

Change-Id: I7efb89ae18a28c8b070ad9fcee7754553caa7ff3
CRs-Fixed: 3118160
2022-02-15 18:50:33 -08:00
Jinwei Chen
9e68866ec2 qcacmn: Add reo error code 0 processing
Add REO error code 0 processing in REO error path to
handle invalid peer case.

Change-Id: Ie060987850917711c484ad9b8ce1d69e1fce1bed
CRs-Fixed: 3125131
2022-02-15 18:50:27 -08:00
Rakesh Pillai
595926af77 qcacmn: Handle monitor buffer allocation failure
Currently the monitor buffers allocation is attempted
for 2 RXDMA monitor status/destination rings.
For certain targets, eg KIWI, there is only one RXDMA
monitor status/destination ring, and the monitor buffer
allocation for the second ring fails. This return status
is not handled properly.

Fix the monitor buffer allocation to use the number of
rxdma rings from cfg context and handle the return status
properly.

Change-Id: I86718dbd790d96d794963b17a4c9bdf32792d854
CRs-Fixed: 3128299
2022-02-15 17:28:24 -08:00
Harsh Kumar Bijlani
aad4011dcc qcacmn: Add get functionality for HW vdev stats config
Add get functionality for HW vdev stats config

Change-Id: I9dece842be423eb77ff177ea4aae71b0e0320e1e
CRs-Fixed: 3092109
2022-02-14 07:12:31 -08:00
Naga
03c268ac2d qcacmn: Fix to receive correct buffer address
Fix to receive correct descriptor buffer address
for tx monitor

Fix to send correct filter settings enabled

Disabled default filter display log level to debug.

Change-Id: I7ca1b1110cdcb10ca65ab8c414c19a81f1f4d331
CRs-Fixed: 3121965
2022-02-14 07:12:25 -08:00
Amrit Sahai
0d99e0240d qcacmn: change the log level to debug for monitor filters
change the log level to debug for monitor filters

Change-Id: I9f00be2de4abc9f62f8e370292844884d429872f
2022-02-14 07:12:19 -08:00
Harsh Kumar Bijlani
ebe4f9cfd7 qcacmn: Specify vdev_id in bitmask format for HW vdev stats reset
Specify vdev_id in bitmask format for HW vdev stats reset instead
of directly specifying the vdev_id.

Change-Id: I6e3cecdc83d01ecdfdeca3236e94cc91c57511ef
CRs-Fixed: 3128590
2022-02-14 02:43:59 -08:00
Harsh Kumar Bijlani
4645b94dbc qcacmn: Disable MO filters for enhanced stats and smart monitor
MO stands for Monitor Other which is a filter setting specified by
host to hardware to receive TLVs for non-associated clients.

In case of enhanced stats and smart monitor, non-associated clients
are not considered and therefore disable filter settings for MO for
these features.

Change-Id: Ic533072ff668c7ab54188101a889882c4ee4ba4a
CRs-Fixed: 3123784
2022-02-13 23:25:42 -08:00
Amir Patel
e9abac8dc3 qcacmn: Fix memleak issue
Fix memleak issue from pktlog

Change-Id: I4665ce3891c94142aa27349f13669340036b6f98
CRs-Fixed: 3129139
2022-02-12 10:10:35 -08:00
Santosh Anbu
5f86d05c40 qcacmn: Support Multi AST delete service bit info from FW
Add change to fetch and save the WMI service capability of FW to
support multi AST delete using service bit

Change-Id: Iba1af7c230574ae68086357cbb49ae3ca3d944e4
CRs-Fixed: 3118892
2022-02-12 03:16:06 -08:00
Santosh Anbu
83d13e1ffd qcacmn: Support multi AST delete WMI command
Add change to support multi ast entries deletion.

Change-Id: I74b9000c6949d7455da5eb54678e976ab1b9bb20
CRs-Fixed: 3124258
2022-02-11 22:30:17 -08:00
Pavankumar Nandeshwar
9979d1a189 qcacmn: Initialize txrx_ref_handle for whunt bypass
Initialize txrx_ref_handle for whunt bypass,
Which is complaining use of uninitialized txrx_ref_handle,
as it is not able to detect that txrx_ref_handle is
populated from another API.

Change-Id: I0f69cf4c8442a5655559622a5825d7af35b9ae5e
CRs-Fixed: 3127788
2022-02-11 04:13:31 -08:00
Pavankumar Nandeshwar
d5a07afa5d qcacmn: WAR for invalid length buffers in wbm rx error path
WAR for wrong length in first msdu in wbm rx error path while
handling scatter gather buffers. Get the msdu length from the
last buffer instead.

Change-Id: I869391ef5ca7005dce972013679c2143be836ecb
2022-02-10 01:38:15 -08:00
Varsha Mishra
6f6afd5755 qcacmn: Add code for ccmp decap
After ccm demic, remove ccmp header
In this TLV length worth of data needs to recopied.

Change-Id: I964167396a3c93b09c27b5acedb53638d8ff2baa
2022-02-10 01:38:04 -08:00
Harsh Kumar Bijlani
b934da0701 qcacmn: Correct computation of retry_mpdus
Correct computation of retry_mpdus

Change-Id: Ic1c3ecb458dd371a46161e87727b35016bc78fb4
CRs-Fixed: 3115325
2022-02-10 00:17:16 -08:00
Harsh Kumar Bijlani
d8e05be641 qcacmn: Changes for vdev and pdev stats
Changes for vdev and pdev stats as per the new peer stats
re-organization architecture.

Change-Id: I48f9fb4b0915c40f4add83f2e2dd074cc97874fd
CRs-Fixed: 3092123
2022-02-09 11:55:12 -08:00
Harsh Kumar Bijlani
e8082534bd qcacmn: Changes to get and reset peer stats
Changes to get and reset peer stats as per the new peer stats
re-organization architecture and taking MLO scenario into
consideration.

Change-Id: I1c49e11d502585cc955ad087ffe3a606be23d83e
CRs-Fixed: 3092123
2022-02-09 11:55:06 -08:00
Harsh Kumar Bijlani
230d6714b6 qcacmn: API changes for printing of peer stats
Make changes in the APIs for printing of peer stats by passing
the buffer holding peer stats along with the peer.

Also define macros for peer stats aggregation as per the peer stats
re-organization architecture.

Change-Id: Ia03cdb145de7e7c3355463ac31313edd863dfd2b
CRs-Fixed: 3092123
2022-02-09 11:54:59 -08:00
Harsh Kumar Bijlani
ce45e71913 qcacmn: Update stats in monitor peer in Tx HTT and Rx monitor path
Update stats in monitor peer in Tx HTT PPDU completion and
Rx monitor PPDU indication path.

Change-Id: Icfeb49fc6f1fa2c1f2648a9b4576f31a927c7ecd
CRs-Fixed: 3092123
2022-02-09 11:54:53 -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
Harsh Kumar Bijlani
27e9e64532 qcacmn: Changes for delay and jitter stats
Delay and jitter stats are placed in struct dp_txrx_peer.
Make changes accordingly for allocation, fetching and clearing
operations of these stats.

Change-Id: Ic9b9e48467741072806000f4d1b3aa8e5c65d508
CRs-Fixed: 3092123
2022-02-09 11:54:23 -08:00
Harsh Kumar Bijlani
eee813ad02 qcacmn: Initialization of stats in txrx_peer and monitor_peer
* Initialize stats in dp_txrx_peer and dp_monitor_peer as per
  the stats re-organization.
* Update peer calibrated stats on every timer expiry of 1 second.
* Define APIs to reset monitor_peer stats and to fetch rdkstats_ctx
  from monitor peer.
* Place check to make sure that monitor peer related APIs are
  are called only for legacy peer or MLO Link peer.
* Update peer based pktlog flag, tx and rx capture feature flags
  in monitor_peer.

Change-Id: Idadbe19e85d4a9fdf77fb6dabe0c8a4952b024b8
CRs-Fixed: 3092123
2022-02-09 11:54:14 -08:00
Harsh Kumar Bijlani
148f220408 qcacmn: Segregate stats among peer, txrx_peer & monitor_peer
Segregate the stats among dp_peer, dp_txrx_peer and dp_mon_peer
structures.

Segregation is done as per below:
 * Move stats updated in per pkt path to dp_txrx_peer
 * Consider stats updated purely in per pkt path as per_pkt_stats
 * Consider stats for which there is an alternate path of
   updation as extd_stats
 * Move delay stats and jitter stats to dp_txrx_peer
 * Maintain calibrated stats in dp_peer
 * Move rdkstats_ctx from dp_peer to dp_mon_peer
 * Move invalid peer from dp_pdev to dp_mon_pdev

As per the above segregation, if there is not support for
alternate path of stats updation, then stats in dp_txrx_peer is
combination of per_pkt_stats and extd_stats and dp_mon_peer
does not hold any stats.

If support is there, then dp_txrx_peer holds only per_pkt_stats and
dp_mon_peer holds extd_stats.

Change-Id: I2eb81d1b93a178985c05ff4f6557a173cc8a262d
CRs-Fixed: 3092123
2022-02-09 11:54:07 -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
Pavankumar Nandeshwar
826ec6b4f5 qcacmn: use txrx_peer in wds APIs
use txrx_peer in wds APIs instead of main dp peer

Change-Id: I3d05de8c29c1ee012405ca2ab22aec3876956bf1
2022-02-09 11:53:49 -08:00
Pavankumar Nandeshwar
04bb406179 qcacmn: use txrx_peer in defrag and rx error paths
Use txrx_peer in defragmentation and rx error paths instead of
main dp peer.

Change-Id: I95bb2f672e49d0f6ddb94a093688b0fbce5e373d
CRs-Fixed: 3095637
2022-02-09 11:53:43 -08:00