Commit Graph

1077 Commits

Author SHA1 Message Date
Roopavathi Lingampalli
b81f52931c qcacld-3.0: Add Rx thread feature support for Dp component
Add Rx thread and Rx refill thread support for
DP componentization.

Change-Id: I2c0a0f7780280a0c2304f026d2580a81123de312
CRs-Fixed: 3316814
2022-12-06 07:35:08 -08:00
Chaoli Zhou
4cbca147ba qcacld-3.0: Fix ipa compile error for ROME
Fix the parameters missing issue for ipa
function for ROME.

Change-Id: I1dad21bfa0e6cf0f213a1259bd5cf116cccba9a5
CRs-Fixed: 3345055
2022-12-04 12:07:08 -08:00
Jeff Johnson
dc961a7522 qcacld-3.0: core: dp: Fix misspellings
Fix misspellings in core/dp/...

Change-Id: Ibafb9996aeec83ff18fdad269c2ee918afcb397f
CRs-Fixed: 3303628
2022-10-06 02:12:24 -07:00
Jeff Johnson
1e348b3026 qcacld-3.0: Remove calls to qdf_exit_thread()
Since Linux Kernel commit 63706172f332 ("kthreads: rework
kthread_stop()"), made in 2009 in Linux Kernel v2.6.31-rc1, it has not
been necessary for kernel threads to call do_exit(). Since we do not
support kernels earlier than that, remove the calls to
qdf_exit_thread(), the abstraction function for do_exit().

See Change-Id I22f27692fa8766df080630b9b0640c259285557c for more
information on why this call is being removed.

Change-Id: I5fa0e404e782edc04034bef8412acd0ca2f83097
CRs-Fixed: 3300457
2022-10-01 11:35:11 -07:00
sandhu
27a7d9060f qcacld-3.0: fix compilation issue
fix compilation issue by removing stdarg.h and include qdf_types.h

Change-Id: I30ae0aed3fc28c3b9db8b2ce4450211e102b06fa
CRs-Fixed: 3295173
2022-09-29 18:45:58 -07:00
Azmath Mohammed
aacfd1d3d0 qcacld-3.0: Implement DP component for FISA feature
Add FISA feature support for DP componentization.

Change-Id: I748a20ec44d1c299aab8d31facd059eb2e35e680
CRs-Fixed: 3243693
2022-09-28 22:31:29 -07:00
Roopavathi Lingampalli
6d4df6c2da qcacld-3.0: Modify Pre_alloc memory support for Dp component
Modify Pre_alloc memory support for DP componentization.

Change-Id: I274e3163bc6623a7a4e08f8ce30d3bc17a0b444b
CRs-Fixed: 3285947
2022-09-16 11:52:08 -07:00
Rakesh Pillai
4419bf30e6 qcacld-3.0: Update prealloc size for srng from CFG
Update the prealloc size for RXDMA_BUF and REO_DST
rings using the ini values which have been configured.

Change-Id: Idc53bf8626017dd234767da65e131557f3a5600d
CRs-Fixed: 3283991
2022-09-12 00:27:52 -07:00
Rakesh Pillai
93e61d43ec qcacld-3.0: Add pre-alloc entries for fragmented history
Currently the history recording for any debug purpose
is done using a contiguous memory chunk. For certain
history like tx_hw_ring, tx desc or tx completion desc
history, the amount of contiguous memory required is
very huge (order 7 or 8 allocation), which have a
higher probability of failing.

In order to mitigate the above scenario, introduce the
support for recording debug history into fragmented
chunks of memory, thereby reducing the requirement of
contiguous memory.

Change-Id: Ia725cf5d061a53009f02bddd67967360404f2f1c
CRs-Fixed: 3283778
2022-09-08 04:37:39 -07:00
Yu Tian
1a68a41dfa qcacld-3.0: Add additional check for dp thread deinit
In DP thread create failure path, thread de-init logic
doesn't check thread is really running or not, but sends
an shutdown event and wait for completion. This will cause
completion timeout and lead crash. Change adds additional
check for theard stats before sending event.

Change-Id: Ie8e07ba3b6f992a34e9b4b3bbc36b8080157a408
CRs-Fixed: 3280401
2022-09-06 13:46:21 -07:00
Jeff Johnson
155dea7b77 qcacld-3.0: Fix misspellings of "return"
Fix misspellings of "return":
Retrun ==> Return
Reture ==> Return
retrun ==> return
reutrns ==> returns

Change-Id: Iad8bc9f4e9d94b05ed47fd91a591ea0dbc92fde2
CRs-Fixed: 3274605
2022-08-29 14:55:28 -07:00
Rakesh Pillai
dbe1cf2b01 qcacld-3.0: Validate fse metadata before aggregation of FISA flow
When aggregation of a flow is in progress, there can be case
when the HW flow table entry match may fail for few packets.
Such packets, even though belong to a flow already present in
flow table, are routed independently to any RX ring.

When software checks this rx ring ID, from the independently routed
packet and compares the ring ID against the one which is assigned
for the flow, there will be a mismatch leading to unwanted behaviour.

Hence, always validate the fse_metadata before taking any
action on the basis of rx ring ID mismatch. The non-matching
packets, with invalid fse metadata can be submitted to network
stack independently.

Change-Id: Ia95f20ef1050bc981b2d22571b612fd2af6f6a65
CRs-Fixed: 3272353
2022-08-27 22:57:22 -07:00
Jeff Johnson
adc9857a94 qcacld-3.0: Fix misspelling "recevied"
Multiple instances of the misspelling "recevied" are present, so
replace them with the correct spelling "received."

Change-Id: Ie0421bc472d5c25f1fbcc5e8c9333e0283a6e129
CRs-Fixed: 3271103
2022-08-22 13:14:39 -07:00
Ming Jiang
5ba58f5e9c qcacld-3.0: Initialize page size of DP cacheable resource
Set DP_BLOCKMEM_SIZE for cacheable dp multipage prealloc resource

Change-Id: I610cb3b78f8413dfbc52eee9d8b690c7bac38db0
CRs-Fixed: 3240041
2022-08-16 21:38:46 -07:00
Ananya Gupta
9b6a5c2bfc qcacld-3.0: Release spinlock if bypassing fisa
Spinlock recursion is occured as dp_rx_fisa_add_ft_entry() is
returning without releasing the spinlock and from another CPU,
same process is trying to acquire the spinlock.
To fix this, if fisa is being bypassed, release spinlock before
returning.

Change-Id: I93a59a727683e1235b0ead96df5cd30f6c56d5a1
CRs-Fixed: 3257174
2022-08-02 08:54:20 -07:00
Namita Nair
a1c50a9788 qcacld-3.0: Support same link/mld peer mac address
Handle build errors in legacy chipsets, to support
same link/mld peer mac address handling for MLO.

Change-Id: I8b4e323481c6d327ee579a6b8143215c94341b8e
CRs-Fixed: 3228926
2022-07-29 05:56:46 -07:00
Roopavathi Lingampalli
865eaba7f4 qcacld-3.0: Implement DP component for SWLM feature
Implement SWLM feature support in DP componentization
model.

Change-Id: I4cd03c768fe9d9bd66d484a8c5e2f2613e55f4e6
CRs-Fixed: 3243889
2022-07-27 13:25:56 -07:00
Bing Sun
dc90fbafd4 qcacld-3.0: Use qdf_hrtimer_data_t instead of __qdf_hrtimer_data_t
We should use qdf_hrtimer_data_t, which is QDF abstraction of hr_timers.
We should use QDF_HRTIMER_NORESTART instead of __QDF_HRTIMER_NORESTART.

Change-Id: I02b83a23c94d1acde955313ed39e1b5cc44f76f2
CRs-Fixed: 3253137
2022-07-27 07:22:29 -07:00
Rakesh Pillai
8e45e437f0 qcacld-3.0: Bypass FISA aggregation for packets from DNS server
Currently FISA flows are added for packets received
from DNS server. The connection to DNS server are short
exchanges to resolve any URL, hence there is no need
to create FISA flows for such short lived flows.

Bypass FISA for packets from DNS server.

Change-Id: Ifd4f15f2c0b131148ccff7fd450d536ac029788d
CRs-Fixed: 3249810
2022-07-26 08:03:35 -07:00
Rakesh Pillai
2421447f6d qcacld-3.0: Do not attempt to print FISA stats when its disabled
Currently the handler which dumps FISA stats, does not
check if the FISA feature has been enabled/disabled via
the INI. Accessing FST table when FISA has been disabled
via INI leads to unexpected assertion.

Fix this by checking if the FISA feature has been enabled
via INI, before accessing the FST table.

Change-Id: I5345138c5af03e3dd777bfe36004c477cff0ab7d
CRs-Fixed: 3249827
2022-07-24 12:09:19 -07:00
Jinwei Chen
d7e0ec3e67 qcacld-3.0: check memory size in dp_prealloc_get_context_memory
check memory size in dp_prealloc_get_context_memory, if memory size
needed > pre-allocated, then fall back to dynamic memory allocation.

Change-Id: I2727feef066046b54dff9206a1f6699ef4455fe8
CRs-Fixed: 3222594
2022-07-19 13:49:29 -07:00
Amit Mehta
e5e83b4185 qcacld-3.0: Update HDD to use DP component APIs
All the DP specific code logic is moved out of HDD to
new DP component. So update HDD module to use newly
introduced DP component APIs for DP specific operations.

Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after preforming complete sanity
to vet out any regression which might be introduced
by these changes.

Change-Id: I377aecc4343e75dd17d279a2eb84fc49e737e784
CRs-Fixed: 3198619
2022-07-18 03:21:04 -07:00
Amit Mehta
c87481282c qcacld-3.0: Fix return value
Currently in some cases we are returning
enum of type rx_pkt_fate instead of qdf_dp_tx_rx_status

Fix issue by returning correct enum type.

Change-Id: I97c67003178fd5347de57c1b78602177696e0973
CRs-Fixed: 3234233
2022-07-02 23:11:05 -07:00
Rakesh Pillai
b87648dd65 qcacld-3.0: Enable Monitor status buffer tracking history
Enable monitor status buffer tracking history.
Also enable the allocation of memory for the monitor
status buffer tracking history via prealloc.

Change-Id: Iafec8e68c85b3f2d9b0bf0523a19b7a32869e20a
CRs-Fixed: 3229689
2022-07-02 11:28:04 -07:00
Xiaoning Ma
a41c89dd02 qcacld-3.0: Fix compile error for incompatible function pointer types
Fix compile error with '-Werror,-Wincompatible-function-pointer-types'

Change-Id: Iba97ead4e8d5b940463a3786a0b375cbbecf503f
CRs-Fixed: 3226016
2022-06-30 23:28:18 -07:00
David Oladunjoye
ad41728f81 qcacld-3.0: dp: Replace fallthrough comment with attribute
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.

Change-Id: Ie320d97a2df018fb0ad1a39c3fb2683e564d1808
CRs-Fixed: 3217418
2022-06-24 20:06:08 -07:00
Amit Mehta
58a1587cdb qcacld-3.0: Make changes to use QDF status and type
Make changes in packet logging to send QDF status
and type instead of packet log type and status.

Change-Id: I8c1d04a78272159f7d34d6034c41d52e1e44b61d
CRs-Fixed: 3224876
2022-06-23 07:03:36 -07:00
Ananya Gupta
346a64fc9c qcacld-3.0: Register PM QOS and bus suspend module
With restructuring in hif runtime pm module, modules are
required to register with the hif runtime pm module. Also,
link states are depreciated.
This change registers PM QOS and bus suspend modules which
use runtime PM module and replace link state with resuming
link up state in PMO resume.

Change-Id: I0df48e3d31a1fb0f03faaa0617b48937c9bc224b
CRs-Fixed: 3169425
2022-06-18 23:11:04 -07:00
Prakash Manjunathappa
1cf7befc57 qcacld-3.0: Add support for Kiwi flow search table in CMEM
For KIWI platform FST reside in CMEM. CMEM address is known at the
init time from platform driver. Use 16K of CMEM address for FST.
Increase MAX FISA FST entry size to 256, which is allowed max size with
16K of CMEM allocation for FISA FST.

Change-Id: I395ab884b9cc761ed3c4438434475d6f9908a62b
CRs-Fixed: 3199251
2022-05-27 19:36:52 -07:00
sandhu
051bc651bc qcacld-3.0: Add ini to enable FISA LRU eviction
Add ini to enable FISA LRU eviction.

Change-Id: I9930ec260bcab5ba8c8f1e594dbfde35965dff2e
CRs-Fixed: 3160269
2022-05-27 19:36:47 -07:00
Karthik Kantamneni
6bbad18fde Revert "qcacld-3.0: Update HDD to use DP component APIs"
This reverts commit I02fd36c45ec247fbd4fe79e035c1176cba3ebcec.

Change-Id: I26758565ac783b9c76b59eee6c2a526c68646fa5
CRs-Fixed: 3196571
2022-05-16 18:57:59 -07:00
Karthik Kantamneni
2df27526fc qcacld-3.0: Update HDD to use DP component APIs
All the DP specific code logic is moved out of HDD to
new DP component. So update HDD module to use newly
introduced DP component APIs for DP specific operations.

Change-Id: I02fd36c45ec247fbd4fe79e035c1176cba3ebcec
CRs-Fixed: 3172570
2022-05-11 13:20:47 -07:00
Karthik Kantamneni
4e6e2f07ef qcacld-3.0: Fix uninitialized SWLM timer deletion
Currently if SWLM is disabled then SWLM based flush timer will
not be initialiazed, but during cleanup path timer deletion is called.

Fix is to check SWLM enablement before deleting flush timer.

Change-Id: I12a4c62bdda35854230de02248f55892dcf5caa2
CRs-Fixed: 3184918
2022-04-29 12:39:43 -07:00
Aditya Kodukula
b1e0b17591 qcacld-3.0: Mem zero dynamic fields only in dp_prealloc_deinit
As per current driver implementation, whenever we load the wlan
driver, we initialize the dp_prealloc structs with default values,
which are used by dp_prealloc_init to allocate memory and during
driver unload, in the function dp_prealloc_deinit, after freeing
the allocated memory, we mem_zero the dp_prealloc structures.
Unfortunately, this zeros both the static and dynamic content.

In case of soft driver unload/load, where we internally
de-init/init the wlan driver, dp_prealloc_init fails because
we now don't know size of memory to be allocated. That info
was part of the static memory that had been zeroed during
deinit.

To address this issue, only zero the dynamic fields of
dp_prealloc structs in dp_prealloc_deinit.

Change-Id: If450d426ee655f6c2b32febdd001ab6d5489b51e
CRs-Fixed: 3174685
2022-04-25 19:55:21 -07:00
Ananya Gupta
2f50109251 qcacld-3.0: Enable detection of data stall events
Currently, data stall events are not detected individually.
Updated gEnableDataStallDetection ini provides control over
individual data stall events if bit 0 is not set.

Change-Id: Id4fd7f10f0806a39c5bdb7b8c097c26894dc5340
CRs-Fixed: 3159405
2022-04-25 08:57:51 -07:00
Karthik Kantamneni
545b3b934e qcacld-3.0: Implement SWLM support for MULTI TX queue traffic
Currently SWLM is supported for single queue based traffic,
enhancing the SWLM to support multi queue based traffic.

Change-Id: If2d80e8122bbc972af0bba70e7a3f4c1da000c77
CRs-Fixed: 3161166
2022-03-30 01:13:07 -07:00
Karthik Kantamneni
4ceea0ebe4 qcacld-3.0: Fix REO ID mismatch issue in fisa flow aggregation
Currently during fisa flow aggregation REO ID check is done to
make sure all the flow packets are received in same REO and to avoid
out of order reception. But if RX packet matches CCE rules REO ID
is selected based on CCE rules since they have higher priority.
In this case ignore RX packet for FISA aggregation and do not panic.

Change-Id: I09b5c9fc4ecff7223d0034921e8923776ae4bf3b
CRs-Fixed: 3153104
2022-03-30 01:13:01 -07:00
Ananya Gupta
3b5eb6874f qcacld-3.0: check vdev del event when processing rx thread
If many packets are queued into rx thread, processing
the packets can delay the vdev del event processing.
To fix this, check for vdev_del_event when processing
packets and if vdev del event is set, do gro flush
and continue packet processing.

Change-Id: I589e53f55f11c7ad8d71c532c47ae2584e5db2a7
CRs-Fixed: 3152037
2022-03-28 09:26:02 -07:00
Prakash Manjunathappa
61641f0ec8 qcacld-3.0: Make 1:1 mapping of REO to rx_thread
Remove CONFIG_WLAN_FEATURE_REDUCE_RX_THREADS compile flag.
Keep num rx_thread dependent on rx REO rings, 1 rx_thread for
each rx REO ring. It is controlled via INI dp_reo_rings_map.

Change-Id: I701e5cec79a8968b540c9437fe297ca1db8cd5d3
CRs-Fixed: 3048265
2022-03-14 22:31:00 -07:00
Amit Mehta
22de5a5cf9 qcacld-3.0: Affine refill thread to performance cluster
Currently refill thread is not getting chance to update
refill buffer pool, which is causing the increase in
rx thread time.
To fix issue move refill thread to performace cluster.

Change-Id: I839352ff09da692f801e97f7938a67ab8f09742b
CRs-Fixed: 3138081
2022-03-07 05:06:05 -08:00
Karthik Kantamneni
d4a3b8fa64 qcacld-3.0: Fix reo id mismatch in fisa path
Currently when reo id mismatch check is done there is
possiblity of flow getting evicted same time this may
lead to false alarm. To avoid this race condition reo id
mismatch check is done under lock protection.

Change-Id: I7d3ac25ec8c806677697242a0fd3fa338c0a6ad2
CRs-Fixed: 3129761
2022-02-19 04:43:55 -08:00
Amit Mehta
6a0733117a qcacld-3.0: Reduce lock held time
Currently we process and free the nbuf from
queue while holding a lock for the complete duration.
There might be a case when there are many packets pending
in the queue. This might cause the issue when we held the lock
and other process waits for lock.

So as part of the fix only perform the nbuf unlink inside the
lock and move the processing and free part outside the lock.

Change-Id: Iea0cabecc25ce90c189454b288421b1e720777f2
CRs-Fixed: 3125790
2022-02-10 14:02:52 -08:00
Karthik Kantamneni
0474a821f1 qcacld-3.0: Add peer to inactive list based on unmap ref count
Currently dp peer is being added to inactive list during force
delete, but there is possiblity of peer getting freed up if
unmap ref count is not pending and leading to double free during
pdev cleanup.

To avoid this add the peer to inactive list only if unmap ref
count is pending.

Change-Id: Ib55a92dd36c4ec4a26d3103896ca31ff3d845148
CRs-Fixed: 3110728
2022-01-18 05:50:23 -08:00
sandhu
afc4244d94 qcacld-3.0: Remove IP from code
Remove qualcomm IP from code

Change-Id: Icc3f239fbb6874a07272618b1be84d613b8fdc84
CRs-Fixed: 3073862
2021-12-29 04:28:21 -08:00
chunquan
89d3e86717 qcacld-3.0: Send high 32bit addr for no smmu platform which fw need
Host send HTT_H2T_MSG_TYPE_WDI_IPA_CFG cmd to fw, need update
high 32bit addr for non-smmu platform which alloc physical
address more than 4G.
If alloc address is 0x1 5000 0000, it will cut off
bit32 ~ bit63, the value fw get is 0x5000 0000, the address
may be used by peripheral. When fw write addr 0x5000 0000,
assert will happen.

When this change compile on 32bit platform, it will error, for
right shift must less than system width.

Change-Id: If1e84cfdcd15494be3f7327986ff0e91ec7b2b3f
CRs-Fixed: 3097240
2021-12-26 04:26:56 -08:00
Rakesh Pillai
e98751c0c8 qcacld-3.0: Handle prototype changes for fst attach/detach
Handle the proto-type changes for below APIs:
- hal_rx_fst_attach
- hal_rx_fst_detach

Change-Id: I3a117d2520456e1df6844b5417f97fc8baf889c8
CRs-Fixed: 3073607
2021-12-21 11:40:49 -08:00
Balaji Pothunoori
d101ac52b4 qcacld-3.0: update timestamp for TX failed pkt to upper layer
Currently, wlan host driver only report timestamp for TX successful
packets to upper layer.
This change add support to report timestamp for TX failed pkt to
upper layer.

Change-Id: Ib9b021675ebd388107f8bf1a61703f2b6cebb882
CRs-Fixed: 3077222
2021-12-15 12:27:27 -08:00
chunquan
1fab5f2e75 qcacld-3.0: Send high 32bit addr for no smmu platform which fw need
Host send HTT_H2T_MSG_TYPE_WDI_IPA_CFG cmd to fw, need update
high 32bit addr for non-smmu platform which alloc physics
address more than 4G, like addr 0x1 5000 0000.It will cut
off bit32~bit63, fw get memory is 0x5000 0000, it's maybe
use for peripheral memory.when fw write addr 0x5000 0000,
it will meet some error.

Change-Id: Ic5c5c00c85bdf08e61c9ff0f539989d2e96bb153
CRs-Fixed: 3077016
2021-12-08 14:56:54 -08:00
Jinwei Chen
5ed9d1d796 qcacld-3.0: Revert FISA LRU deletion change
Revert FISA LRU deletion change as this change might cause RX skb
double free/indication in FISA path.

Change-Id: I1889a33db335715d17da36d1a02e8562d348cfe1
CRs-Fixed: 3083874
2021-12-01 04:22:40 -08:00
Jinwei Chen
0af30cef66 qcacld-3.0: Fix FISA dp_rx_sw_ft_lock uninitialized issue
Currently if INI dp_rx_fst_in_cmem is not enabled and FW not report
the capability of FSE in CMEM, FISA dp_rx_sw_ft_lock will not be
initialized which lead to panic.

initialize FISA dp_rx_sw_ft_lock by default if FISA is supported

Change-Id: I515b151b9a02665f51c30263ef6c6c9929edb392
CRs-Fixed: 3082642
2021-11-26 03:19:16 -08:00