Commit Graph

132 Commits

Author SHA1 Message Date
Amit Mehta
fe6f4d208b qcacld-3.0: Add UCFG API to get DP vdev stats
Add UCFG API to get DP vdev stats.

Change-Id: Icc0eab717ed02c544240379b8f5fcfa9d98a251a
CRs-Fixed: 3554687
2023-07-11 03:16:47 -07:00
Venkateswara Naralasetty
0246a1ba30 qcacld-3.0: add SWLM support for wcn6450
Changes required for SWLM support on wcn6450

Change-Id: I50e32d91fe45e31688cd1a11e5055a87a2fd7a4d
CRs-Fixed: 3540274
2023-07-10 18:03:26 -07:00
Jinwei Chen
fa01c6ee67 qcacld-3.0: Support pre-allocated memory for DP TX Mon Desc pool
Support pre-allocated memory for DP TX Mon Desc pool.

Change-Id: Ic4125c7e96ef7dfd5e24bc8b5e347ca0b307f5d8
CRs-Fixed: 3549444
2023-07-08 01:25:41 -07:00
Rakesh Pillai
466b34b3c2 qcacld-3.0: Change FISA cfg check APIs to static inline
Change the cfg enablement check APIs (currently FISA),
to static inline, in order to avoid function call
every time to check if the feature is enabled or not.

Change-Id: Ie541313c1b0a7512f71a6189a706871e57b3145e
CRs-Fixed: 3540739
2023-06-28 01:22:36 -07:00
Rakesh Pillai
cd12cecff9 qcacld-3.0: Remove dp_soc usage (all but one) from FISA
Currently FISA accesses the dp_soc (converged DP soc handle)
for various misc info (like hal_soc handle etc). Since these
information are now stored in the non-converged DP component,
there is no need to access dp_soc.

Cleanup the access to dp_soc (converged DP soc handle) in
the FISA path.

Change-Id: I6f373eb1ee57933d631237f7281c99bfceb100c3
CRs-Fixed: 3512048
2023-06-24 13:31:05 -07:00
Rakesh Pillai
c96c1a88d9 qcacld-3.0: Fetch rx_pkt_tlv size via CDP API
Add support to fetch rx_pkt_tlv size from the
converged DP using CDP APIs.

Change-Id: Ibd992d776e8e5e3ff87acb0e9b80d147064747e4
CRs-Fixed: 3512046
2023-06-24 13:30:59 -07:00
Rakesh Pillai
4c897fe85d qcacld-3.0: Add support to send FISA HTT msg using CDP
Add CDP APIs to send FISA related HTT msgs from the
non-converged DP component.

Change-Id: Ie8dcb5d68497ac0de4c0781c981ede2239df0a78
CRs-Fixed: 3512045
2023-06-24 13:30:54 -07:00
Rakesh Pillai
5c54710c38 qcacld-3.0: FISA move data structure
Move the FISA related non-converged data structures
to DP component.

Change-Id: I86b08bd85fa97424046e1187cc5189d0f1354e93
CRs-Fixed: 3512044
2023-06-24 13:30:49 -07:00
Rakesh Pillai
87a3b842c6 qcacld-3.0: FISA ini movement
Move the non-converged FISA related INIs to the
DP component.

Change-Id: Ifaea7a6652d556168b3f232ecfe9b3579c31ed4f
CRs-Fixed: 3512043
2023-06-24 13:30:44 -07:00
Rakesh Pillai
7dde156e8d qcacld-3.0: FISA suspend/resume code movement
Move the suspend/resume related handlers for FISA
in the DP component.

Change-Id: Iba2bcf313f0a6f94a8bd8ff3c6cb29e8ef58f225
CRs-Fixed: 3512042
2023-06-24 13:30:39 -07:00
Rakesh Pillai
1fe1ac7688 qcacld-3.0: FISA init code movement
Move the FISA initialization code to DP
component.

Change-Id: Idaf0d195ea3f24f8d4294eba19d71d5cc9dbc528
CRs-Fixed: 3512041
2023-06-24 13:30:34 -07:00
Karthik Kantamneni
e5110fabef qcacld-3.0: Avoid dp_ops access during FTM mode on failure
During FTM mode start modules there is possibility  from recovery path
bus bw timer stop is being called before dp_ops gets initialized.
This will lead to accessing uninitialized dp_ops access, to avoid this
check for conn mode before accessing the dp_ops and skip timer stop.

Change-Id: I3aef52f70bc0ea6294c87e7cd889ec63a4a6e3a4
CRs-Fixed: 3531437
2023-06-22 12:49:06 -07:00
Amit Mehta
e5679f29ad qcacld-3.0: Only allow connectivity logging for STA mode
Currently connectivity logging is done for all opmode
but logging should be done only for STA mode.

So to fix the issue add check for opmode and skip
connectivity logging if opmode is not STA

Change-Id: Iae225faa0fb7f141a46979c90ac4c2374f8a8832
CRs-Fixed: 3515363
2023-06-05 08:33:38 -07:00
Karthik Kantamneni
b3c3861f64 qcacld-3.0: Add changes to support DP memory profile
Introduce DP memory profile selection based on H.W
capabilities supported. Based on H.W capabilities
decide kind of memory profile required for DP operations
and select that profile for resource allocation, so that
resource/memory allocation will be done effectively.

Change-Id: Iffbea0cfd9e6b79f0c1ad9526217ba6922f6cdb6
CRs-Fixed: 3504128
2023-06-02 16:48:10 -07:00
Yeshwanth Sriram Guntuka
ad66c99ef1 qcacld-3.0: Add multi pages prealloc support for HIF layer
The IOVA for the buffers that are attached to the direct
link receive copy engine need to be contiguous for optimal
memory mapping on ADSP.

Fix is to add multi pages prealloc support for HIF layer
and add a pool entry to multi pages prealloc for direct
link receive copy engine.

Change-Id: Ieb253bd3c1b6550e4c1c63cd587993891ac817f2
CRs-Fixed: 3497689
2023-05-30 08:18:59 -07:00
Amit Mehta
9378092308 qcacld-3.0: Add changes to affine away CPUs
Add changes to affine away CPUs from IRQ

Change-Id: I76e31109f350fea6506f7e781fba9e5b4d8b6ded
CRs-Fixed: 3502680
2023-05-27 01:40:06 -07:00
Rakesh Pillai
51d63bdc63 qcacld-3.0: Add CDP handles in DP component context
Currently the CDP handles like soc/hif/hal_soc are not
available in any of the the DP component contexts.
Modules like FISA etc need these handles.

Store the CDP handles like soc/hif_handle/hal_soc in
the DP component context.

Change-Id: Iaee4d0e15cbaa7d871dc9e246d177ad310b4c6ba
CRs-Fixed: 3505720
2023-05-26 18:16:25 -07:00
Karthik Kantamneni
98017681fe qcacld-3.0: Add INI item for applying DP memory profile
Add new INI item for enabling/disabling DP
memory profile configuration.

Change-Id: I3aad5e3aef7081a5dc9ef68c009a0ffdd5856867
CRs-Fixed: 3502597
2023-05-26 16:06:02 -07:00
Yeshwanth Sriram Guntuka
c740957390 qcacld-3.0: Update the prealloc DP descriptor types
Update the prealloc DP descriptor types.

Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502612
2023-05-26 16:05:57 -07:00
Rakesh Pillai
296c68c255 qcacld-3.0: Store all the txrx ops in dp_intf
Currently the txrx_ops are not saved in the
non-converged datapath.

Store all the txrx_ops in DP component, when
they are registered with the vdev. This can be
used in the DP component to get and use these
ops.

Change-Id: I30bfc69a32e0a9f0ab16f902a94a8c28ef4af8a6
CRs-Fixed: 3505719
2023-05-25 22:07:35 -07:00
Amit Mehta
5bc13c99ec qcacld-3.0: Check if tlv reo_dest_indication is valid
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
2023-05-23 05:16:20 -07:00
Rakesh Pillai
ba1fbb8b3f qcacld-3.0: Move DP suspend/resume code to DP component
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
2023-05-23 01:19:26 -07:00
Rakesh Pillai
b8f4110c6e qcacld-3.0: Move DP init code in CDS layer to DP component
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
2023-05-20 12:54:07 -07:00
Rakesh Pillai
ba10198e0b qcacld-3.0: Fix perf cluster interrupt affinity
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
2023-05-20 10:48:53 -07:00
Srinivas Girigowda
1163fd27bd qcacld-3.0: Change logs to appropriate log levels
Change logs to appropriate log levels.

Change-Id: I8f74260a0293d0d8147e4b4df355aeb2914ca80b
CRs-Fixed: 3494143
2023-05-18 16:28:19 -07:00
Srinivas Girigowda
2f097e5014 qcacld-3.0: Make log strings consistent
Make log strings consistent.

Change-Id: Ic80d7d041211c0def34d0bb8f185c7154e981d28
CRs-Fixed: 3492715
2023-05-18 16:28:14 -07:00
Srinivas Girigowda
3acf9cdec0 qcacld-3.0: Add context to the logs
Logs without meaningful message or values serves no purpose in debugging.
Hence, add more context to the logs.

Change-Id: Ie913f7460356a1550b5252fd72ed5b454c67b3cf
CRs-Fixed: 3492709
2023-05-18 16:28:10 -07:00
Srinivas Girigowda
9325f4c7b8 qcacld-3.0: Remove trailing newline from the DP Logs
Remove trailing newline from the DP Logs.

Change-Id: I0a0f0952539443f9937591ebee1d8432b12ed506
CRs-Fixed: 3492704
2023-05-18 16:27:55 -07:00
Ananya Gupta
a5d6751209 qcacld-3.0: Clear direct link config in stop modules
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
2023-05-15 19:39:13 -07:00
Ananya Gupta
92a1a945d3 qcacld-3.0: Mutex lock to set direct link config
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
2023-05-12 16:38:03 -07:00
Yeshwanth Sriram Guntuka
f1620fb98b qcacld-3.0: Add prealloc pools for direct link consistent memory
Add multi page prealloc pools for TX buffers and CE
TX buffers for direct link datapath.

Change-Id: I8c8be42b0530de39293ad8e45f47e16f90ea7767
CRs-Fixed: 3490109
2023-05-10 14:45:25 -07:00
Srinivas Girigowda
69d21b22e9 qcacld-3.0: Add Tx Mon to prealloc
Add Tx Mon to prealloc.

Change-Id: I09d5558d0115ba148469047d03f33a029c43a287
CRs-Fixed: 3415885
2023-05-10 11:47:36 -07:00
Srinivas Girigowda
12352b5a73 qcacld-3.0: Introduce ucfg_dp_is_local_pkt_capture_enabled()
Introduce ucfg_dp_is_local_pkt_capture_enabled()

Change-Id: I0350452ff36b212bbee94da4cbe5adee37c50de2
CRs-Fixed: 3415854
2023-05-10 11:46:37 -07:00
Amit Mehta
434b0fbabe qcacld-3.0: Add UCFG API to get per link peer stats
Add new UCFG API to get per link peer stats.

Change-Id: I343b9a96610f64df33f8cc56e7a08c3282043fac
CRs-Fixed: 3442905
2023-05-08 09:56:14 -07:00
Yeshwanth Sriram Guntuka
7b19419ddd qcacld-3.0: Add support for sending QMI misc msg on DL deinit
Add support for sending QMI WFDS misc request to QMI
server on Direct link deinit.

Change-Id: I611625d83719c0f8a7dfbef1d3c8328cb618ef7f
CRs-Fixed: 3454630
2023-04-06 08:55:23 -07:00
Amit Mehta
881fb8bb91 qcacld-3.0: Add change to update peer map unmap version
Add change to update peer map unmap version.
Change to get peer map event v3 and peer unmap
event v2 for 11BE target.

Change-Id: I77fa354807ef66effaeb37a845ccebccd5f66ff4
CRs-Fixed: 3442448
2023-03-30 20:19:02 -07:00
Vinod Kumar Pirla
812d01784f qcacld-3.0: Remove INIT_TX_RX_SUCCESS adapter flag
Remove the INIT_TX_RX_SUCCESS adapter flag as its
functionality is insignificant after DP componentization.

Change-Id: Ief86ab81c42b767113bde46252246fa8677588ce
CRs-Fixed: 3399329
2023-03-27 21:07:49 -07:00
Jeff Johnson
d2d67b1054 qcacld-3.0: Remove wlan_dp_psoc_context::rx_skip_qdisc_chk_conc
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
2023-03-12 22:36:34 -07:00
Rakesh Pillai
2a4c6686af qcacld-3.0: WAR to handle invalid flow_idx from HW
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
2023-03-08 16:04:40 -08:00
Venkateswara Naralasetty
2bcf36b06f qcacld-3.0: Skip FISA aggregation if RDI is zero
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
2023-03-08 14:20:51 -08:00
Jeff Johnson
7c73be1d9d qcacld-3.0: Fix ucfg_dp_config_direct_link() stub
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
2023-03-07 06:27:50 -08:00
Ananya Gupta
988ceaccd5 qcacld-3.0: Deinit DP TXRX module when rx thread init fails
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
2023-02-24 17:52:03 -08:00
Paul Zhang
afd194fb4e qcacld-3.0: Correct logic for roam fails in NUD case
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
2023-02-24 13:50:44 -08:00
Roopavathi Lingampalli
ed0007c0c9 qcacld-3.0: Clean up SAP DP TX/RX init and deinit APIs in DP component
Remove SAP DP TX/RX init, deinit APIs dependency from
HDD module.

Change-Id: I5bf248dfd4e19fea784595c8c05e1a51610f3338
CRs-Fixed: 3402662
2023-02-14 04:44:09 -08:00
Ananya Gupta
b576218751 qcacld-3.0: Update SNOC freq to 200 MHz for SAP, P2P HE case
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
2023-01-28 04:02:23 -08:00
Amit Mehta
7297c338d7 qcacld-3.0: Add check to avoid OOB access
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
2023-01-26 04:09:42 -08:00
Rakesh Pillai
61df77a203 qcacld-3.0: Add pre-alloc entries for datapath cfg event history
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
2023-01-19 02:54:06 -08:00
Roopavathi Lingampalli
38bf757799 qcacld-3.0: Add Component APIs for required ucfg APIs in DP component
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
2023-01-17 21:04:25 -08:00
Ananya Gupta
ec471e92f2 qcacld-3.0: Create sysfs file and ini for direct link unit test
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
2023-01-11 03:46:53 -08:00
Ananya Gupta
9ef4a35d86 qcacld-3.0: Vote link based on config change
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
2023-01-09 23:34:57 -08:00