With new configuration changes for enable_peer_extended stats, update
code to peer_extended_stats naming for clean codebase.
Change-Id: I97a7ee331042232098382683fefebd05e6b099c3
CRs-Fixed: 3149920
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
Add support to change the tx_desc value to 65536. Some changes
to make the function argument as u32 type us made
Change-Id: I7cbde1b7ed4ab4e278c25c1ecfa94b7f673197f2
CRs-Fixed: 3130833
Currently HW TX queue HP value is updated for every TSO segment enqueue,
as a part of optimization update HP only for the last segment.
Change-Id: Ibe349a1e6f55932bf780e1f755f13841078a493f
CRs-Fixed: 3138142
The per packet info feature can be enbaled to support enhanced
stats independent of mesh mode.
Change-Id: I852e7a958c520901b6f418d30deb53fa2f68fb68
CRs-Fixed: 3079000
Enable usage of delta_tsf for SAWF. This will be used to compute tx
delay. Also, add support to update sawf stats in tx completion.
Change-Id: Idab7fbd5217175167ecdeee21cf5dc9daf1415d6
CRs-Fixed: 3135773
Move the stats parameters from the dp_peer which are used
in per packet path to txrx_peer
Change-Id: Ieb68b6950740791b37bbd2bfdc4815c3d7bc4834
CRs-Fixed: 3095637
Tx descriptor is not being freed and put back in tx desc
pool for a long time. As a result, system is not going
into suspended state.
To find this descriptor, during dp_bus_suspend and
dp_runtime_suspend, parse through the descriptor pool to
check for any descriptors not freed for a long and trigger
self recovery when found.
Change-Id: Id97c5c8537c9bec922f4e254b5bf094505ee61ff
CRs-Fixed: 3109868
Prefetch TX HW desc, SW desc and SKB in pipeline fashion in Tx.
completion path.
This improves the UDP DL CPU idle% by ~4.5%
Change-Id: I48096e996cd835321ce2681d3981fa94c7189f54
Multicast support for MLO
1. Following functions are newly added.
dp_rx_igmp_handler()
dp_tx_mlo_mcast_handler_be()
dp_rx_mlo_mcast_handler_be()
dp_mlo_get_mcast_primary_vdev()
Change-Id: If215f843369e6e2621ef302b924e524c86f0d30b
In SAP mode, intrabss forwarding can happen when system
suspend is in progress. This could potentially result in
a scenario where SW2TCL HP update goes through after
WOW_ENABLE command is sent to FW.
Fix is to check for system PM states and do an explicit
system wakeup if tx packet gets enqueued to SW2TCL after
wow is enabled. Flush the SW2TCL HP on system resume.
Change-Id: I8dcd108b0dc1d703168f2f7a0ef0627e4dc0b103
CRs-Fixed: 3087727
Use the tracepoints to trace delayed register write, ce
tasklet scheduling latency, tx, and rx packets.
Change-Id: I63a89276177a9d0466dcb0c831eeb8e938a2bf79
CRs-Fixed: 3081870
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
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
PATCH[7/7]:
This patch consists following changes:
-Conditionally compile all monitor destination ring related code
Macro used QCA_MONITOR_PKT_SUPPORT
-Add QCA_ENHANCED_STATS_SUPPORT macro to conditionally compile
enhanced stats support
-Use QCA_MCOPY_SUPPORT and QCA_TX_CAPTURE_SUPPORT macros
to conditionally compile MCOPY and Tx capture features
respectively
-Use QCN_IE macro to conditionally compile BPR
feature
-Use QCA_ADVANCE_MON_FILTER_SUPPORT macro to conditionally
compile advance monitor filter feature
-Fix vdev attach issue for special and smart monitor vap
-Fix status ring initialization issue.
Change-Id: I0deaa28a9a54bf34b0f41e6dd510fdd8d4992db2
CRs-Fixed: 2983780
Add support to calculate uplink delay on a per vdev basis.
The delay calculated excludes bus delays, where packet
enqueueing time and complete time are fetched from HW release
ring.
Change-Id: I4bbcbf28b197f7a87cb822a841f1f957ebcf063b
CRs-Fixed: 2958833
Move DP TX target specific functionality to dp/wifi3.0/be
and dp/wifi3.0/li folders. DP Functionality common to both lithium and
beryllium targets stays in dp/wifi3.0.
Change-Id: I3497284153e2ea30a9cb1faf05bd41422329b804
CRs-Fixed: 2891038
Add the history support to log Tx descriptors programmed
in Tx and completion HW rings.
Change-Id: I60954c93e2595e7dad1251c459eed8afc761e917
CRs-Fixed: 2924614
Currently, excess logging is causing a crash when enqueuing
of Tx MSDU descriptor to HW failed.
Rate limiting the log messages to avoid the crash.
Change-Id: Ibb230ce03c23518b6f7feda61a49bf155c7ddc69
CRs-Fixed: 2933002
Refactor WLAN_FEATURE_PKT_CAPTURE_LITHIUM to WLAN_FEATURE_PKT_CAPTURE_V2
to remove hardware name from compilation flag.
Change-Id: I5a30b33d8bd6065d12e7c89c666c2f0cab66344e
CRs-Fixed: 2869827
In cases like Tx capture or per packet info, need to unmap
before skb is touched. Add wrapper function to do the same.
Change-Id: I0d13b2d90c80972f346f85960b1297511771516b
Use macros like dp_cdp_debug, dp_cdp_err, dp_cdp_info to
print logs for QDF_MODULE_ID_CDP
Change-Id: I550eefa82c3417b8bf83378d4a9c6f382098fea6
CRs-Fixed: 2855937
Low memory profiles like 256M and 16M profiles support
only NSS Wi-Fi offload mode and HOST data path APIs are
not used in NSS offload mode
Disable HOST data path APIs which are not used in both
NSS Wi-Fi offload mode and in HOST mode (in NSS offload mode)
CRs-Fixed: 2831478
Change-Id: I6895054a6c96bd446c2df7761ce65feef662a3cc
FW uses CCE rule to exception all mcast/bcast frames. Ast_idx
override does not help in sending them to TQM directly.
Change-Id: Iad6c1e8073f5c5d0513adb7097d5024177b7b7f5
currently qdf_nbuf_len is being used to get the length of
the tx pkt, but this API also interprets the nbuf CB field
to adjust the length if extra_frags are present.
The concept of extra_frags is applicable only for legacy
drivers but in lithium as cb is not reset in the driver the
qdf_nbuf_len API is mis-calculating the length if extra_frag
field in cb is set by any network stack protocol.
To avoid this qdf_nbuf_headlen API is used to get the length
of the TX pkt.
Change-Id: Ie1e0b4b2168daf93ae77f4c995f5c3476a27b433
Use AST override feature to send out multicast packet in
4 address format. Pass per packet peer_id from osif layer.
Change-Id: Ic86120169c89e7972caa3cc8c967de72670314d0
CRs-Fixed: 2775051
Drop frame if it is not for the vap, to which
client is connected.
Enable this check only for ap.
Change-Id: I33d7eb79267490bdb8697e4e45f789e9f6279f0e
CRs-Fixed: 2756304
dp_tx_pdev_detach API takes care of flushing
tx descriptors and multicast enhancement mem
cleanup
dp_pdev_deinit takes care of cleaning up the
above actions and dp_tx_pdev_detach is simply
a redundant piece of code
Hence remove dp_tx_pdev_detach API and call
dp_tx_desc_flush directly from dp_pdev_deinit
CRs-Fixed: 2769303
Change-Id: Ic798793e81eefc7dc905ca7552fdca13e9fddd8c
As part of the VoW IGMP improvements, which deals with
conversion of igmp packets to unicast packets, the
following changes are done when the new feature is enabled:
1. IGMP/MLD packets with special addresses (addresses not
part of any multicast group) will be converted to all
existing clients of the AP. These packets will be
directly fed to igmp multicast to unicast conversion
module.
2. The IGMP/MLD packets with group specific addresses will
first go to multicast enhancement module, where they
will be allowed to pass and will be converted to unicast.
3. The new feature will be enabled only when multicast
enhancement feature is enabled, which will be ensured
at the configuration level.
FR : 61063
Change-Id: I2fd5a67766c806432fbe1a12cb9654a3600100f5
In tx desc store vdev_id to avoid unprotected access of
vdev memory.
In tx path pass VDEV as argument to all APIs
In completion path get vdev from peer as vdev reference
in peer is protected with reference, in places where peer
is invalid get vdev object using vdev_id stored in tx desc
with a reference count
Change-Id: I364ebb51143218872c0bc6f856772ab1df00bb17
Currently, when an extension descriptor is used during TX datapath, we
use HTT metadata length + msdu extension descriptor length, even we
do not fill HTT meta data. This is inefficient and hardware will end up
doing DMA of extra HTT metadata, even when not needed.
Include length of metadata in TCLdata command only if HTT metadata is
filled in.
Change-Id: Idd1b053c1c6bd8b39880efe5743980667454df0d
CRs-Fixed: 2738733
Tx desc flow pool for the vdev is not deleted as part
of disconnection due to tx_desc pending to be processed
in tx comp ring. Hdd_stop is triggered immediately after
this causing dp vdev detach. In parallel, the tx desc
from the tx comp ring is processed, wherein stale vdev
address is derefernced to get dp soc causing page fault.
Fix is to reset tx desc by setting the vdev to NULL as
part of dp_tx_delete_flow_pool and also reset count to
zero in dp_tx_comp_handler before ring desc process loop.
Change-Id: I66f718668ba84f89106d09e624d9593f89479e55
CRs-Fixed: 2683874
Do a logical split of dp_soc_attach and
dp_pdev_attach into Allocation and initialization
and dp_soc_detach and dp_pdev_detach into
de-initialization and free routines
Change-Id: I23bdca0ca86db42a4d0b2554cd60d99bb207a647
Lot of checks in Tx completion path are for special handlings
such as when ol stats are enabled some protective debug checks etc..
Add a logic to fast free of buffer at transmit completion.
If extended stats not enabled(Typically needed for enterprise cases)
do the buffer free faster. This is controlled through a flag.
Change-Id: I04873b5e3643d8e93e5b248fcaf23504dcb7624f
For 4 core CPU system, Tx access can be made lockless by associating
one Tx ring per CPU. Three Tx DATA rings and one SW2TX command ring
can be used for sending data to Tx.
Change-Id: I6e38cad52dffa4e46ff2b736cd6b949d061fa2a4
Enable SW2TCL_CMD ring for data on QCN9000, QCA8074 V2/V1
and IPQ6018 targets.
Enabled 4th Tx ring for data enqueue to HW.
Transmit completions for packets from CPU0 and CPU3 are routed to
WBM2SW Completion ring 2.
WB2SW completion ring2 is mapped to CPU3.
Change-Id: Ied4c4704e1f8623e909ad45c547a611de26c7ec5