Commit Graph

1361 Commits

Author SHA1 Message Date
Neha Bisht
5e70737f80 qcacmn: Handle special descriptor cases for global tx pool
Handle special descriptor cases for global tx desc pool

Change-Id: I33253b726b1b8a2e7438b3bc1dddcac43ad8fb25
CRs-Fixed: 3592887
2023-08-30 13:40:05 -07:00
Amit Mehta
16ff49ada0 qcacmn: Add additional check for qdf_walt_get_cpus_taken
Current if CONFIG_SCHED_WALT is disabled in kernel it is
resulting in compilation error.

So to fix the issue move the API under CONFIG_SCHED_WALT.

Change-Id: Ia720b3d707e0119e90c1cce8bf99590525a7f5ba
CRs-Fixed: 3599900
2023-08-30 04:53:33 -07:00
Aditya Kodukula
6ed28e28ce qcacmn: Add gwlan_logging to wlan minidump
Add gwlan_logging structure to wlan minidump, when
WLAN_QCOM_MINIDUMP feature is enabled.

Change-Id: Ib9aef20854f50cdf5c1ff0c0acce857bed38a9a6
CRs-Fixed: 3599313
2023-08-29 15:06:44 -07:00
Aman Mehta
cfefc49a09 qcacmn: Add support for xmit type flag on skb->cb
Add support for xmit type flag on skb->cb for tx packets. The field will
be used to update ingress stats to the respective indices

Change-Id: Ifad61a97b3424df90a2fe722f1c264678a67e949
CRs-Fixed: 3562152
2023-08-28 21:13:04 -07:00
Edayilliam Jayadev
e2f7a3e16b qcacmn: Change default log level of mgmt Rx REO module
Set "QDF_TRACE_LEVEL_WARN" as the default log level of
management Rx reorder module.

Change-Id: I846f706a06c0f4dc098ee281fc802dc7b1698aa2
CRs-Fixed: 3593922
2023-08-28 21:12:42 -07:00
Amit Mehta
6f26807730 qcacmn: Add band in nbuf priv cb
Add band in nbuf priv cb

Change-Id: I0e740609982eaafc3678b8d17db77a6d8eeed5de
CRs-Fixed: 3598829
2023-08-25 18:05:56 -07:00
Manikanta Pubbisetty
9d8d909ff1 qcacmn: Fix truncation issues due to typecast in QDF time APIs
Currently there is an issue wrt truncation in the __qdf_system_time_after()
& __qdf_system_time_after_eq() QDF APIs where the input system ticks
(jiffies) which are of type unsigned long are getting truncated due to
typecast to long before comparison. Due to this typecasting, there is
likelihood of a wrong comparison resulting in wrong actions being
taken in the caller.

Typecast the result of the comparison instead to fix this problem.

Change-Id: I4741d9606d9e3462b8dd4736e5612f4a3008000b
CRs-Fixed: 3591262
2023-08-25 09:07:16 -07:00
Nijun Gong
4cadebf03f qcacmn: try to allocate contiguous dma buffer
For some target like ROME, CE try to read more data than expected as
prefetch. For example in UDP TX case, when CE read a tx_desc(44 bytes)
located in host memory with SMMU mapped address 0x1025FFD4~0x1025FFFF,
SMMU will detect CE read beyond 0x1025FFFF to access 0x10260000. SMMU
fault will happen if 0x10260000 is not mapped to host memory.

To fix this issue, allocate contiguous dma buffer for all 1056 tx_descs,
which will map to contiguous SMMU address region.

CRs-Fixed: 3588459
Change-Id: Id0287b051f792f18d746baf39e1c66d076c9be3c
2023-08-24 01:26:38 -07:00
Priyadarshnee Srinivasan
7c029d5026 qcacmn: Remove trace_info debug under trace_debug
Remove QDF_TRACE_INFO_HIGH_NO_FL definition under
ifdef WLAN_LOG_DEBUG. QDF_TRACE_INFO_HIGH_NO_FL is added under
ifdef WLAN_LOG_INFO as a part of this change id
I879a9d917ff698aeb6b3e53a85c765a74a902b36.

Change-Id: If49c86432f2b3179ea097e7f1ee53e90a8b1adda
CRs-Fixed: 3586206
2023-08-18 18:10:38 -07:00
Abhishek Suryawanshi
a9e5f6f098 qcacmn: Added indices in QDF_MODULE_ID enum
Added indices in QDF_MODULE_ID enum in qdf_types.h file

Change-Id: Ie2ab6286b83a4c1b13b84b1c37e464dc6f8534ba
CRs-Fixed: 3576567
2023-08-17 18:07:14 -07:00
Prakash Manjunathappa
fb7d334b7c qcacmn: Mitigate the slab allocation failures with __GFP_DIRECT_RECLAIM
__qdf_nbuf_frag_alloc fallback allocation using alloc_skb slab
allocation, use GFP_KERNEL flag which is inclusive of
__GFP_DIRECT_RECLAIM. This will mitigate the allocation failures.

Change-Id: Ib852bf0f812839f0a99093855cebc928d0c79fd1
CRs-Fixed: 3585716
2023-08-15 00:44:52 -07:00
Priyadarshnee Srinivasan
bdf7db0a32 qcacmn: Modify wmi_nofl_info_high definition
Modify wmi_nofl_info_high definition to print only if
QDF_TRACE_INFO_HIGH_NO_FL debug level is set.

CRs-Fixed: 3570322
Change-Id: I879a9d917ff698aeb6b3e53a85c765a74a902b36
2023-08-11 14:59:45 -07:00
Himanshu Batra
f86703892d qcacmn: Add qdf API for dev_hold
Add qdf API for dev_hold

Change-Id: I585e6781718fd55e8359906e5355f068376406c2
CRs-Fixed: 3579431
2023-08-11 01:24:21 -07:00
Karthik Kantamneni
6e1fe7f344 qcacmn: Reset nbuf data pointer properly in RX fast path handling
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.

Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.

Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
2023-08-10 14:42:45 -07:00
Krunalsinh Padhar
d3e95e7607 qcacmn: Send rf path WMI command
Prepare and Send WMI command to fw to set the rf path. Also, add module
ID for rf path switch for qdf log prints.

CRs-Fixed: 3568221
Change-Id: I7ef0ffe66eaed837424699641d3e5b8537cd0304
2023-08-04 02:49:21 -07:00
Shivam Kumar
f7142b0fd4 qcacmn: add/remove recommended error/debug print
add/remove recommended error/debug print

Change-Id: I2c5e2ed73fbc4299289b0d6c3059c514ef5052e9
CRs-Fixed: 3528661
2023-08-03 22:43:05 -07:00
Shivam Kumar
f337d69b2a qcacmn: add/remove recommended error/debug print
add/remove recommended error/debug print

Change-Id: I23075a7e5a0512ac9a5d87748f1ef75e4a799fe1
CRs-Fixed: 3528661
2023-08-03 22:42:53 -07:00
Vinod Kumar Pirla
a147f231ea qcacmn: Use VDEV response timer in PSOC for MAC update
Use the VDEV response timer infrastructure to hold MAC address update
requests sent to FW on VDEV which is in link switch progress.

As post disconnect and sending set MAC address request, the scheduler
thread is exited and to notify MLO mgr about set MAC address update
complete (or either timer expiry due to FW response timeout) and
further the link switch process based on response.

This code is only applicable for Link switch VDEV MAC address update
path. For MAC update request from userspace still use the same path
without starting the timer as for those wait event is already in place.

Change-Id: Ice3e6f7b00f0d9d08d6aa62ee9c1e4d183142358
CRs-Fixed: 3556517
2023-08-02 04:55:03 -07:00
Amir Patel
98252fa466 qcacmn: Fix undefined symbol when QCA_KMEM_CACHE_SUPPORT is disabled
Fix undefined symbol when QCA_KMEM_CACHE_SUPPORT is disabled

CRs-Fixed: 3571636
Change-Id: I7c3aad7992c11b77533de055226d0d6455cbe4f5
2023-08-01 20:29:43 -07:00
Priyadarshnee Srinivasan
ede405d4f8 qcacmn: Modify the debug levels of WMI prints
Modify the WMI debug level prints to reduce the
prints during bootup time.

Change-Id: Ia6d5b45d982280e572d28d1766a796b1e7ce1c60
CRs-Fixed: 3570322
2023-07-31 19:38:09 -07:00
Prakash Manjunathappa
a57c1c99b5 qcacmn: Fallback to 4k slab allocation on page_frag alloc fail
In low memory conditions 32K page frag allocations via
qdf_nbuf_frag_alloc will fail, fallback and try 4k slab allocations.

Change-Id: I3c9b08af8b1cc3aa881a91338a88b736589fb4dd
CRs-Fixed: 3571487
2023-07-30 15:08:50 -07:00
Devender Kumar
a815fe5825 qcacmn: Fix iommu domain attributes compilation issue with IPA enable
When CONFIG_QCOM_IOMMU_UTIL is enable in vendor config, we have to
use new set of API's to get iommu domain attributes, and while using
__qdf_iommu_attr_to_os seeing compilation issue as some identifiers
like, QCOM_IOMMU_MAPPING_CONF_S1_BYPASS are not declare.

even when CONFIG_QCOM_IOMMU_UTIL is not enable we have dependency
on qcom-iommu-util.h file as it has some identfiers which are in use,
with or without CONFIG_QOM_IOMMU_UTIL.

Fix is to include the header file qcom-iommu-util.h which contains
the declaration of all the identifiers used in __qdf_iommu_attr_to_os
and this file is included if MSM_PLATFORM or QCA_IPA_LL_TX_FLOW_CONTROL
is defined.

Change-Id: I82b1c13717d377a5ec4bcb74ff94f4d15fa1f638
CRs-Fixed: 3487912
2023-07-27 22:25:06 -07:00
Manikanta Pubbisetty
e2b9779df7 qcacmn: Add WBUFF statistics
Currently, there are no statistics whatsoever present in WBUFF module.
To start with, add some basic statistics to the WBUFF module.

Change-Id: I63c06cfb8b1430b2e86539f88025e6d74a00012b
CRs-Fixed: 3548509
2023-07-20 19:19:23 -07:00
Manikanta Pubbisetty
d621993b84 qcacmn: Add new API for custom page frag cache nbuf allocations
SKBs that are allocated using __netdev_alloc_skb() share a single
page frag cache that is maintained in the network layer and is
common for all network drivers/devices. There is always a chance
where memory can be fragmented when the WLAN driver shares a page
frag cache with other slow network devices. Over the time, lot of
memory would be wasted due to fragmentation eventually resulting
in SKB allocation failures due to OOM.

To circumvent this, define a QDF NBUF allocation API which accepts
custom page frag cache maintained in the driver as an input and
allocates memory for skb->head from the custom page frag cache.

Such an API will be of great help when used for allocating reusable
SKBs in the driver. This also avoids the aforementioned memory
fragmentation issue.

Change-Id: I33f3096bba4057fd06ef55bbed5dc7a3f0f5c759
CRs-Fixed: 3543424
2023-07-18 09:51:14 -07:00
Aditya Kodukula
54ab05a36f qcacmn: Replace QDF_FULL_MAC_FMT with QDF_MAC_ADDR_FMT
Currently in driver, two macros are defined to specify the
mac address printing format. Since both macros achieve
the same result, replace all instances of QDF_FULL_MAC_FMT
with QDF_MAC_ADDR_FMT.

Change-Id: I195448267ef8e77a7fd5b232ffbf2cfb0ded1be4
CRs-Fixed: 3559488
2023-07-17 22:37:34 -07:00
Amit Mehta
1d7c991d04 qcacmn: Move qdf_walt_get_cpus_taken under WALT_GET_CPU_TAKEN_SUPPORT
qdf_walt_get_cpus_taken under WALT_GET_CPU_TAKEN_SUPPORT feature
flag to avoid compilation failure on branch where changes is not
present.

Change-Id: Iddcc777a476e41cd20fa0ff40ad2dd80af0748ef
CRs-Fixed: 3559247
2023-07-17 05:01:24 -07:00
Sai Pratyusha Magam
1ff2f1dee8 qcacmn: Fix EAPOL Drop in Big Endian mode
Fix EAPOL Drop in DP when host is running in
Big Endian mode

Change-Id: If85845c73028429333595b639b3e29231e9bc7ee
CRs-Fixed: 3515114
2023-07-12 02:27:18 -07:00
Sijun Wu
27f8cfff08 qcacmn: Add a set of nbuf fragment allocation APIs
It adds a set of frag way allocation APIs explicitly.
IPA Tx nbufs change to frag way allocation API, which saves memory.

Current __qdf_nbuf_alloc changes to non-frag way allocation by
default if SKB RECYLCER not defined.

Change-Id: I5f87ffac54c49f9af920775c13b6dfdd147476dd
CRs-Fixed: 3534452
2023-07-10 21:22:46 -07:00
Pavankumar Nandeshwar
9f16b44a9b qcacmn: Add missing nbuf_count updates in qdf APIs
Add missing nbuf_count updates in qdf APIs which are used
for keeping track of nbufs in debug mode.

Change-Id: If031ec8860513dddb1704a75e4761ce14aa26f21
CRs-Fixed: 4728458
2023-07-05 17:18:21 -07:00
Vishal Miskin
051073735a qcacmn: Enhance data path traces to show latency in us
Enhance data path tx/rx traces to show latency in
microseconds.

Change-Id: Ic3457e38bb1bcc354fe81b087185bd94be8b0b94
CRs-Fixed: 3523927
2023-06-27 21:49:04 -07:00
Biswajit Dash
977b3d1fd6 qcacmn: move ml_peer_valid bit check macros out of qdf
-Moved the get macro from qdf to cdp layer.
-Removed the set macro from qdf and replaced its usage
 in be rx layer with an existing HTT ml_peer_Valid mask.

Change-Id: I4a87b4b560f983c5aa6d026481a88d28e2ff09fd
CRs-Fixed: 3488425
2023-06-26 17:22:44 -07:00
Surya Prakash Raajen
9b765b9738 qcacmn: Add support to get category verbose mask from qdf
Add support to get category verbose mask from qdf

Change-Id: I25aecc1dd13ad157cc5f27c1b9a7e6cfe05562a1
CRs-Fixed: 3525582
2023-06-22 12:49:31 -07:00
Himanshu Batra
c387b92230 qcacmn: Add print module for telemetry agent
Add print module for telemetry agent

Change-Id: Ie44af9cb25e1567a30b36dff62d20baf203e453b
CRs-Fixed: 3528401
2023-06-20 09:58:52 -07:00
Aditya Kodukula
58e80d75bd qcacmn: Fix typographical errors
Fix typographical errors spanned over various files in cmn.

Change-Id: I9fcf3b7f9bb7d7dd406e6576a60aa4eb783c9ceb
CRs-Fixed: 3529628
2023-06-14 22:02:33 -07:00
Pooja T C
7fb2d5f4b1 qcacmn: Add QDF Module id for Co-Hosted BSS module
Added a QDF module id for Co-Hosted BSS  module.

Change-Id: If93df1026edcce0958fc7cb751abc4f32c887ec1
CRs-Fixed: 3501897
2023-06-13 09:42:45 -07:00
Devender Kumar
1204ed01ea qcacmn: Add qdf_nbuf_set_fast_xmit() API support
Add support for filling fast_xmit in SKB for platform
which support skb_recycler feature.

Add a QDF abstraction to update fast_xmit in skb, when it is supported.

Change-Id: Ibc562023ddeb0bf5c2709bbb60b596676c932b5a
CRs-Fixed: 3522028
2023-06-12 16:26:46 -07:00
Zhiwei Yang
c8e31677da qcacmn: Fix wlan_dp_mem_stats TX_NBUF_CNT error
The TX_NBUF_CNT never decreases, which is an incorrect debug info.
We should decrease dp_tx_skb_count when nbuf unmap.

Change-Id: I3be63047f47305c5d24c5c40696e1c6db69ec4d6
CRs-Fixed: 3508530
2023-06-09 13:50:35 -07:00
Namita Nair
5582448dca qcacmn: Handle Tasklet context for filter notify
Currently, opt_wifi_dp filter reserve and release
notification to IPA, is sent in a tasklet
context. As QMI calls tend to acquire mutexes, this
will cause an assert as we cannot sleep in a tasklet
context. To resolve this, WLAN will schedule the
notification call in a workqueue before calling
into IPA. This change ensures IPA calls from WLAN are
not made in an interrupt context.

Change-Id: Ic716e14340651db76d7dd7dc216c595c01732ee8
CRs-Fixed: 3492465
2023-06-08 02:12:06 -07:00
Aditya Kodukula
4cbabdad1c qcacmn: Fix typos in cmn
Fix typos spanned over multiple files in cmn.

Change-Id: I9886114cd9cde934e084d0977e6272f8dd04df76
CRs-Fixed: 3521888
2023-06-07 13:58:38 -07:00
Amit Mehta
bc2323fc08 qcacmn: 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: Ie6175a02c8167f5ebfd81553837206640431f701
CRs-Fixed: 3515365
2023-06-05 08:33:55 -07:00
Ashish Kumar Dhanotiya
a82c7a6227 qcacmn: Create new ll_sap component
Add enums for ll_sap component.

Change-Id: I17011aa35bf0c99adb2b8b6ef60ea014fc1bbe37
CRs-Fixed: 3482575
2023-05-30 06:06:20 -07:00
Naveen S
78a6dc3b84 qcacmn: Fix for qdf_get_log_timestamp_lightweight not being defined
qdf_get_log_timestamp_lightweight function is defined only when
ENHANCED_OS_ABSTRACTION is not enabled, defining it when
ENHANCED_OS_ABSTRACTION is enabled as well.

Change-Id: Ia146feed5536a7b99653d7690f3204e6cbaf3f4c
CRs-Fixed: 3471529
2023-05-30 02:57:44 -07:00
Naveen S
d8890ce513 qcacmn: Fix return value in qdf_usecs_to_log_timestamp function
qdf_usecs_to_log_timestamp() was returning the remainder value
of do_div operation instead of the quotient. Now fix has been
made to return the correct value.

Change-Id: I6c7041b4a837b311f63616aff23bf2a20dbe7adb
CRs-Fixed: 3471529
2023-05-30 02:57:34 -07:00
Yeshwanth Sriram Guntuka
4dc955351e qcacmn: Move prealloc DP descriptor types to QDF
Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.

Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
2023-05-26 16:06:57 -07:00
Amit Mehta
4a4c634bb0 qcacmn: Add new QDF API to check if walt_get_cpus_taken supported
Add new QDF API qdf_walt_get_cpus_taken to check if
walt_get_cpus_taken API is supported.

Change-Id: I8ed8e5608c35c45b5e630ee39a497bca31b3502d
CRs-Fixed: 3508584
2023-05-26 10:27:45 -07:00
Balaji Pothunoori
c922aed7f2 qcacmn: update tx flags for radiotap header prepare
Currently radiotap header is malformed due to incorrect
tx flags update.

This change is update tx flags properly to prepare radiotap
header.

Change-Id: I0d3205b215c9fc363a71c4e7a6b54e40fb10a966
CRs-Fixed: 3442934
2023-05-25 08:09:56 -07:00
Kenvish Butani
0df4b5eaea qcacmn: Optimize DP Rx Error Handling (Part-2)
In WBM2SW Rx Error path for BE
specific functionality
1) HAL API's/Function pointers are replaced
with specific function calls.
2) Efficient read/write of WBM Error Info
from HAL Rx desc.
3) Minimize reading data from Nbuf TLV.
4) Peer_id fix for MLO clients with security

Change-Id: I1c9e6e767bbf6565567d998ae8e1357398de5803
CRs-Fixed: 3486304
2023-05-24 05:19:41 -07:00
Amit Mehta
9fb079e747 qcacmn: Add new QDF APIs
1. qdf_cpumask_and - *dstp = *src1p & *src2p
2. qdf_cpumask_andnot - *dstp = *src1p & ~*src2p
3. qdf_cpumask_equal - *src1p == *src2p
4. qdf_cpumask_complement *dstp = ~*srcp
5. qdf_walt_get_cpus_taken - Get taken CPUs

Change-Id: I3a9038cfe033b155bd098e88e3bf176513b728e8
CRs-Fixed: 3479945
2023-05-23 03:25:08 -07:00
Rakesh Pillai
474298906b qcacmn: 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: Ie4407064ac5124fc050715fd75400ca516c9c6b8
CRs-Fixed: 3498024
2023-05-18 21:20:19 -07:00
Srinivas Girigowda
91e11d5efa qcacmn: Increase DPTRACE data size to 66 bytes
2 bytes for meta data and 64 bytes of packet data

Change-Id: Iee6875fd44844382c2248175925271e98da091c7
CRs-Fixed: 3492510
2023-05-18 18:42:39 -07:00