Commit Graph

481 Commits

Author SHA1 Message Date
Venkateswara Naralasetty
51ddb93d21 qcacmn: add periodic and host Tx/Rx stats support for WCN6450
Changes required to support periodic and host Tx/Rx stats for WCN6450.

Command to request and dump the host Tx/Rx stats,
iwpriv wlan0 txrx_stats <stats no> <mac_id>
mac_id: 0 - mac0(5 GHz), 1 - mac1(2 GHz)
        0 for single mac
stats no: 20 - TXRX_CLEAR_STATS
	  21 - TXRX_RX_RATE_STATS
	  22 - TXRX_TX_RATE_STATS
	  23 - TXRX_TX_HOST_STATS
	  24 - TXRX_RX_HOST_STATS
	  25 - TXRX_AST_STATS
	  26 - TXRX_SRNG_PTR_STATS
	  27 - TXRX_RX_MON_STATS
	  29 - TXRX_SOC_CFG_PARAMS
	  30 - TXRX_PDEV_CFG_PARAMS
	  31 - TXRX_NAPI_STATS
	  32 - TXRX_SOC_INTERRUPT_STATS
	  33 - TXRX_SOC_FSE_STATS

Change-Id: Ibda4d531c9074a24f8c39916b44d9e3c38f189ee
CRs-Fixed: 3485279
2023-07-13 00:42:11 -07:00
Venkateswara Naralasetty
fc93f83a78 qcacmn: Add SWLM support for WCN6450
Changes required to support SWLM feature on wcn6450.

Change-Id: I306cba8dcefa8f34a9546285b33b974987aec625
CRs-Fixed: 3540269
2023-07-10 18:03:57 -07:00
Nandha Kishore Easwaran
6ca74c40fd qcacmn: Add alignment of 4 bytes back
This reverts commit Ib680547d2bcfe57b6eadda5301677d68e4a931a4

Change-Id: Iffc7f2cdab2d1015db4b3f0dfc0ea697e0388238
CRs-Fixed: 3552537
2023-07-10 15:03:04 -07:00
Venkateswara Naralasetty
a3a5a72bbd qcacmn: Add delayed reg write support for wcn6450
Current HAL delayed reg write is tied to SRNG notions, hence
implement delayed reg write logic in HIF since WCN6450 does
not use SRNG interface.

New feature flag FEATURE_HIF_DELAYED_REG_WRITE is introduced
to disable/enable this support.

Change-Id: Id7087ad53cd5879cf49ee0e84dd727de61137541
CRs-Fixed: 3519702
2023-07-10 12:14:13 -07:00
Yu Wang
1632797f1c qcacmn: refine hif tasklet latency detection
When one of the enabled CE tasklet is executed, it will
check latency of all the others which are enabled, it's
redundant. Add a new API to check latency for a single
tasklet.
Add API to record sched time for a tasklet, which will
check the enablement of detection before recording the
time.

Change-Id: I515ca27fc2e97231397573b4903c001d29326bd2
CRs-Fixed: 3514285
2023-07-08 01:26:06 -07:00
Nandha Kishore Easwaran
8a745cc343 qcacmn: Remove alignment of 4 bytes
Remove alignment of 4 bytes when allocating memory for Copy
engines. Copy engine buffer size is 2048 which is already
aligned to 4 bytes. This 4 byte alignment addition results in
64 bytes extra memory allocation for each skb since SKB_DATA_ALIGN
rounds it off to nearest 64.

Change-Id: Ib680547d2bcfe57b6eadda5301677d68e4a931a4
CRs-Fixed: 3533492
2023-07-05 17:18:11 -07:00
Venkateswara Naralasetty
f9ecb01556 qcacmn: Fix rtpm_get during tx ring write index update
Add missing rtpm_put() for the corresponding rtpm_get() during
tx ring write index update.

Also, add counter to capture flush count per CE.

Change-Id: Ieeee944b63d574f62d61f0557637cbf8f3b653cd
CRs-Fixed: 3536425
2023-06-23 15:47:06 -07:00
Nandha Kishore Easwaran
065a7a65fe qcacmn: Allocate separate CE for diag based on enable macro
Allocate a separate CE for diag only when enable macro is set
WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE is used for indicating if
diag works on a separate CE. This flag is disabled on 256M platforms.

Change-Id: Ic4862478ece2eaf3d7b92d776f25420107c051f3
CRs-Fixed: 3533485
2023-06-22 12:49:41 -07:00
Guisen Yang
134088aadd qcacmn: Add NULL pointer check for ce_hdl
When the memory allocation is fail for shadow_base_unaligned in
ce_init(), the ce_hdl will also be NULL. So we need to check if
ce_hdl is null or not before use it.

Change-Id: I88bb7323b3f171a17e07cbc6168b6f26412803f6
CRs-Fixed: 3531693
2023-06-21 22:49:32 -07:00
Huashan Qu
2e5d2ab8b5 qcacmn: Add void parameter to fix build error
Add void parameter for function ce_services_legacy()
to fix build error.

Change-Id: I8ea923736a06f7ec8000be8609dd0a54707e7d8e
CRs-Fixed: 3528968
2023-06-15 16:32:21 -07:00
Chaoli Zhou
40a34647a9 qcacmn: Correct log level for shadow register print
Change the default log level for shadow register
configuration print, which use error level is not
proper since they are not critical/fatal cases.

Change-Id: I899a8acea228a86356d6d380844a3c6ebf43f3e5
CRs-Fixed: 3519727
2023-06-09 08:10:05 -07:00
Pavankumar Nandeshwar
9afe71a99a qcacmn: Increase the CE1 ring size to 1280 for Waikiki
Increase the CE1 ring size, which is used for htt
events to 1280 entries from current 512 entries
for Waikiki

Change-Id: I794522751deb9a60e6487e42df48f582a5e01d2e
CRs-Fixed: 3511251
2023-06-08 02:12:18 -07:00
Yeshwanth Sriram Guntuka
d2b4b226d4 qcacmn: Use prealloc multi pages for direct link CE dest buffers
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 use multi pages prealloc when posting buffers
for direct link receive buffer.

Change-Id: Ieb253bd3c1b6550e4c1c63cd587993891ac817f2
CRs-Fixed: 3502633
2023-05-30 08:19:24 -07:00
Manikanta Pubbisetty
629e6d0fbe qcacmn: Do not allocate RX buffers for CE5 if PKTLOG disabled
Currently for WCN6750, RX buffers for CE5 (used for PKTLOG) are
allocated although PKTLOG code is not compiled into the driver.
This leads to wastage of memory. If allocations are done
conditionally, then a memory of 2MB will be saved when PKTLOG
feature is not compiled.

Change-Id: Id6c43cd0a1d15d3553e1e37910b067ef705b15f6
CRs-Fixed: 3506469
2023-05-26 18:17:12 -07:00
Yu Wang
bfebabf7bd qcacmn: extend hif tasklet latency detection
Extend the feature to detect tasklet latency for all CEs.
And also introduce a build flag
DETECTION_LATENCY_TASKLET_MASK to control the enablement
of each, set bit-X to enable detection for CE-X, the
default value is 0x84(BIT(2) | BIT(7)).

Change-Id: I2874d1d50fc5febbf028ebb48ba64e11977c8c34
CRs-Fixed: 3474314
2023-05-24 03:28:48 -07:00
Srinivas Girigowda
363262cd30 qcacmn: Remove __func__ from the DP logs
Logging macros already takes care of adding function name.
Hence, delete the occurrence of __func__.

Change-Id: I44ef5d7f030eba16decb9611f16001c6e9d42b3b
CRs-Fixed: 3492505
2023-05-18 18:42:18 -07:00
Santosh Anbu
19682c944c qcacmn: Enable interrupts for CE4 ring
Enable interrupts for CE4 ring for WIN specific Li York platform.

Change-Id: Ib11d719272cc81279d84c8fe455f2c18dd8ffe01
CRs-Fixed: 3439000
2023-05-14 13:38:07 -07:00
Venkateswara Naralasetty
10766fab5e qcacmn: skip unnecessary reg access for WCN6450
Enable/disable copy complete interrupt in HOST IE register and
clearing the interrupt status in HOST IS register is not required
for WCN6450 as it uses MSI and batch count/intr timer.

Change-Id: I2285651a75d01546498831e91705a989f7f60fd5
CRs-Fixed: 3470364
2023-05-12 13:18:37 -07:00
Venkateswara Naralasetty
81f874fc13 qcacmn: fix batch timer/count threshold register config
Fix the SRC/DST batch timer/count threshold register configurations.

Change-Id: I356fe72e6a2044a12c9e772ed043f2ee286d36c6
CRs-Fixed: 3483043
2023-05-11 06:31:48 -07:00
Venkateswara Naralasetty
3d36f49c3c qcacmn: Increase WMI CE buffer size for WCN6450
Increase the CE2 buffer size to 3520 bytes to support large
management frame receive.

Since CE2 & CE3 shares common EP in Fw because of which any changes
in buffer size in CE2 need to have similar changes on CE3 as well.
So to accommodate change increase CE3 buffer size.

Change-Id: Ibf01111e9bde65c29ae5a1a8e8e167fcfc64c02c
CRs-Fixed: 3471668
2023-04-19 11:13:03 +05:30
Adwait Nayak
b37c9cf461 qcacmn: Initial changes for Pebble bring-up in HIF Layer.
Add device Id and target type checks for qcn6432 target
compilation.

Change-Id: Id95d5902e3f3711ab6836b72dc3bcb66b1abf3c6
CRs-Fixed: 3351550
2023-04-18 12:44:37 -07:00
Venkateswara Naralasetty
26099afe23 qcacmn: suspend/resume changes for WCN6450
Changes required for suspend/resume support for WCN6450

Change-Id: I4610f6bdb8de92f03884af6c07a5141dd27174be
CRs-Fixed: 3447469
2023-04-18 12:11:24 -07:00
syed touqeer pasha
5b0980f461 qcacmn: Check Tx halt during umac reset
1. Check Tx halt during umac reset and avoid halt if set already.
2. Perform SRNG disable only in case of umac reset

Change-Id: Id364a6460a64e83002b5c96e08031ad2a0bc8fd7
CRs-Fixed: 3459427
2023-04-14 01:54:13 -07:00
Mohammed Ahmed
b89db375d1 qcacmn: add hif_ce_desc_history to ssr driver dump
Current code doesn't have hif_ce_desc_history in ssr driver dump.
Fix this by adding the two data structs: hif_ce_desc_history_buff
and hif_ce_desc_history to the ssr driver dump regions.

Change-Id: I9256d94db6c3c3a3588e5729b9181efabdaf18ea
CRs-Fixed: 3443230
2023-03-30 14:44:40 -07:00
Edayilliam Jayadev
63c5956a01 qcacmn: Add APIs to schedule/cancel custom callbacks
Add HIF/CE layer APIs to schedule/cancel custom callbacks.

Change-Id: I9cc7dcf73a726cb1ed2d7945d6ce9e736d42af52
CRs-Fixed: 3408690
2023-03-14 08:45:56 -07:00
Venkateswara Naralasetty
a8c2c9d5e7 qcacmn: add RRI on DDR support for WCN6450
Add required changes for RRI on DDR support for wcn6450 as
it support SRRI/DRRI updates over DDR.

Change-Id: I734e177660069e1e21996f1c4489567b3527cabc
CRs-Fixed: 3383301
2023-03-03 05:27:01 -08:00
Venkateswara Naralasetty
fffd884d26 qcacmn: add shadow register config support for wcn6450
Add support to send shadow register configurations to target
for wcn6450. This support is enabled with the feature macros
CONFIG_SHADOW_V3 and CONFIG_ADRASTEA_SHADOW_REGISTERS.

Change-Id: Ib67993ec838195a5fe174d42cf54ddc0075c3bc3
CRs-Fixed: 3381139
2023-03-03 05:26:51 -08:00
Venkateswara Naralasetty
4728143e0e qcacmn: add MSI and timer/batch intr threshold config support
WCN6450 CE provides registers for configuring MSI and timer/batch
interrupt thresholds like Lithium SRNGs.

Configure MSI and timer/batch interrupt threshold registers
during CE ring setup.

Change-Id: Ifa4c5a4d14caa70ae644123409cccc6f56476d85
CRs-Fixed: 3381135
2023-03-03 05:26:41 -08:00
Venkateswara Naralasetty
1067c35404 qcacmn: add ce src/dst desc changes for wcn6450
WCN6450 uses adrastea copy engines with the following changes
for data and control messages between host and target,
 * 40-bit addressing support
 * SRC/DST desc format changes

Add ce desc changes required for WCN6450 data path.

Change-Id: I71f60f8f23aa7eebb9fa3848d33a02d579e9ef7a
CRs-Fixed: 3381129
2023-03-02 23:54:09 -08:00
Venkateswara Naralasetty
ad3cd5fa15 qcacmn: hif/ce changes for wcn6450
Add the following hif/ce changes to add support for wcn6450,
* New host/target wlan ce config for wcn6450
* New service to pipe map for wcn6450
* New host/ce/target table attach for wcn6450

Change-Id: I20fa1410f5e4e7a0146bc2d0b48a18269ca4a8c9
CRs-Fixed: 3381111
2023-02-26 12:33:47 -08:00
Venkateswara Naralasetty
2021fc9249 qcacmn: Move CE descriptor related macros out of qdf
Currently few macros related to CE descriptor are defined in qdf_types.h
Which is not the right place to have such macros. Hence moving them to
ce_internal.h file.

Also, have different macros for WCN6450 as the ce descriptor offsets got
changed for WCN6450.

Change-Id: I20414273793034bbab80304bcd643371d281fb7f
CRs-Fixed: 3386470
2023-02-24 00:05:59 -08:00
Mukul Dhiman
66fa364229 qcacmn: Remove macro ENABLE_10_4_FW_HDR
Remove all occurrence of ENABLE_10_4_FW_HDR and conserve
any logic change.

CRs-Fixed: 3345419
Change-Id: I37993fd2412a99e605290f5a895b7d8d634b5a69
2023-02-13 04:04:52 -08:00
Prakash Manjunathappa
3cde321196 qcacmn: Add PEACH device support
Add support for peach device. Add peach conditional statements.

Change-Id: Ia107e60fd00b4938984414fd92d6699d11fd3797
CRs-Fixed: 3394198
2023-02-07 00:54:44 -08:00
Jeff Johnson
7cbbd39379 qcacmn: Fix hif/src documentation
The kernel-doc script identified a large number of kernel-doc issues
in the hif/src folder, so fix them.

Change-Id: Ia944c6c9f1bcb6a8f5f0ff07ca0afa7bf3a40ad0
CRs-Fixed: 3375493
2023-01-20 19:09:30 -08:00
Nandha Kishore Easwaran
9898b18b1c qcacmn: Add DBR service for 5332
Add DBR service into pipe config for 5332 target

Change-Id: I0a0182a31458adf1ba4b6e848c7c201bc1582bfa
CRs-Fixed: 3379310
2023-01-20 09:07:13 -08:00
Hariharan Ramanathan
f75a30225c qcacmn: Add changes to move ioremap outside interrupt context
Add changes to move ioremap of PMM SCRATCH register outside
interrupt context, as ioremap in interrupt context in not valid.

Change-Id: I0fa645c55e10a5241011a1f4ffdccdca48c50d29
CRs-Fixed: 3371194
2023-01-10 05:32:28 -08:00
Yeshwanth Sriram Guntuka
f2bb688784 qcacmn: Modify existing API to fetch direct link dest buf size
Modify existing API used to fetch direct link destination
buffers to also get destination buffer size.

Change-Id: I6c220fe9bbb216f1c0db2e1e38da2ce8314fe47b
CRs-Fixed: 3347321
2022-12-02 21:56:20 -08:00
Karthik Kantamneni
6ef5d59bee qcacmn: Add Runtime PM last busy history support
Add support to record last busy events on RX CEs,
this helps to check how frequent CEs are marking busy.

Add support to display last busy history and runtimepm stats.

Change-Id: I856ce54a2f1c6b26722d27623343fc0a2c202c6f
CRs-Fixed: 3337902
2022-11-20 22:03:28 -08:00
Linux Build Service Account
9345e3e5b3 Merge "qcacmn: Array Indexing after validating 'ce_id'" 2022-11-20 06:53:44 -08:00
Alan Z. Chen
b589f319f9 qcacmn: Add void keyword to function definitions
Add void keyword to function definitions for
ce_service_srng() and target_if_get_ctx().

Change-Id: I4d74600da82a9f13285a496a2136589b698da017
CRs-Fixed: 3336700
2022-11-17 20:22:25 -08:00
Yeshwanth Sriram Guntuka
93c0c09c50 qcacmn: Add CE config tables for Direct Link on Kiwi
Add separate CE host, target, and service map config
tables for Direct Link use case on Kiwi.

Change-Id: I84c1af09da401ab739905b96c85417f907b36743
CRs-Fixed: 3335330
2022-11-15 16:02:11 -08:00
Yeshwanth Sriram Guntuka
9b059a3bc0 qcacmn: Add support for getting CE srng info for Direct Link
Add support to fetch CE srng information used for
direct link datapath.

Change-Id: If38b892b28eba711d7949fa02926205dc601a50e
CRs-Fixed: 3317501
2022-11-12 03:11:01 -08:00
Yeshwanth Sriram Guntuka
e228622034 qcacmn: Add support to configure MSI registers for Direct Link CE
The MSI address and data information for Direct Link
copy engines will be available once the WiFi driver
on LPASS is initialized. Add support to configure the
IPCC address and data values into Direct Link copy
engines at runtime.

Change-Id: I5e7dff90c2f1ff764462c235deb5795ed019a16b
CRs-Fixed: 3316679
2022-11-12 03:10:53 -08:00
Bing Sun
4fb2121bbe qcacmn: Add INI to disable wake IRQ
Some platform would like to disable wake IRQ, so add INI to disable
wake IRQ.

Wake IRQ can't share the same IRQ with the copy engines. In one MSI
mode, we don't know whether wake IRQ is triggered or not in wake IRQ
handler. known issue CR 2055359.

Disable wake IRQ for one MSI mode. If you want to support wake IRQ.
Please allocate at least 2 MSI vector. The first is for wake IRQ while
the others share the second vector.

Change-Id: Id9e54e287f146ff64d94669bbc44dc0a724d9480
CRs-Fixed: 3290867
2022-11-11 03:56:11 -08:00
Yeshwanth Sriram Guntuka
2ac8820056 qcacmn: Reduce CE0 src and dest ring size for XPAN usecase
Reduce CE0 source and destination ring sizes for XPAN
usecases to reduce memory footprint based on the
frequency of transactions between LPASS and FW.

Change-Id: I65076a2720fa72d10327981994763dc4ac295ab3
CRs-Fixed: 3319659
2022-11-08 18:52:40 -08:00
Ananya Gupta
bb3702c339 qcacmn: Increase target pipe entries count to 64 for CE2
CE2 ring gets full pretty quickly as target side entries
count is 32, host side config is 64.
Increasing target's pipe entry to 64 as well.

Change-Id: Idbcb3675af0b39fc9741ae68d7ec3f1ad5e67bf1
CRs-Fixed: 3322383
2022-11-07 13:11:07 -08:00
Prasanna JS
adb0db98bc qcacmn: Array Indexing after validating 'ce_id'
Indexing array after checking 'ce_id' for boundary
condition to avoid array out of bound.

Change-Id: Iffa776021dbd70bc135152ad06cb9488a74c335f
CRs-Fixed: 3328146
2022-11-03 06:26:08 -07:00
Kannan Saravanan
04a752e875 qcacmn: Initial changes for york bring-up in HIF Layer
Add device Id and target type checks for qcn9160 target
compilation.

Change-Id: I40f5ae3f1ac715f977f9df5a46c71740c61c7399
CRs-Fixed: 3282629
2022-10-18 10:08:21 -07:00
Jeff Johnson
207faf54f2 qcacmn: hif: Fix misspellings
Fix misspellings in hif/...

Change-Id: I8eeefbf714bbb66f61886d9ceabe3f28607b045c
CRs-Fixed: 3304686
2022-10-10 19:21:54 -07:00
Amit Mehta
b781ebf246 qcacmn: Move Fw diag drain API under feature flag
Currently fw diag drain API is not under feature flag
as we only need to drain the ring in case when diag
events are received on CE7, which in other cases is
resulting in unnecessary error logs being printed.
To fix the issue move fw diag drain api under feature
check.

Change-Id: I7d040fbd1218c5c8ed9a8b2bae58af2f098fee80
CRs-Fixed: 3296285
2022-09-29 10:59:21 -07:00