Commit Graph

2969 次程式碼提交

作者 SHA1 備註 提交日期
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
Shwetha G K
56d67b3e32 qcacmn: Configure monitor ring for CFR on Waikiki
Changes to configure the rxdma ring for CFR. Move existing
API of legacy chipsets to dp_mon_1.0 and add Waikiki
specific API in dp_mon_2.0.

CRs-Fixed: 3231265
Change-Id: Id7276bb7bb7f58461c7e10a0695c3e78a1c39b0c
2022-07-05 03:18:57 -07:00
Amir Patel
e8e39b89fc qcacmn: Set RX_HDR TLV length to 64 for monitor mode
Current RX_HDR length for monitor mode is 128,
Set RX_HDR TLV length to 64.

CRs-Fixed: 3234813
Change-Id: If0c1caf1ca29a8417c7e816c83dbff9e580347b2
2022-07-04 10:16:23 -07:00
Amir Patel
59b643e25f qcacmn: Use qdf flex mem to allocate rx ppdu info
To avoid fragmentation, use qdf flex mem framework
to allocate rx ppdu info

CRs-Fixed: 3230970
Change-Id: I2318f6c5f33e5337f6398263d6717da698be7c92
2022-07-04 01:14:15 -07:00
Nandha Kishore Easwaran
5f4c385251 qcacmn: Subtype filtering for selfen frames
Add subtype filtering support for self gen frames in
tx monitor.

Change-Id: I6bd81a4f096d9e23b6c01f4bb421443ac86a87fa
CRs-Fixed: 3230710
2022-07-03 23:25:00 -07:00
Srinivas Girigowda
6d056b9959 qcacmn: Add support for Mango device id
Add support for Mango device id.

Change-Id: I2b32a39e258caab408723db77f132af364dc6b04
CRs-Fixed: 3232512
2022-07-02 09:55:56 -07:00
Rakesh Pillai
d5536dade3 qcacmn: Add history to track monitor status buffer
Add history to track the monitor status buffer entry.
Currently the below 3 events are added:
- Monitor status buffer reap from ring
- Buffer enqueue to a local list
- Buffer dequeue from local list for parsing.

Change-Id: I7c17070ffee25a9a9dc4af0b48bfa8808e18887d
CRs-Fixed: 3225647
2022-07-01 16:24:22 -07:00
Nandha Kishore Easwaran
8dd2d4f808 qcacmn: Fill up the lite monitor vdev
Fill up the lite monitor vdev which is needed to deliver the
tx monitor frames to the configured vap.

Change-Id: I298abde095fef44e67a741f48f2f73a6998efc7a
CRs-Fixed: 3226335
2022-06-30 10:54:40 -07:00
Jeevan Kukkalli
61279b8b22 qcacmn: Properly increment msg word during rx tlv filter config
Properly increment message word variable while forming rx ring
selection config htt message. Message word should point to
appropriate word before calling individual feature config funcs,
this will help to track exact message word position in calling
function.

Change-Id: Iad6c446ac91fdb5be9286f4fa076847e1728dc74
CRs-Fixed: 3219549
2022-06-29 18:53:46 -07:00
Neha Bisht
87596da3e4 qcacmn: Avoid qdf framework for nbuf free in Tx. simple path
Avoid qdf framework for nbuf_free in Tx. simple path.

Change-Id: Ic0a82279586a16f07625fc78d3e07d1a134af3a4
CRs-Fixed: 3224285
2022-06-29 04:31:25 -07:00
syed touqeer pasha
59a8df8159 qcacmn: Handle WDS EXT for WDS STA
Handle WDS EXT for WDS STA

Change-Id: Ia0d6c9a5de5234584f67f5c0ed3208cf33e882ab
CRs-Fixed: 3226240
2022-06-29 02:56:39 -07:00
Yu Tian
fe9866276b qcacmn: Add HW descriptor check before RX TID update
RX TID HW descriptor is first allocated in setup stage. When
failure case happens, it is got freed. This change adds a
check to make sure it's valid before updating RX TIDs.

Change-Id: I1326315b2eca4c50ef9ff5fa887386de4a796eb0
CRs-Fixed: 3227483
2022-06-28 22:30:12 -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
Amir Patel
debe4c7ecf qcacmn: Fix issues from monitor path
a. Fix memleak issue due to RX_HDR not received for a MPDU
b. Compute appropriate packet offset for non-decapped packets
c. Add correct DMA_LEN while adding a frag to SKB.
d. Add debug stats

Change-Id: Ie946f79df94df05789220b97c159c60d608bf1b2
CRs-Fixed: 3213698
2022-06-28 12:17:51 -07:00
Ananya Gupta
e52231c86e qcacmn: Set bandwidth, MPDU retry threshold at peer register
Currently, bandwidth and corresponding MPDU retry threshold was
taken from tx packet status in per packet to update peer stats.
With this change, set bandwidth and MPDU retry threshold
during peer registration.

Change-Id: Iffd06968246d0b86b26716ae6672e2cd23360c67
CRs-Fixed: 3225479
2022-06-28 04:11:54 -07:00
Shiva Krishna Pittala
f853241025 qcacmn: Interrupt assignment for UMAC HW reset feature
UMAC HW reset feature will be using the last interrupt context in each
DP interrupt combination i.e., on a system with more than 8 MSIs for DP,
UMAC HW reset will be assigned a dedicated interrupt context.
Add the necessary support for the same.

CRs-Fixed: 3163900
Change-Id: I26abd01e4261661ed95e1aa3cb2a774e78b50d9f
2022-06-27 05:29:10 -07:00
Wu Gao
cd9a1b63a3 qcacmn: Fix compilation issue after enabled CONFIG_WDI_EVENT_ENABLE
This change fixed compilation issue when enabled two configures -
CONFIG_WDI_EVENT_ENABLE and CONFIG_REMOVE_PKT_LOG.

Change-Id: I121ea61bd3681b834a36c0bc8017b855897023a4
CRs-Fixed: 3223552
2022-06-25 03:03:44 -07:00
Rakesh Pillai
4b31289715 qcacmn: Skip sanity of sw_cookie in RX error for KIWI
Currently the sw_cookie is validated in RX error path
using the pool_id logic, which is not valid for KIWI target.
Kiwi target has a different logic to assign rx sw_cookie, as
compared to other legacy chipsets.

Hence this sanity of sw_cookie fails always for RX error
packets on KIWI target, and these corresponding buffers are
never released/replenished back. Eventually as more RX error
packets are received, the device runs out of buffers in the
refill ring and induces a backpressure.

Hence disable this sanity check for sw_cookie in rx error
path for KIWI target.

Change-Id: I320fcb268c1fe24695daeb4677af6cc0cbc445ed
CRs-Fixed: 3228792
2022-06-25 03:03:37 -07:00
Tiger Yu
89e38bb46b qcacmn: Remove unused local variable mon_soc to fix compiling issue
Remove unused local variable mon_soc in the dp_pktlogmod_exit to
address the compiling issue when PKT log enabled.

Change-Id: I5de03433603988e6f8125285a58c141551d7a149
CRs-Fixed: 3225370
2022-06-24 02:07:12 -07:00
nobelj
9ed0445e60 qcacmn: tx monitor add support for hw generated response
tx monitor add support for hw generated response

Change-Id: I5e2cd1420051e940f9276e07e7da6ca539dd0d5a
CRs-Fixed: 3205855
2022-06-23 18:01:14 -07:00
Amit Mehta
6b576c65bb qcacmn: Add packet logging support for initial 32 packets
Add packet logging support by registering
Rx and Tx callback functions for packet logging of
initial 32 Tx and Rx packets.

Change-Id: I91b59b7c5f65f505e3ee730c497347be28955128
CRs-Fixed: 3224881
2022-06-23 07:03:56 -07:00
Himanshu Batra
b11cdd3210 qcacmn: Resolve static analysis issue in BE monitor path
Resolve static analysis issue in BE monitor path

Change-Id: I8db589de1a8b80ec35e6135a5c84c9d45785741d
CRs-Fixed: 3214297
2022-06-23 05:17:25 -07:00
Ripan Deuri
26dff6988a qcacmn: Handle PPDU ID format message
This is a generic T2H message in which a target can specify bits and
offsets to extract a parameter from PPDU-id. Use link-id bit and offset
present in T2H message to extract hw link-id from PPDU-id on Tx completion.

Change-Id: I64b7559e88b037e30f52ba0b75ab62349e469d20
CRs-Fixed: 3195432
2022-06-23 01:59:01 -07:00
Yu Tian
7c157e8716 qcacmn: Set BA status to active when receiving ADDBA event
Usually, ADDBA frame exchange is handled by HOST. But when this
is offloaded to FW, an HTT event is reported and HOST only needs
to update RX tid parameters, no need to send addba resp frame again.
BA status update is in addba resp TX completion, so there is no chance
to update this field in ADDBA offload case. This change is used to
set ba status to active to make ba session in correct status.

Change-Id: Iae4a1974cf4b8c55b20862df51b14d5011aefd73
CRs-Fixed: 3201455
2022-06-21 03:13:26 -07:00
Abishek Ganapathy
87190fa5f8 qcacmn: Fix multicast traffic failure in QWRAP repeater
In the case of qwrap repeater, send the original packet on the
interface where it received and send the packet with dummy src
on the mcast primary interface

Change-Id: I08f64559ff2a9430b140c962117d4d71ab684b8d
CRs-Fixed: 3214360
2022-06-20 21:30:42 -07:00
Venkateswara Naralasetty
d5720bc4a3 qcacmn: Skip invalid Rx descriptor access in wbm err path
There is a possibility where host can receive invalid SW cookie
in wbm internal error path which causes invalid rx descriptor
access.

Add a sanity check on received SW cookie to prevent the invalid
rx descriptor access. Also, add sanity check for the duplicate
rx descriptors.

Change-Id: I6400cb1fc067f4bc474f2768c18c8f7ce587fbbe
CRs-Fixed: 3220371
2022-06-20 14:22:18 -07:00
Venkateswara Naralasetty
c92ceccc09 qcacmn: Fix invalid pool_id used in wbm internal error handling
Currenly pool id retrieved from the sw cookie is used in rx buffer
replenish for both buffer type and link desc type in wbm internal
error handling.

In case of wbm internal error with link desc type, pool id can't be
used for rx buffers replenish because pool id notion of rx desc is
different from link desc and this could cause out of memory access
issue.

Fix this issue by using the pool id retrieved from the msdu sw cookie.

Change-Id: I7184571e1f6a67c7266335154121b345fa12b4ab
CRs-Fixed: 3214867
2022-06-20 12:45:44 -07:00
Vivek
f64cf6e11b qcacmn: Add CDP ops to get SAWF stats from telemetry agent
The telemetry agent on certain intervals needs to pull the
SAWF stats from the driver.

Add CDP ops to pull the SAWF stats from the driver.

CRs-Fixed: 3210834
Change-Id: Ibc27059ff13b33acc4e71d3174a0415756dcfc5e
2022-06-20 00:35:47 -07:00
Himanshu Batra
99dbc9ca4b qcacmn: Update peer consumption stats before checking primary peer
In case of MLO, peer consumpiton stats are getting incremented only for
primary peer as the API was called after primary peer check.
Add fix to call the API before primary peer check so that the stats are
updated for all the link peers

Change-Id: I603e7a37564858e030d8f0f5f16792f516728f60
CRs-Fixed: 3222984
2022-06-19 21:17:17 -07:00
Ananya Gupta
8565e7029f qcacmn: Register DP, HTC, HAL modules with Runtime PM module
With restructuring in HIF runtime PM module, modules are
required to register with the HIF runtime PM module. Also,
changes are done in functions of allowing and preventing
runtime PM suspend as part of restructuring.
This change registers DP, HTC and HAL internal modules
with runtime PM module and update HIF runtime PM function
calls with the restructured code of HIF runtime PM module.

Change-Id: I8899a1d3b92a90a05c5eaf4df7609f4008f739f8
CRs-Fixed: 3169372
2022-06-18 23:11:24 -07:00
Karthik Kantamneni
b70014489c qcacmn: Avoid invalid Rx descriptor access in error path
There is possibility of receiving invalid SW cookie
which maps to invalid rx descriptor access, to avoid such
issues validate the SW cookie before using it for fetching
rx descriptor

Change-Id: Ib90a398865c5e0afedd5804615d6df6ad5ee77f6
CRs-Fixed: 3214570
2022-06-17 13:11:11 -07:00
Nandha Kishore Easwaran
debafd9b7b qcacmn: Add subtype filtering support
Add subtype filtering support for tx lite monitor.

Change-Id: I330f98abdfad3b9134f824b794a016dbd46696be
CRs-Fixed: 3219324
2022-06-16 09:15:21 -07:00
Nandha Kishore Easwaran
362d0e1ef1 qcacmn: Check lite monitor condition in handler
Check lite monitor condition in Tx monitor handler function
and correspondingly take action to deliver the packets.

Change-Id: Idf352bd677f00daae0c8e4325ff6661c7a4f854b
CRs-Fixed: 3219324
2022-06-16 09:15:14 -07:00
Nandha Kishore Easwaran
7d3cd845de qcacmn: Add lite tx monitor filter setup API
Add API to iterate through all modes to set setup tx monitor based
features. Also added filter setup function for tx lite monitor mode.
Made additions to filter print functions and added the fields that
were missed.

Change-Id: I20070f75d800199199195f73b1e2a13b428d5672
CRs-Fixed: 3191619
2022-06-15 11:09:06 -07:00
Himanshu Batra
4a668c5271 qcacmn: Add check for ppdu_type while updating peer consumption
Add check for ppdu_type while updating peer consumption time for rx ppdu

Change-Id: If4e24649d4c73d8899dcc7faf34e135dea6e4065
CRs-Fixed: 3220040
2022-06-14 15:06:38 -07:00
Nandha Kishore Easwaran
7f485d5e89 qcacmn: Split tx and rx buffer add function
Split tx and rx monitor buffer add function so that
they can be indivudually called when lite monitor mode is enabled.

Change-Id: I9996d0261f1912237bd6fa45058d410698b9fa28
CRs-Fixed: 3206170
2022-06-14 01:37:47 -07:00
Mohit Khanna
0c558b779b qcacmn: Enable notify-frame feature in FW
Enable bits in WMI_INIT command to let the FW know about host's
capability to support notify frame feature. If the feature is enabled,
host can mark certain TX frames as "notify frames" for hardware and they
need not be sent to FW. FW depends on this capability exchange to decide
whether to install HW rules for frames to be sent to HW.

Change-Id: I7158e79ae0fbdc73a2f4096ae1577337e8291246
CRs-Fixed: 3209399
2022-06-14 01:37:19 -07:00
Yu Wang
a9461beb20 qcacmn: refine the APIs for reap timer of monitor status ring
Since more than one components depend on reap timer of
monitor status ring, add bitmap to record the trigger
sources of the timer and refine the APIs/calling functions
accordingly.

With this change:
When a new start request comes, if the source is
CDP_MON_REAP_SOURCE_ANY, skip bit set, and start timer
if any bit has been set in the bitmap; while for the
other sources, set the bit and start timer if the bitmap
is empty before that.

When a new stop request comes, if the source is
CDP_MON_REAP_SOURCE_ANY, skip bit clear, and stop timer
if any bit has been set in the bitmap; while for the
other sources, clear the bit and stop timer if the bitmap
is empty after that.

Change-Id: Idaa7837c4b93b247ff2236aa5072d309fa9548c2
CRs-Fixed: 3190347
2022-06-13 22:54:46 -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 Mishra
e5a68d302f qcacmn: Add missing stats to dp pdev aggregation
Add missing stats to dp pdev aggregation logic.

Change-Id: I1de2a9afcca8b322a02c455115af8f3705f13207
CRs-Fixed: 3214911
2022-06-13 07:01:11 -07:00
Subrat Dash
ed329bd354 qcacmn: Avoid using smp_processor_id() when preemptible
Call trace is observed in the function dp_rx_per_core_stats_update()
with the following message.

"using smp_processor_id() in preemptible"

Use qdf_get_cpu() as it takes care for disabling preemption.

CRs-Fixed: 3203385
Change-Id: I9761bf707b5ee92c7e0bb698c2825c9369efd7d5
2022-06-11 06:56:47 -07:00
KARTHIK KUMAR T
0e4de411c9 qcacmn: initialize qdf_status param
Add fix for use of uninitialized param, initialized
qdf_status.

Change-Id: I75c2dd8ce8d0edf841fa07ad89db1a1f34efb56e
CRs-Fixed: 3200426
2022-06-11 06:56:35 -07:00
Shwetha G K
d9668fdc72 qcacmn: ppdu_info handling for CFR
Changes to handle CFR information from ppdu_info in
enhanced stats disabled case.

In enhanced stats enabled case, CFR info is handled in
dp_rx_handle_ppdu_stats API.

CRs-Fixed: 3214538
Change-Id: I41ea6e080f5ede661eed06764939fe2feaa6102e
2022-06-10 21:50:53 -07:00
Madhvapathi Sriram
f4bfa6616b qcacmn: Add method to configure TID queues flush
This enables the option to configure when a peer's
TID queue needs to be flushed. This is required to
discard packets that are no longer useful to the application.

Change-Id: I558debff043fc0c8038e5f5f2c815b64c90e1561
CRs-Fixed: 3130422
2022-06-09 19:37:26 -07:00
Amit Mehta
817418566e qcacmn: Add check for duplicate entry
Add changes to check if current descriptor which
is being process is not already reaped. In case
if the descriptor is already process and yet to
be replenished drop the descriptor and continue.

Change-Id: I2c46b7f4e50a27e2566f0ce2d9708cecb26c38e4
CRs-Fixed: 3177257
2022-06-09 05:38:03 -07:00
Ripan Deuri
0ffa79f0a4 qcacmn: Use CONFIG_SAWF macro for enabling HW Tx Delay
Use CONFIG_SAWF macro to prevent linking dp_set_delta_tsf in
low memory profile.

Change-Id: I07b75f893e6d043839225d9b7288823b6ef2f823
CRs-Fixed: 3211426
2022-06-08 17:10:16 -07:00
Manoj Ekbote
b0d3c8ec01 qcacmn: Fix Intra-BSS handling
Don't overwrite the return value yet because there are
other conditions checks that need to return false when
error is detected.

Change-Id: I75a7d61fd665631cfafca7e92cf6a4f346eb0410
CRs-Fixed: 3206749
2022-06-08 11:47:41 -07:00
Tallapragada Kalyan
204b765390 qcacmn: get NAPI scale factor through ini configuration
NAPI scale factor should be configured based on the board
type. for example Hawkeye could have a different scale factor
compared to Alder.

CRs-Fixed: 3212330
Change-Id: Ie0bad6aade9ca9379997aa974154f9fb903ab93e
2022-06-08 09:44:31 -07:00
Sai Rupesh Chevuru
5c0f11603d qcacmn: Check for addr4 valid only in case of first MSDU
In backhaul WDS, Check for addr4 valid only when the
received frame is first msdu.

Change-Id: Ib92ba0fc8b7a651c0c875cdde21f2d5538db2a32
CRs-Fixed: 3214575
2022-06-08 05:09:01 -07:00
Jinwei Chen
242339083b qcacmn: support new htt rx addba and delba msg
Add support for new HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN and
HTT_T2H_MSG_TYPE_RX_DELBA_EXTN handling.

Change-Id: Ie06891092e5bf552bf721404222fb1b0b624ba36
CRs-Fixed: 3208118
2022-06-07 21:21:21 -07:00