提交图

241 次代码提交

作者 SHA1 备注 提交日期
Jia Ding
f3fcb9b56e qcacmn: Initialize ipa_mapped to 1 in soc attach
Two SMMU issues are seen on IPA domain with regard to RX.
1. map without unmap
2. Buffers not mapped into IPA.

With If198a6c5f22af58fdaf9d9c020c74b1f76002e37, mapping
RX buffers to IPA domain are deferred to IPA enable pipes
phase with soc->ipa_mapped flag check added. This leads
to a race window where RX packets are routed to WLAN Host
first with soc->ipa_mapped still being 0. In such case, RX
buffers handled by WLAN driver will neither unmap from IPA
domain nor map into IPA domain.

For !ipa_config_is_opt_wifi_dp_enabled(), fix is to set
soc->ipa_mapped to 1 earlier in soc attach phase instead of
IPA enable pipes phase. With this fix, RX buffers can be unmapped
from IPA domain and mapped to IPA domain in dp_pdev_rx_buffers_attach()
and dp_pdev_nbuf_alloc_and_map_replenish() in WLAN host RX path so
as to avoid above two SMMU issues.

Change-Id: Idcb86db99f522959b639865f77178cd47a234277
CRs-Fixed: 3560191
2023-07-20 19:19:34 -07:00
Namita Nair
b50ceeee79 qcacmn: Defer IPA SMMU mapping to OPT_DP reserve
Currently, IPA SMMU map/unmap is called as part
of init. This causes every nbuf to be mapped
to IPA in the Rx path, causing throughputs
to drop. This change resolves the problem by
deferring the IPA SMMU map/unmap
call to OPT_DP filter reserve/release, as
nbuf needs to be mapped to IPA only in this scenario.

Change-Id: If198a6c5f22af58fdaf9d9c020c74b1f76002e37
CRs-Fixed: 3496679
2023-07-04 22:36:13 -07:00
Jia Ding
442d77805c qcacmn: Fix buffer overflow for ipa_ctx->sys_pipe
ipa_ctx->sys_pipe[] is an array with size WLAN_IPA_MAX_SYSBAM_PIPE (4).
On MDM platforms, WLAN_IPA_MAX_IFACE could be set to 4 in defconfig.
E.g. on sdxpinn/hmt platform, CONFIG_NUM_IPA_IFACE is set to 4.

kiwi_v2_defconfig
CONFIG_NUM_IPA_IFACE := 4

With this, WLAN_IPA_RX_PIPE will be equal to 4, leading to array index
out of bounds buffer overflow.

Fix is to set WLAN_IPA_RX_PIPE to WLAN_IPA_MAX_SYSBAM_PIPE - 1 to point
to last index of ipa_ctx->sys_pipe[].

Change-Id: I4929aec92ed2064c5194ec18ad7b33574ba3c3e7
CRs-Fixed: 3545420
2023-07-01 13:35:20 -07:00
Nijun Gong
ce14cb4467 qcacmn: Enable IPA pipe for second SAP
On sdxpinn target (first multi-core MDM platform) with rome
chip attached, it's required to enable IPA pipe for both SAP in
AP-AP mode, but currently only first AP has IPA pipe enabled.
The second AP always goes with sw path because wlan firmware isn't
notified to choose IPA path by wlan_ipa_uc_offload_enable_disable().

The fix is to always enable IPA for each SAP no matter how many
SAP are started if MDM_PLATFORM is defined.

Change-Id: I8a2048aae04e14aa840d7d9a2ccb287201336cf3
CRs-Fixed: 3532926
2023-06-30 23:49:11 -07:00
Amrit Sahai
5aac5cb621 qcacmn: Fix peer authentication for wds client
Fix the peer authentication for wds client, in SDX_WKK
wds client needs to get authenticate when packets receive
from exception path as wds client is not directly associated,
authentication is done by verifying from ast table

Change-Id: I93051d67fc3d5be0af9242e6579f44883b3f757d
CRs-Fixed: 3534370
2023-06-30 23:49:01 -07:00
Namita Nair
799f8babfb qcacmn: Move logging outside of lock
This change moves logging of OPT_WIFI_DP filter response
outside of mutex lock.

Change-Id: Ib53d9dc35538302cb16a26d7656d564accd1fde6
CRs-Fixed: 3523094
2023-06-15 21:24:38 -07:00
Namita Nair
5db38f1713 qcacmn: Hold wakelock during Optional wifi dp
To prevent APPS from suspending hold a wakelock
at the time of filter reserve and release at filter
release.

Change-Id: I5c15c50ccf2cebce677abd8ff6b568b7fafab49b
CRs-Fixed: 3498105
2023-06-14 22:02:55 -07:00
Jia Ding
6ad49b72b1 qcacmn: Add debug print for is_2g_iface
Add debug print for is_2g_iface parameter passed into
__wlan_ipa_wlan_evt(). This could help to debug if 2nd
IPA TX pipe is used for the vdev or not.

Change-Id: Ifdf9651ca972d0591671848a3b65bde13c518c6b
CRs-Fixed: 3523319
2023-06-09 13:50:15 -07:00
Devender Kumar
8e742a10a9 qcacmn: Increase the number of seesion_id for IPA
In WKK 7 vap per radio is supported with IPA.
Fix is to increase the session_id to 7.

Change-Id: Idbef1c3185174fab51293a6c91f0e4d6ba46e95d
CRs-Fixed: 3506431
2023-06-09 10:49:41 -07:00
Gaurav Saini
d055e87ea7 qcacmn: Rectified the function comments
File does not have proper commenting to functions.
There are words used twice and not properly named.

Fix is updating the comments.

Change-Id: I5174c8804014ea860127a64907ce63037f746d25
CRs-Fixed: 3519022
2023-06-08 20:46:49 -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
Srinivas Girigowda
07bdb1114b qcacmn: Remove trailing comma/period from the DP logs
Remove trailing comma/period from the DP logs.

Change-Id: Ifdaf508157274c44f04e775c1883c4eaa2924c44
CRs-Fixed: 3492731
2023-05-18 18:42:28 -07:00
Jia Ding
296729e604 qcacmn: Properly set RPS for WLAN IPA
It is observed on sdxpinn target (first multi-core MDM platform)
that WLAN failed to enable IPA pipes with SAP-SAP mode when first
ref-client connects to the SAP. Indeed with QCA_CONFIG_RPS=y and
qdf_ipa_get_lan_rx_napi()=true, wlan_ipa_uc_handle_first_con()
directly returns false if more than 1 SAP is started.

This obviously breaks IPA data path for MDM platform, where even
4 SAP can be supported with IPA offload. And WLAN data path
forwarding replies fully on IPA hardware. This also means there's
no need to configure RPS for MDM, which is a host kernel networking
feature.

Change-Id: I4c17f61b1b242cdbaed7177201b330d10ec7e61b
CRs-Fixed: 3490817
2023-05-16 14:34:09 -07:00
Namita Nair
b84e6e73fd qcacmn: Enable SAP/GO D3 WOW for OPT_WIFI_DP case
Currently as IPA_OFFLOAD path is enabled for OPT_WIFI_DP
usecase, this causes SAP/GO D3 WOW to be disabled.
This change will add a check to ensure D3 WOW is
enabled when IPA path is set for OPT_WIFI_DP usecase.

Change-Id: Idbbec78dadcba3e8f26b9c01e296869cd7278750
CRs-Fixed: 3496857
2023-05-14 13:38:17 -07:00
Jia Ding
351f4a79a7 qcacmn: Properly vote IPA perf bandwidth
IPA does not support dynamic voting for max BW supported.
Hence WLAN has to do static and one-time vote for max
BW supported.

For KIWI family, vote 4800 to achieve nominal scaling.
For other chipsets, keep 800 as is and modify if new
requests are needed.

Change-Id: I2eb82857355097de5ab7c508df0e84eb1a141654
CRs-Fixed: 3482693
2023-05-14 11:07:51 -07:00
Namita Nair
2613f207e0 Revert "qcacmn: WAR for opt_wifi_dp feature to disable IPA(1)"
This reverts Change-Id: I7aad275f4d86a2ffc239f1fe343de31ec2988fad.

Change-Id: I875e8d15430c3f0a0f4bf10d275b203b24023a64
CRs-Fixed: 3483264
2023-05-12 16:39:36 -07:00
Namita Nair
e8dd9fd84a qcacmn: Handle mem leak when ipa_register_ready_cb() fails
Currently g_instances_added is not decremented correctly
in scenarios where IPA callback fails. This prevents
freeing the g_ipa_config memory during deinit, causing a
memory leak. This change will ensure that the instance
count is decremented correctly as part of deinit
in both success and failure scenarios.

Change-Id: I40fd14f6f441d1314eebf8c5d33616c824398a6f
CRs-Fixed: 3472760
2023-04-27 04:08:41 -07:00
Namita Nair
e92b9d5b61 qcacmn: Fix memory leak in ipa_config_mem_alloc
Currently when ucfg_ipa_uc_ol_init() fails,
the wlan_ipa_cleanup() is not called. As a result
g_instances_added is not decremented. This
change performs the cleanup if ucfg_ipa_uc_ol_init()
fails.

Change-Id: I22a83f08c51e10246fa99dff2a06c9ec486f605e
CRs-Fixed: 3456523
2023-04-18 12:11:03 -07:00
Jia Ding
e5050154f1 qcacmn: Add WLAN IPA RX exception packet to pm queue
Below signature is seen in driver logs.
Target is suspended (via send_process_dhcp_ind_cmd_tlv:244)
cds_trigger_recovery_handler: critical host timeout trigger
fw recovery for reason code 34

Suspend/Resume test is run with SAP started and a ref-client
is associated with the SAP. One DHCP-Req packet is received
from ref-client before driver completes the resume process.
With SAP_DHCP_FW_IND feature enabled, driver will send one
WMI cmd to target for such DHCP packets received.

With IPA_OFFLOAD enabled, such DHCP packets are received from
the RX exception callback from IPA driver. Hence add support
to queue these DHCP packets onto pm_queue_head skb queue when
WLAN IPA component is still in suspended state. When IPA component
is resumed from suspend state, pm_queue_head skb queue will be
drained to pass up queued RX exception packets to stack.

For QCA_IPA_LL_TX_FLOW_CONTROL enabled platforms, such as WIN
chipsets, suspend/resume is not supported. Hence wrap fixes
only for !QCA_IPA_LL_TX_FLOW_CONTROL.

Change-Id: I823005d9b58d1d62eec2c044621e1c1423aa3537
CRs-Fixed: 3457254
2023-04-15 12:07:00 -07:00
Namita Nair
59a36d8e87 qcacmn: Handle deprecated interface calls to IPA
As IPA has moved out of the kernel, ipa_uc_reg_rdyCB
interface call from WLAN is not needed anymore
as ipa_wdi_init_per_inst() initialization call will
handle this. This change will add support to retain
this call only for legacy devices.

Change-Id: Icb479562e091d388e03ef5a38b3e95d4dbf06271
CRs-Fixed: 3459071
2023-04-08 13:33:12 -07:00
Namita Nair
72beba762d qcacmn: INI support for optional wifi dp
This change can enable/disable optional
wifi datapath feature from INI.

Change-Id: If380ee1e367f144f258a1e452cb3ab0cab2e33bc
CRs-Fixed: 3424492
2023-04-05 16:53:13 -07:00
Namita Nair
9293b993f1 qcacmn: Handle return status when IPA UC not loaded
Currently if IPA UC is not loaded when opt wifi dp
is enabled, the return status is not handled correctly.
This causes the qdf_event_create to happen for ipa ctx
which later triggers an assert during ipa cleanup.
This fix will handle this scenario.

Change-Id: Ie0a38bd6745f54a37be422e1d352f6c2a7960bbc
CRs-Fixed: 3444783
2023-04-03 04:31:26 -07:00
Namita Nair
bf8fcc25af qcacmn: Disable autonomy for opt wifi dp based on WLANflag
Currently IPA autonomy is disabled for opt wifi dp
feature inorder to set default packet routing
to HOST REO rings instead of IPA. The check currently
depends on the feature flag set from IPA.
But this does not handle the case if feature is
enabled from WLAN but disabled from IPA, as autonomy
will get enabled in this scenario and default packet
routing is set to IPA.
This fix will check if opt_wifi_dp feature is
enabled from WLAN and disable autonomy to
ensure the default routing is always set to
HOST REO rings.

Change-Id: I3673d7dbeefcadb45132ea300f4ec3ac22743b86
CRs-Fixed: 3450862
2023-04-02 06:53:35 -07:00
Namita Nair
d33baafbe5 qcacmn: WAR for opt_wifi_dp feature to disable IPA(1)
IPA_OFFLOAD will be enabled by  default for MSM.
This is a WAR to disable IPA offload during compile
time, based on the IPA_WDI_OPT_DPATH feature flag from IPA.
If the flag is not defined in the IPA test
module file, IPA offload path will be disabled.
This is a WAR, and will be fixed once a Kernel config is
available to enable or disable the optional wifi datapath
feature.

Change-Id: I7aad275f4d86a2ffc239f1fe343de31ec2988fad
CRs-Fixed: 3431972
2023-04-02 01:23:12 -07:00
Namita Nair
42381bb34d qcacmn: Handle RTPM counter for opt wifi dp
Inorder to keep the PCIe link up during
optional wifi dp transfer the
hif_force_wake_request() is called during
filter addition. This increments the rtpm_get counter.
Now if Wifi is disconnected before releasing the
filters, the corresponding hif_force_wake_release()
call is not made. This causes a mismatch in RTPM GET and
PUT calls and triggers an assert during hdd_wlan_stop_modules().
This change adds a cleanup call to release the force wake
and reduce the rtpm_put counter to prevent the assert.

Change-Id: Idd778275a015922376cf7eb0a7c3d92e75881fe8
CRs-Fixed: 3441186
2023-04-01 01:20:02 -07:00
Namita Nair
4e3bb0b849 qcacmn: Fix 2nd filter is null in opt wifi dp
Currently if IPA wants to add 2 filters and
send the filter params in 2 separate add
requests, HOST does not handle this correctly.
This causes the second filter params to be 0.
This change updates the correct index to be accessed.

Change-Id: Ib0a4853d46585d9529e990177fb8da20382c2fdb
CRs-Fixed: 3441196
2023-03-30 09:01:34 -07:00
Namita Nair
51e4b595d7 qcacmn: Fix filter delete check in opt wifi dp
If only a single filter is installed,
then the ip version of the second filter
param will not be set. Hence fix the check
for ip version in htt layer as it is already
verified when received from the IPA layer.

Change-Id: I05dff71aa27a254023599df0cbab51bafd0c4f82
CRs-Fixed: 3441760
2023-03-28 16:13:18 -07:00
Namita Nair
c016d7b5d9 qcacmn: Fix pipes_down flag in IPA offload
Currently pipes_down flag is not set to false
during wlan_ipa_uc_enable_pipes() because
autonomy is disabled for optional wifi dp
feature. This causes a crash while trying
to disable pipes during teardown.
This change will update the check and
set pipes_down flag to false during pipe enable.

Change-Id: I41f7e6fc942764c5ab5d3437185af9f90fb39280
CRs-Fixed: 3436012
2023-03-21 17:32:55 -07:00
Devender Kumar
f230d96802 qcacmn: Properly set WDI version for WIN chipset
Set WDI version based on SOC architecture, set WDI
version to IPA_WDI_4 for QCA_WIFI_QCN9224 chipset,
else IPA_WDI_3.

Change-Id: Ib80435e5098cfbcb9f90d4ac9cfe81ea183f308a
CRs-Fixed: 3383949
2023-03-15 22:39:08 -07:00
Namita Nair
f27ac75cff qcacmn: Fix inc/wlan_ipa_core.h documentation
Fix documentation issues in inc/wlan_ipa_core.h
identified by kernel-doc script.

Change-Id: Ibd4867f8553326078d08f2fde9469ee74a1ec963
CRs-Fixed: 3424480
2023-03-09 12:58:36 -08:00
Namita Nair
cb79729a9b qcacmn: Fix spelling of ipa_ctxt
Fix spelling of ipa_ctx to ipa_ctxt.

Change-Id: I87b00c64039078e17744f90fd865b5d034755ea4
CRs-Fixed: 3423178
2023-03-06 20:22:06 -08:00
Jeff Johnson
b46eae96f7 qcacmn: Fix IPA documentation
The kernel-doc script identified some documentation issues in the
top-level ipa folder, so fix them.

Change-Id: Ie128c65a495bab06c5207fff768a111de6bab958
CRs-Fixed: 3420684
2023-03-02 23:54:20 -08:00
Namita Nair
a33b4b04bb qcacmn: Fix opt dpath compilation error for OWRT SI
Currently, there is a compilation error on the
OWRT SI in the alternate code path when optional
dp feature is not enabled.
The caller wlan_ipa_wdi_init_set_opt_wifi_dp() passes an
argument of incompatible type. This change fixes the
compilation issue.

Change-Id: I1f2eecbb67bfb2ef17ee73ce2faedb85827b4bbc
CRs-Fixed: 3417214
2023-02-28 16:57:41 -08:00
Namita Nair
0103de1889 qcacmn: Fix single filter addition opt wifi dp
Currently when filter addition request for two
filters is sent one by one, filter handle
is not set correctly. This change handles
the condition to assign the correct filter handle.

Change-Id: I1e3ae07ee7718cf533784861003a47e6678b51be
CRs-Fixed: 3410387
2023-02-28 16:57:32 -08:00
Namita Nair
aab63b2b96 qcacmn: Add optional wifi datapath feature ipa layer
This change adds the optional wifi datapath feature
to transfer data to and from modem via WLAN.
By using the existing path between WLAN and IPA, this
change registers new interfaces between IPA and WLAN
to reserve, add, delete and release rx filters,
which are required for setting up CCE filter rules.
These filters help to determine which packets need
to be routed to IPA specific REO rings.

Change-Id: I17c2ab77ae343f15d6b79fa02bb70ed62294089c
CRs-Fixed: 3403314
2023-02-28 16:57:22 -08:00
Gaurav Saini
a64c2fbb26 qcacmn: Fix potential warnings
As per kernel doc, this file does not have proper 
comments and spelling mistake are present, due to 
which WLAN Automated code review for kernel-doc 
checker is giving error.

Fix is updating the comments based on Kernel-doc 
guidelines and correct the spelling mistake.

Change-Id: I7f8b8505b9810de2678ecfa893be78c0451cf612
CRs-Fixed: 3368472
2023-01-07 06:42:10 -08:00
Amrit
6d1cdea120 qcacmn: Add support to get rx mcast and bcast stats
Add support to get rx multicast and broadcast stats
in IPA Architecture

Change-Id: Id7cf7bb09534833af7fe620cdbd4ed452d9e4613
CRs-Fixed: 3346858
2022-12-26 03:24:51 -08:00
Chaoli Zhou
b9b7e87a10 qcacmn: Fix compile error for ROME IPA
Fix compile error for ROME IPA in the kernel-5.4.

Change-Id: I2e8a3d5f4b08ab4802c7d0d229747c389b055a69
CRs-Fixed: 3345160
2022-12-05 16:47:55 -08:00
Jeff Johnson
b861d604e2 qcacmn: ipa: Fix misspellings
Fix misspellings in ipa/...

Change-Id: I115ce0ff378e8203cdc2614f1547f5822f5b5eae
CRs-Fixed: 3304689
2022-10-06 21:31:46 -07:00
Rajesh Chauhan
bcb0f547dd qcacmn: ipa: change prototype of functions to pass dev_addr as const
In kernel 5.17, net_device->dev_addr is changed to const unsigned char*.
Modify prototype of below functions to pass dev_addr as const:

 - ucfg_ipa_wlan_evt()
 - ipa_wlan_evt()
 - wlan_ipa_wlan_evt()
 - __wlan_ipa_wlan_evt()
 - wlan_ipa_cleanup_iface()
 - wlan_ipa_send_msg()
 - wlan_ipa_setup_iface()
 - wlan_ipa_save_bssid_iface_ctx()
 - wlan_ipa_uc_find_add_assoc_sta()
 - wlan_ipa_set_peer_id()
 - wlan_ipa_set_sap_client_auth()

Change-Id: Ib2cbe8de724bc09abf82fa49c0ea08c268be34c0
CRs-Fixed: 3304829
2022-10-03 23:11:27 -07:00
Devender Kumar
1c3e98b8f0 qcacmn: Debug framework for SMMU buffer tracker
To support SMMU debug framework for IPA offload, change the
caller IPA component where SMMU map and unmap are done.

CRs-Fixed: 3255423
Change-Id: I5276c0b41c8e315940e8d4f5d3082d45b08b571b
2022-09-13 03:24:48 -07:00
Jia Ding
c6704fac9a qcacmn: Properly set WDI version for KIWI family
Set WDI version to IPA_WDI_3_V2 for KIWI and KIWI_V2 chipsets.

Change-Id: I2cda2c32f2d56f06c8a8ee84002c2dff2ea28a12
CRs-Fixed: 3247917
2022-09-09 23:53:37 -07:00
Jia Ding
e2701283b3 qcacmn: Update frag_header and ipa_header for KIWI family
Size of struct frag_header and struct ipa_header are passed to IPA
driver as destination mac address offset. Hence properly update
the definitions for KIWI family chipset so that correct offset can
be updated to IPA driver.

Change-Id: I3efdb8f4a7b4d79cf71fa5f82f3dfd356cb2b970
CRs-Fixed: 3275933
2022-08-26 00:36:01 -07:00
Devender Kumar
f07e41c395 qcacmn: EasyMesh requires 7 vap per radio
Change the Max number of session id support by IPA
to 7 as EasyMesh requires 7 vap per radio.

CRs-Fixed: 3259857
Change-Id: I24a98e10e46d3720b6e210d023c750d056786bbf
2022-08-03 22:50:07 -07:00
Devender Kumar
71cf1a4856 qcacmn: Fix for peer authorize check
When EasyMesh feature is enable at compile time but not at runtime,
then the peer authorization is not proper.
Fix is to check for peer authentication irrespective of feature enable
at compile or runtime.

CRs-Fixed: 3252225
Change-Id: I5790e054c838114318f6e819a164b0a8c7b94c83
2022-07-27 07:23:02 -07:00
Devender Kumar
6e12b33067 qcacmn: Create a new API to update wdi hdr type for IPA
Create a new API to update wdi hdr type for IPA and Fix
the return type for cdp call.

CRs-Fixed: 3246990
Change-Id: Ic8adb1f46bfeda6598a01ffdda27339cfa04ee9d
2022-07-25 14:02:17 -07:00
Himanshu Batra
7c3316638a qcacmn: Changes to support for vlan tagged traffic in IPA offload
IPA component changes to support for vlan tagged traffic in IPA offload

Change-Id: Ie28474537332d31f1ed1403ee0b774563a16a3ab
CRs-Fixed: 3229801
2022-07-21 11:02:26 -07:00
Devender Kumar
3035192763 qcacmn: Easymesh feature support
Current IPA/WLAN driver does not support the WDS feature.
Packets are dropped if they came via end-node which is not
in direct connection with root AP.

Fix is to enable WDS support and update the same to IPA
driver and create/update AST entries for end-node in
roaming, new src port learn case. Send WDS support to IPA
at wdi init and AP client connect event.

CRs-Fixed: 3226348
Change-Id: I26211613334b33d0d601629405597be329a56774
2022-07-13 02:37:14 -07:00
Devender Kumar
0fd34e472b qcacmn: Fix for netdev iface deregistration
IPA driver is not able to deregister the netdev iface
as the WLAN driver is unregistering the netdev before
giving event to the IPA driver, hence IPA driver is unable
to map the local iface mapping.
FIX is to pass the netdev interface id to IPA driver
so that IPA can get the correct netdev.

Change-Id: I6011bc01a56d90287e3a0f93b3cddf9e4b0fff9b
CRs-Fixed: 3165336
2022-06-03 04:41:32 -07:00