Enable the interrupt based processing in monitor mode
for WCN7850, by enabling MSI interrupts for rxdma
monitor destination ring.
Change-Id: Ia3c4456d28ed58c8ef49a7aa8e711076fbdf9415
CRs-Fixed: 3094129
Stats avg_rx_rate and last_snr for peer are updated in Rx PPDU
indication path. Logic for updation of these stats is incorrect.
Correct the computation of these stats.
Change-Id: I276d0d6c81d45818bf771c3c0565fe4bb259c49d
CRs-Fixed: 3091679
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 WCN7850, the tlv header width is 64-bit and the tlv header
start is 8-byte aligned inside the monitor status ring desc.
Add changes to parse the monitor status ring TLV according
to the TLV header width.
Change-Id: I19860b871abbc3037174b9d0ae5ed6e52b1eb736
CRs-Fixed: 3084443
In WCN7850, there is only one common RXDMA dst ring for
both the mac.
Add changes to process the common RXDMA dst ring for
status TLVs corresponding to either MAC monitor status
ring. Also use arch ops to get rx_desc from sw_cookie.
Change-Id: Ia2c004755bc4389b587d995286093a519b995cab
CRs-Fixed: 3084442
WCN7850 has only one RXDMA DST ring, as opposed to other
lithium family chipsets, which had 2 RXDMA DST ring.
Refactor the code to pick the number of rxdma destination
rings from CFG context.
Change-Id: I20d475c02690043e969bc7a78605809b8c6814ae
CRs-Fixed: 3084440
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
Add 2 hal soc ops, hal_msdu_desc_info_set and
hal_mpdu_desc_info_se for berilliyum datapath.
Attach hal_rx_msdu_ext_desc_info_get_ptr_be to its function
pointer.
Get reo queue descriptor address as a 5 byte value as in
beryllium datapath it is being obtained from rx packet tlv.
Change-Id: Ia58597384e1a3d5eec493b865a88bab4f209502d
CRs-Fixed: 3084532
Use the tracepoints to trace delayed register write, ce
tasklet scheduling latency, tx, and rx packets.
Change-Id: I63a89276177a9d0466dcb0c831eeb8e938a2bf79
CRs-Fixed: 3081870
Use chip ID and destination peer to determine the target soc
and partner vdev for Intra-BSS in MLO case.
Change-Id: I709c52e74426c5e81b50c8063cad7669c0e7002d
Currently is_assoc_link flag in cdp_peer_setup_info just means first
link peer during MLO connection, but usually assoc_link is the
link which initialize MLO association and it will be the primary_link.
this introduce confusion with another flag is_primary_link.
Change it to 'is_first_link' in cdp_peer_setup_info
Change-Id: I8d14da73e6a3bbc39a4a527d6c0aa5667255e995
CRs-Fixed: 3090270
In flow control code switch logic break statements are not used
intentionally, but compiler is treating this as error.
So to avoid compilation error add fall through comment.
Change-Id: Ic79b75c48554182fba7c4c0f3885e3a44347e2e7
CRs-Fixed: 3090182
Add function pointer to update stats for LI and WKK
Add new fields in structure cdp rx stats
CRs-Fixed: 3071271
Change-Id: I6a1d7afbdfe47d171335d55bf66d210d785f5a03
Add function pointer and initialize with function
to update stats for WKK
Add new fields in structure cdp tx stats
CRs-Fixed: 3071271
Change-Id: Ib1fd867e414b8a61cff4f462434c51541f925f62
Moving HTT parsing to common file dp_mon.c
Initialize function pointer to stats ind handler for BE
CRs-Fixed: 3071271
Change-Id: I08fb98f8dbed075c3b49baebca399771bfb5077c
Memset Rx ingress stats of pdev to 0 when user makes a request
for ifconfig output for radio.
Also correct the computation of rx_errors stat for ifconfig radio
output.
Change-Id: I78110602b939db0117cf26ca0f8f70cd1ef7b1e8
CRs-Fixed: 3088982
In the case of MCC due to low power mode atomic operation in
accessing the bank is resulting the crash.
Fix crash by using spinlock for WIN and mutex for MCC.
Change-Id: I5bb49cbed32e41ad88bfaeb24496adb180e37551
Currently dp_mon_register_intr_ops is defined conditionally
using DISABLE_MON_CONFIG macro but function call is independent of
DISABLE_MON_CONFIG which may cause compilation issue when
DISABLE_MON_CONFIG is disabled.
Fix is to add void function definition when DISABLE_MON_CONFIG
is disabled.
Change-Id: I5f0bafa1aa3560a5828500a687b8b11178ab945b
CRs-Fixed: 3084193
Offsets used by host for HTT stats are not aligned as per the
structure declaration given in file htt.h .
Make change to use the correct offsets to get the correct stats.
Also make change for byte count computation.
Also make cleanup changes for FR65817.
Change-Id: I8bc6164cc4994c49536d7277779f25b258be1592
CRs-Fixed: 3082742
Refine dp pdev vdev stats updating function to non-inline to avoid kasan
building failure.
Change-Id: I896f28831198632c61735ccc10ed4aedb30a8232
CRs-Fixed: 3085365
in some corner cases (ex: SG frames are received) we
do not decrement quota or num_pending and go and fetch
the next descriptor, chances are ring may not have valid
descriptors at that point of time hence added this sanity
check.
Change-Id: I6994cc69c35de6bed7a71adca0a1d66ed5c94d3c
tso_desc is assigned to msdu_ext_desc in dp_tx_prepare_desc
for TSO packet even before msdu_ext_desc is configured which
could result in NULL pointer dereference.
Fix is to set the tso_desc and tso_num_desc in msdu_ext_desc
post dp_tx_prepare_ext_desc.
Change-Id: I62279c94ea7037b3f6a92644ae7eb6a5e63631f6
CRs-Fixed: 3083846
Define the interface for Host and FW communication required for
configuration of HW vdev stats in BE architecture and add handler
for vdev stats received from FW.
Change-Id: I5f6a703596bd1fbb5e27e6261befda25aa0c3e12
CRs-Fixed: 3067843
Following peer stats are updated in per packet Rx path:
to_stack
multicast
broadcast
In BE architecture, HW provides the support for basic vdev stats and
hence per packet stats updation of above parameters can be done only
when enhanced stats is enabled or HW vdev offload stats is disabled.
Avoiding per packet stats updation reduces CPU load and improves KPI.
Change-Id: Id7c11c025a8464951b615a7f7b006ce61db487fc
CRs-Fixed: 3067843
Following peer stats are updated in per packet Tx completion path:
comp_pkt: Pkt Info for which completions were received
tx_failed: Total Tx failure
In BE architecture, HW provides the support for basic vdev stats and
hence per packet stats updation of above parameters can be done only
when enhanced stats is enabled or HW vdev offload stats is disabled.
Avoiding per packet stats updation reduces CPU load and improves KPI.
Change-Id: I7090d1a1ce0a882236e3310e3e9517149cbb146b
CRs-Fixed: 3067843
In BE architecture, HW provides basic vdev stats support for upto
48 vdevs. For each vdev, there is vdev_stats_id which represents the
id of this vdev on HW. This vdev_stats_id is assigned by host and
is conveyed to HW at the time of REO TID Queue setup for the peer.
Add logic for allocation and deallocation of vdev_stats_id and
convey this id to HW.
Change-Id: If5611bf54d057ccf71c6444b5c79a26eb28df87e
CRs-Fixed: 3067843
Add configuration at SOC level for hw vdev stats in BE architecture.
Following config parameters are added:
vdev_stats_hw_offload: option to enable/disable hw vdev stats
hw_vdev_stats_timer: timer duration for hw vdev stats
Change-Id: I8cbd2b6a7378d8a9e7de920a3a6fdff0cf7785fe
CRs-Fixed: 3067843
In the case of RAW mode, VAP parameters encap type, dscp_to_tid map id
and cipher are not updating in bank register.
Added a API to update vdev param.
Change-Id: I702bee563e7451f403fa32292bf20680cd66e213
CRs-Fixed: 3078687
Due to DP flow control network queues are stuck in
paused state and not getting reset even after new connection.
This is causing DHCP packets to be dropped and resulting
immediate disconnection after every connection.
Fix this by properly pausing and unpausing the AC flow control
based network subqueues during disconnection/connection events.
Change-Id: I280e704d5a01b19d180c32aaa272c0cb731f8c0e
CRs-Fixed: 3078745
In ME6 we are currently using a workaround to send the native wifi packet
through the exception path, as the older HKv1 hardware didn’t support
single packet AMSDU. Since, the hardware is supporting this starting
from HKv2, we are sending ME packets as normal packets to FW with
DMS indication in Peer based meta for Beryllium.
Change-Id: Ic154b438df2c811c845e7c2eaadf252985d419ad
This change will enable packet logging for the fragments
from RX monitor status ring and send it to the pktlog module
for post processing through WDI event.
Change-Id: I283a20e7d0fa1f9b88223a989beda529beff6718
CRs-Fixed: 3074184
Whenever firmware receives the sync interrupt, it would
update the MLO offset to the scratch registers. Additionally,
firmware also sends a HTT message.
The values from the HTT message are copied into two structures:
1. into the dp_pdev structure, for monitor mode usage
2. into the scn structure for updating the pktlog header
A new WDI event is introduced for MLO timestamp sync into
pktlog header. Host sends the WDI event once it receives
htt msg and the data gets parsed in the pktlog handler and
eventually pktlog header gets updated with those values.
Whenever pktlog memory is being filled, the latest value from scn
structure is filled into the pktlog header. Upon receiving a new
HTT message, the value in the scn structure is updated and
subsequently into the pktlog records as well. All the 8 bytes
from the HTT message are required to calculate the MLO timestamp
offset. The calculation of MLO timestamp offset is to be taken
care by the PKTLOG parsing script.
Change-Id: If1d40b4a889e58b358f0feae692958bca2b8e1de
CRs-Fixed: 3074184
- A new pktlog mode called "hybrid", is added for QCN9224 only.
- Create WDI event for hybrid mode
- Add dummy APIs for monitor filter setting
- Send WMI_PKTLOG_EVENT_HYBRID_TX to FW for umac TLV subscription
Change-Id: I47f4e14bfc766f29a0ab4a8c07ab19e0d919e66b
CRs-Fixed: 3074184