Currently if hash-based routing fails, packets will be sent
with default routing which will result in packet being queued
to REO2SW1 with tlv reo_dest_indication = 1. Host will create fisa
flow with napi = 0 for REO2SW1.
When next packet received with correct tlv reo_dest_indication value
on different REO with flow_index_invalid = 1 and if tuple matches
with earlier created flow, it can result in REO mismatch issue.
To fix the issue if rx_hash is enabled add check for
tlv reo_dest_indication value.
Change-Id: Ib0895ce666cc788a6df8ae3483e0777e84937ef8
CRs-Fixed: 3500655
Currently OSIF calls the CDP API for DP suspend/resume
handler directly.
Move these calls to DP component so that DP component
can handle the suspend/resume related operations for
internal DP sub-modules (which are outside CDP).
Change-Id: I080809904f619260c707cacbcdbf158250320081
CRs-Fixed: 3502507
Currently the CDS layer calls the cdp functions
directly to initialize common DP.
Move these calls to DP component, so that DP
component can handle other DP related initialization
inside the DP component itself.
Change-Id: Ib257ac4f41d468706078cd34a8cbec004a9a622e
CRs-Fixed: 3499726
The number of perf CPU clusters can vary across
different targets. Currently only the second CPU
cluster is considered as the perf cluster, whereas
there can be more than 1 perf clusters.
Fix this perf cluster derivation for interrupt affinity.
Change-Id: Idecc98701e38bd2315846d6500068dcdd8f1309e
CRs-Fixed: 3498023
Logs without meaningful message or values serves no purpose in debugging.
Hence, add more context to the logs.
Change-Id: Ie913f7460356a1550b5252fd72ed5b454c67b3cf
CRs-Fixed: 3492709
Currently, as part of wlan_hdd_stop_modules, direct link config
is not being cleared but hif link state vote is cleared, as a
result when hdd_close_adpater() is called, link state is already
cleared, resulting in crash, as config is still enabled.
To fix this, clearing config as part of direct link context
de-initialization.
Change-Id: I1a5de6f427b5bc4dc4fe4346e53354645ad53529
CRs-Fixed: 3495027
There is a race condition where profile for direct link is set but
hif link was not yet voted up to prevent suspend. Parallelly,
direct link config is cleared in different context causing hif link
to vote down without being voted up which resulted in crash.
To fix this, create a mutex lock and move all the config set
operations inside the lock.
Change-Id: I80924d9ed52a9889a178b98469be15af0454b022
CRs-Fixed: 3490442
Add multi page prealloc pools for TX buffers and CE
TX buffers for direct link datapath.
Change-Id: I8c8be42b0530de39293ad8e45f47e16f90ea7767
CRs-Fixed: 3490109
Add support for sending QMI WFDS misc request to QMI
server on Direct link deinit.
Change-Id: I611625d83719c0f8a7dfbef1d3c8328cb618ef7f
CRs-Fixed: 3454630
Remove the INIT_TX_RX_SUCCESS adapter flag as its
functionality is insignificant after DP componentization.
Change-Id: Ief86ab81c42b767113bde46252246fa8677588ce
CRs-Fixed: 3399329
The following patch removed all usage of the rx_skip_qdisc_chk_conc
member of struct wlan_dp_psoc_context:
qcacld-3.0: Move TC based dynamic GRO logic to DP component
Change-Id I3c6658e8f19a71e548c77ff6fd637148925008d7
Since this is obsolete, remove it.
Change-Id: I13fbc9dd60466800070c968ec6d89ffa16734b5f
CRs-Fixed: 3427563
Currently if the pkt tlvs indicate flow_invalid=0,
there is no sanity done on the SW flow table entry
retrieved using the flow_idx from pkt tlvs.
In case of HW incorrectly sending a invalid flow_idx,
within the range of allowed flow_idx, and flow_invalid=0,
there will be an attempt to aggregate an invalid flow.
This can also trigger a RX ring id mismatch.
In order to mitigate the above issue, verify if the
SW flow table has been populated, before attempting
FISA aggregation.
Change-Id: Idb445c0c5b249d747dbce61f31513ba4a75c26b7
CRs-Fixed: 3412721
Skip the FISA aggregation and drop the frame if the reo destination
indication is zero in the packet TLVs.
Change-Id: I9bd02652bf321202f6b59e6da98fc6959ab93413
CRs-Fixed: 3426355
One of the parameters to the ucfg_dp_config_direct_link() stub
implementation does not match the associated parameter in the
prototype. The stub and the prototype should match, so modify the
stub to align with the prototype, which matches the non-stub
implementation.
Change-Id: If9dda7db2bfbbce94c0356a73b33ae7569337955
CRs-Fixed: 3424788
DP TXRX module is not cleaned when DP Rx thread init failed
To fix this, when DP Rx thread init fails, free DP TXRX module
as part of failure sequence.
Change-Id: I311b84a76036c8dd1e60b9f8c653fc126e031543
CRs-Fixed: 3413933
If roaming is triggered by source CM_ROAMING_NUD_FAILURE,
then per the INI gEnableNUDTracking to check whether
disconnect current connection or not.
gEnableNUDTracking=2, keeping the connection
gEnableNUDTracking=3, disconnect the connection
Change-Id: I0f321dcf5f3fc1bf7d0c93fa0d70bf4770ccaf35
CRs-Fixed: 3412213
Previously, IPA had its default vote which will bump up the SNOC
frequency to 200 MHz. Now IPA has removed its vote which is
causing throughput drop in HE cases for SAP and P2P GO mode.
To fix this, add new throughput level TPUT_LEVEL_HIGH_HE_CASE and
provide ini to set its threshold to increase SNOC frequency to
200 MHz. To enable, set ini BandwidthMidHighThreshold to 7000.
Change-Id: Ica8c640597c37602aea2f5e4ff6b0646c49ff548
CRs-Fixed: 3297833
Currently while updating EAPOL stats, there is no check
for subtype greater than array size, which can result in OOB access.
To fix the issue add additional check for subtype <= EAPOL M4 to
avoid OOB access.
Change-Id: I906ce9166b7a0202335403c77dc6bcd135dea663
CRs-Fixed: 3387939
Add pre-alloc entries for datapath config events
history, so that the memory for this history is
pre-allocated and not freed on every wifi off.
Change-Id: Iae1013c68a77d7da719400579af43369d9663163
CRs-Fixed: 3379157
When component dependent functions calling from higher
modules or any other components, it uses ucfg APIs pattern.
Calling ucfg dependent APIs is acceptable for higher modules
like HDD, OSIF but for another components like DP to avoid
using ucfg APIs here, implementing component APIs for existing
ucfg APIs to other components like NAN, vdev_mgr in DP
component module.
Change-Id: Ia5431c7de7fc944aacf5c8a328072a8ec31e8f3f
CRs-Fixed: 3351496
Create sysfs file for direct link unit test command to
generate traffic from LPASS.
Add ini to enable direct link unit testing.
Change-Id: I5b143bc6751eedb1a65cd836ea738744b72cc2cc
CRs-Fixed: 3365576
Currently, based on config_direct_link variable, link is voted
up or down which can result in same multiple votes.
To fix this, vote link up or down if there is a change in
previous config and incoming config_direct_link argument.
Also, return status success when direct link is not enabled
but dp_config_direct_link is called.
Change-Id: I4f54d74a9d4921f27f247450f89a03d6dabc838e
CRs-Fixed: 3375395
Set to_fw bit in DP vdev for direct link use case
and also set it when the use case is unspecified as
well.
Change-Id: I7306e22e81303720830cfce4ce19b15d2080d93c
CRs-Fixed: 3369891
The kernel-doc script identified some documentation issues in
components/dp, so fix them.
Change-Id: Ic6297d80cda845287e7a472add244c489afd253b
CRs-Fixed: 3362039
When component dependent functions calling from higher
modules or any other components, it uses ucfg APIs pattern.
Calling ucfg dependent APIs is acceptable for higher modules
like HDD, OSIF but for another components like DP to avoid
using ucfg APIs here, implementing component APIs for existing
ucfg APIs to other components like MLME, TDLS, Pkt capture in
DP component module.
Change-Id: Ib8857eeca6a88810d7875312ff6dc14ffb60bc70
CRs-Fixed: 3351486
IOMMU map and unmap memory regions related to direct link
into LPASS SMMU context bank for LPASS to access that memory
in direct link use cases.
Change-Id: I4414ad1f480a639ee2d8a0677326624cd959b2b4
CRs-Fixed: 3356587
The kernel-doc script identified some documentation issues in
wlan_dp_priv.h, so fix them.
Change-Id: I38bc7293d4ef7b34bbc40930b2c1e4daaff4a13b
CRs-Fixed: 3352263
When Vdev for direct link is up, set packets for this vdev to
route to firmware and only enter d0 WOW.
If the AP profile is HOST_CONCURRENT_AP_POLICY_GAMING_AUDIO,
prevent link to go to low power states to reduce latency.
Change-Id: I9fa2ab06983db8767d8b48b74e30602e07294fe2
CRs-Fixed: 3330207
Display Runtime PM last busy stats periodically, this helps
to debug runtimepm issues even without dump availability.
Change-Id: Iae9b70ed49b94a4e098d87a0a00e539178f3c35d
CRs-Fixed: 3337901
Allocate a dedicated rx refill ring for use by LPASS
WiFi driver to provide buffers back to FW in the
Direct Link datapath.
Change-Id: I3b59e2fd3973f37fc2cc77898c4dcf09fc5def57
CRs-Fixed: 3317972
current observation is as following,
(1) RX UDP data length less then 12 bytes and they are aggregated
by FISA.
(2) aggregated UDP data might not be supported by user APP or they
are forwarded to other netdev.
if above two is met, kernel panic appears.
no solid conclusion from kernel network currently,
as a SW WAR from wlan driver side, check if current UDP data
length < 16 bytes, skip FISA aggregation.
Change-Id: Ia9e46705c7ace6a6e5580494231056adf214d7b2
CRs-Fixed: 3330035
Add support to register for LPASS data message htc service
for Direct Link datapath.
Change-Id: Iff9be53841088abe884d8e282bf13509a99ddeb2
CRs-Fixed: 3317634
FISA update may come when target in suspend state, then
UMAC force wake may return failure and lead to system timeout
crash. Change is used to defer the update when resume happens.
Change-Id: I8d3082355f780d11fd5047d67f916f0a7dd0c6e8
CRs-Fixed: 3325498
fix dp memory pre-allocation failure as below,
(1) add pre-allocated memory for extra contexts of
DP_RX_RING_HIST_TYPE on beryllium.
(2) add extra RXDMA_BUF type's memory for SW2RXDMA ring and size same
as RX refill ring size for now.
(3) add pre-allocated memory for REO_STATUS & RXDMA_MONITOR_STATUS ring.
(4) add pre-allocated memory for DP_MON_PDEV_TYPE.
Change-Id: I038d946cf1b8c9dc67c1539ea972bda8239def4d
CRs-Fixed: 3314198