With the convergence of SCS and SAWF, do not override the TID
for legacy SCS case. Retain the value obtained using DSCP in
this case.
CRs-Fixed: 3460620
Change-Id: I19502d09f5f37376bac08eb05fcf770c71331e1c
In the LPM case, if the tx desc has been force
freed in the dp_bus_suspend ->dp_find_missing_tx_comp,
then after data transfer resumed, fw may report
tx complete for the same tx desc, and we should
skip it to avoid null pointer access.
The reason why set default vdev_id to 0xff is:
Since in this case, it happned disconnect before
suspend, so the tx desc pool will be deleted and
reinitalized when resume, so the pdev is null in
the force freed tx_desc and vdev_id should be changed
from 0 to DP_INVALID_VDEV_ID, otherwise the below logic
in the tx complete handler will not skip handling
this freed tx_desc.
if (qdf_unlikely((tx_desc->vdev_id == DP_INVALID_VDEV_ID) &&
!tx_desc->flags)) {
DP_STATS_INC(soc, tx.tx_comp_exception,1);
dp_tx_desc_check_corruption(tx_desc);
continue;
}
Change-Id: I5f3ff6fd783893f92a0fd6b3db7457b280fcb1c8
CRs-Fixed: 3447465
WCN6450 is a chip based on Rhine architecture. Unlike LI/BE targets,
chipsets based on Rhine (RH) do not have host facing UMAC HW blocks.
Their corresponding SRNG interfaces are also removed. The functionality
of these UMAC HW blocks is replaced with a software implementation in
the firmware. Communication between the driver and firmware will happen
over copy engine (CE).
Although there are no host facing UMAC HW blocks, the CE hardware used
in WCN6450 expects the host driver to use the TX descriptor (HW) format
of LI targets during TX packet enqueue. Therefore it is required to
create a new pool of TX descriptors (HW) pool for WCN6450 that is used
during TX.
The logic to create/free/init/deinit these descriptors is specific
to WCN6450/Rhine, therefore it is implemented in architecture specific
Rhine code.
Introduce new APIs in struct dp_arch_ops {} to allocate and free
arch specific TX descriptors. These ops will be no-op for LI/BE
architectures.
Also for Rhine targets, allocate/free other TX descriptors like TX EXT &
TSO descriptors as part of the arch APIs.
Change-Id: I452ac69143395881ab8580355a0f75571dc3e929
CRs-Fixed: 3381711
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/li, so fix those issues. In addition, there are a
number of instances where public functions have their implementation
documented instead of having their interface documented, so move that
documentation.
Change-Id: I38f98ebaa5373338cdff68dbde5c0d66780413c2
CRs-Fixed: 3373156
Currently HTT_TX_FW2WBM_TX_STATUS_DROP and HTT_TX_FW2WBM_TX_STATUS_TTL
are mapped to HAL_TX_TQM_RR_REM_CMD_REM which results in the wrong Tx
status print in case HTT_TX_FW2WBM_TX_STATUS_TTL where No ack is received.
So to fix the status log issue map HTT_TX_FW2WBM_TX_STATUS_DROP to
HAL_TX_TQM_RR_REM_CMD_REM and HTT_TX_FW2WBM_TX_STATUS_TTL to
HAL_TX_TQM_RR_REM_CMD_TX to log correct Tx Fail Status.
Change-Id: If125313f6b831ce5ca0f7eec9e8e3f1a03229f16
CRs-Fixed: 3362679
Add ring id info in TX HW descriptor event history,
this helps to map history event to corresponding HW TX
ring in multi TX queue enabled case.
Change-Id: I82dcece76b1342f4086d489ba489da7c20ea6cad
CRs-Fixed: 3294177
Use WLAN_CONFIG_TX_DELAY to enable HW Tx delay for both
SAWF and non-SAWF stats.
Change-Id: I6db7d386c0e3654f53398dcba1db7c5568544b0c
CRs-Fixed: 3262425
- Add support to compute HW Tx completion delay on WKK
- Define arch op to calculate delay
Change-Id: I82567cc781e90fe01dc5a0edfffacd4cde73f652
CRs-Fixed: 3220911
When TX completion is released from FW, dp_tx_notify_completion()
will not be invoked, then TX DCHP ACK will miss
hdd_softap_notify_tx_compl_cbk() which then
WMI_PEER_CRIT_PROTO_HINT_ENABLED with value 0 will not send to FW.
(1) move dp_tx_notify_completion() from dp_tx_comp_process_desc_list()
to dp_tx_comp_process_tx_status(), so that both TX completion release
source FW or TQM case will call it.
(2) clear TX notify flag for intra-bss forwarding BC/MC to avoid
unnecessary TX completion notify.
(3) Set ts.status for release source FW case otherwise it will be value
0 always.
Change-Id: I2bf9900a3d16ba162a83b061f0b96e7d2f79423a
CRs-Fixed: 3178423
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
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
Move the stats parameters from the dp_peer which are used
in per packet path to txrx_peer
Change-Id: Ieb68b6950740791b37bbd2bfdc4815c3d7bc4834
CRs-Fixed: 3095637
Add support to update tsf timestamp on driver entry and
exit in data packet. This helps debug latency issue in
XR usecases
Change-Id: I9c966c1b8cb09dc5eab6104fdad36c19a1d68045
CRs-Fixed: 3090108
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
The following issues are fixed with this change-
1. Sojourn stats were printing incorrect values
2. RSSI values were junk numbers
Change-Id: Ibed73cf370a309bf9db5baad37a0e8261c58463b
Use the tracepoints to trace delayed register write, ce
tasklet scheduling latency, tx, and rx packets.
Change-Id: I63a89276177a9d0466dcb0c831eeb8e938a2bf79
CRs-Fixed: 3081870
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
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
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
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
(1)naming change in HW CC related function
(2)refinement for cookie ID generation regardless of
SPT page address 4k aligned or not
(3)move CMEM size check under cookie conversion macro
Change-Id: Ib32d802f5512e5facfa4130826406943fb3d27f1
CRs-Fixed: 2977304
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