Commit graph

19678 Commits

Autor SHA1 Nachricht Datum
Hariharan Ramanathan
5ec64fb74d qcacmn: Featurization of DP_TX_EXT_DESC_POOL_OPTIMIZE
This flag DP_TX_EXT_DESC_POOL_OPTIMIZE if enabled will reduce the number
of ext tx desc pool to 1.

1. Changes done to split the tx_desc and ext_tx_desc pool number
variables in alloc and free path. Based on this flag the reduced
ext_desc_pool count will be returned.

2. In Tx path, since the pool id is selected based on the CPU, changes done
to override the desc_pool_id of ext_desc_pool via new API
dp_tx_ext_desc_pool_override to 0 with which from whatever core the packets
comes from, pool 0 will be chosen for ext_desc.

Change-Id: Iae8bf9952a136ba2c55256d8f305b6d5fbde5d83
CRs-Fixed: 3552532
2023-07-21 16:50:14 -07:00
Abhishek Singh
68e0b883b4 qcacmn: Print all the remaining scan req params
Print all remaining scan req params while printing scan req.

Change-Id: If81ff0fd12a65e207576254bd787fa8711088269
CRs-Fixed: 3566116
2023-07-21 16:50:03 -07:00
Gaurav Saini
552bef7535 qcacmn: Moving peer find function in common path
peer find by mac function is getting used by
many components. so, Movng that to common path.

Change-Id: I390b86af73618661857ed80d478fe4f48bee9fe1
CRs-Fixed: 3563204
2023-07-21 10:23:45 -07:00
Deeksha Gupta
e5a70728b5 qcacmn: Add documentation and nested attribute enums for existing QCA TDLS commands
Add missing documentation and nested attribute enums for the existing
QCA TDLS vendor commands.

Change-Id: I624ed1098d2b51958296a581219d25bddfa2d677
CRs-Fixed: 3552603
2023-07-21 01:17:19 -07:00
Karthik Kantamneni
b965b762b1 qcacmn: Fix race with F.W in updating CE control register
In current case when RRI on DDR feature is enabled then host
programs CE control register, but there is chance of F.W also
programming the CE control register around same time this leads
to race and chance of either host/F.W value getting over written.

So to avoid this while programming the CE control register for
RRI on DDR enablement, update it with F.W programming value also
i.e DMA length. So if incase register value over written due to
race proper value will be updated to register either by host/F.W.

Change-Id: I2560c74726b21128d1cd50805d987fda1b2a1230
CRs-Fixed: 3561689
2023-07-21 01:17:09 -07:00
Mohan Prabu
089380cefb qcacmn: Update cfg80211_ch_switch_notify() to kernel_6.x
Introduced new macro CFG80211_PUNCTURING_SINGLE_NETDEV_API
to be used if we want to pass puncture bitmap as an argument
to kernel, else disable it.

Change-Id: I136e09d547bc14e57be5ee0b026a51f0d6e4a525
CRs-Fixed: 3487912
2023-07-21 01:16:58 -07:00
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
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
Sai Pratyusha Magam
799450bbce qcacmn: Changes for 11az related security params
Changes for 11az related security params.

Change-Id: I28414f046ec7aa01152df605a6c4f99d243ff587
CRs-Fixed: 3560800
2023-07-20 19:19:13 -07:00
Ripan Deuri
16b711679f qcacmn: Enable SCS rule config for SAWF
Enable SCS rule config for SAWF.

Change-Id: Ia4e1b72075b7b50317ec5e1d6fd95b80f557d713
CRs-Fixed: 3554761
2023-07-20 19:19:02 -07:00
Pragaspathi Thilagaraj
50de05c257 qcacmn: Add support to enable CFR for EVROS
Add support to enable CFR for EVROS

Change-Id: Ie6feea940d40b04d54058d662116deb2b6972a5e
CRs-Fixed: 3528559
2023-07-20 01:12:16 -07:00
Venkateswara Swamy Bandaru
ba8e167b7a qcacmn: Add API get vdevs of peer
Add API to get vdevs per link of MLO peer.

Change-Id: I02aab17424b1f6b98868347291de98f082b267a5
CRs-Fixed: 3560163
2023-07-20 01:12:05 -07:00
Yu Tian
f2211bb521 qcacmn: Debug patch for delay reg queue corrupt
Add ring_id check for potential srng pointer corruption.

Change-Id:Ib14634fe31bfdae86aac6c89e5d65618ae5c753e
CRs-Fixed: 3549490
2023-07-20 01:11:55 -07:00
Zhiwei Yang
7709435525 qcacmn: add hif_event_desc_history to ssr driver dump
Current code doesn't have hif_event_desc_history in ssr driver dump.
Fix this by adding hif_event_desc_history and hif_event_hist_max to
the ssr driver dump regions.

And add more parameters for parsing hif_ce_desc_history_buff.

Change-Id: I02cbfc7b9ea0c53d31ad351377d4644f1ad189d1
CRs-Fixed: 3469140
2023-07-19 22:04:02 -07:00
Manikanta Pubbisetty
94c5606254 qcacmn: Reduce size of T2H HTT CE pipe for WCN6750
Currently, the size of target to host CE pipe for HTT RX communication
for WCN6750 is 512. The data that we receive on this pipe is not very
frequent and hence 512 entries are not needed.

Reduce the size of the HTT RX ring for WCN6750. This will also bring
down the memory requirement for this ring considerably.

Change-Id: I690fa34c76b1b683a1518964088bc7540ca751a4
CRs-Fixed: 3554428
2023-07-19 16:54:33 -07:00
Madhavan Ganesan
6e25e7d35e qcacmn: Fill BAR address for IPQ5332, QCN6122 and QCA5018 chipset
Update the BAR address to plat_priv for IPQ5332, QCA5018 and QCN6122.

CRs-Fixed: 3198433
Change-Id: I5e22ebcdb6b42474bdc8e8f89ff66e0775b00958
2023-07-19 12:11:47 -07:00
Paul Zhang
1ce24c7251 qcacmn: Add wmi param and export structure
Add wmi param and export api for setting wifi standard.
- add param vdev_param_wifi_standard_version;
- export structure WMI_HOST_WIFI_STANDARD.

Change-Id: I8f4151d8d6139c99a4dd6d1a75502f4cf93d5f3a
CRs-Fixed: 3554259
2023-07-19 12:11:36 -07:00
Vijay Raj
de88d935fd qcacmn: Improve accessibility of target_if_is_vdev_valid
Move  api target_if_is_vdev_valid() in order to improve
its accessibility.

Change-Id: Ia2085da6ab62144fb690b9474359caa31b415e74
CRs-Fixed: 3555929
2023-07-18 22:55:59 -07:00
Srinivas Girigowda
afd51dc121 qcacmn: Add local packet capture type based filtering
For the control frames regenerated by the host driver based on the
TxMon TLV, add the local packet capture type based filtering.

Change-Id: If6b47368ce36524e1c84c51c298278ced671b915
CRs-Fixed: 3531895
2023-07-18 22:55:44 -07:00
Yu Tian
0728e55056 qcacmn: Fix TX completion configurations
TX completion ring is not configured correctly when Qdata
is enabled. This change is aimed to fix the regression.

Change-Id: Ib14a1c3a3cd57693579cedda5713eb539e853961
CRs-Fixed: 3557033
2023-07-18 22:55:27 -07:00
syed touqeer pasha
cfe92008b4 qcacmn: Increase the REO2PPE ring size to 16K
Increase the REO2PPE ring size to 16K

Change-Id: I55c3db729d233ce67f141e3769d56cdb0c028b05
CRs-Fixed: 3516282
2023-07-18 12:50:20 -07:00
Deeksha Gupta
9b7258ffff qcacmn: update mlme info for standby link
update  AP link information for standby link.

Change-Id: Ie5ff52e2ecea4548f738965efcfee54e08f63eb5
CRs-Fixed: 3530713
2023-07-18 12:50:10 -07:00
Aravind Kishore Sukla
23374c26c5 qcacmn: Send sta dump feature info to fw
Driver sends feature set information to fw as
part of wmi init command.

Fill sta dump feature info in feature set bitmap
and send it to fw.

Change-Id: If28cd8f10af2333f0f231f0c4ae659ab20c1358a
CRs-Fixed: 3552909
2023-07-18 12:49:59 -07:00
Shreedhar Parande
3177c12082 qcacmn: Define new list for bridge VDEVs
Declare new list to hold bridge VDEVs in MLD context.

Change-Id: I0cfe563708462faca272f9e7d4c8489a8fd9dfc0
CRs-Fixed: 3554509
2023-07-18 09:51:59 -07:00
Shreedhar Parande
86ee88bd0d qcacmn: Send bridge peer flag to target
Add and send bridge peer flag to fw.

Change-Id: I15ab04a8646975ad4cc85a66b632f85e359a9158
CRs-Fixed: 3554509
2023-07-18 09:51:47 -07:00
Shreedhar Parande
8911b3d9eb qcacmn: Add new subtype for bridge VDEV
Define new subtype for bridge VDEV.
Add a flag in vdev objmgr to indicate bridge VDEV.

Change-Id: Icb7e2cc6673254183a7247f42fadd9bbb2ec4b00
CRs-Fixed: 3554509
2023-07-18 09:51:36 -07:00
Manikanta Pubbisetty
621c2d72b8 qcacmn: Use qdf_nbuf_page_frag_alloc() for WBUFF SKBs
Since SKBs allocated from the WBUFF module are reusable SKBs, allocate
them using qdf_nbuf_page_frag_alloc() to have memory savings and also
to avoid memory fragmentation issues.

Change-Id: Icecf4f6de0842a8c767217281984c4ef25e9b9be
CRs-Fixed: 3559261
2023-07-18 09:51:25 -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
Manikanta Pubbisetty
cbe8170798 qcacmn: Add HIF CE RX support to WBUFF
Currently, WBUFF is being used only for WMI TX buffers.
Add HIF CE RX buffers support to WBUFF in an effort to re-use
the copy engine RX buffers instead of freeing/allocating buffers
for every CE RX transaction. This fixes the problem of CE RX
memory fragmentation.

Change-Id: Id9c043a5c5d0882a7994fa03cd8c335555d46b8d
CRs-Fixed: 3534539
2023-07-18 09:51:03 -07:00
Manikanta Pubbisetty
9b27c6e104 qcacmn: Cleanup WBUFF code to support additional modules
Currently, WBUFF logic is being used only for WMI TX buffers and the
logic is closely tied to the WMI TX buffers alone. It is cumbersome
to extend the support of WBUFF for additional modules in the current
state.

Cleanup the WBUFF code and make it generic to add future module
additions.

Change-Id: Ib20ddd487b4e88c3225da1883ad9ade722c2a606
CRs-Fixed: 3520811
2023-07-18 09:50:53 -07:00
Asutosh Mohapatra
fd1d804527 qcacmn: Don't stop 11d scan if SAP, P2P GO comes up
Currently if 11d scan is enabled and any SAP or
P2P GO interfaces comes up then host sends 11d
scan stop to fw hence country info is not getting
updated.
With this change add support to not disable
11d scan if any SAP or P2P GO interface comes up.

Change-Id: I30d089f37d20ae4019e34d5413f09edc4a6910a5
CRs-Fixed: 3536658
2023-07-18 04:13:15 -07:00
Mukul Dhiman
8c4f4c721c qcacmn: Add cdp api to fetch mldev mode
Add cdp api to fetch mldev mode

Change-Id: I06ed37ddbce96249e957f1664082bffe5afb2fc5
CRs-Fixed: 3501087
2023-07-18 04:13:04 -07:00
Aditya Kodukula
22eb121fe7 qcacmn: Fix improper arguments for QDF_MAC_ADDR_REF
Currently in driver while using QDF_MAC_ADDR_FMT to print mac
address, the mac address reference provided to QDF_MAC_ADDR_REF is
incorrect in some cases. Fix all such instances.

Change-Id: I324581691dfe683e0d5b046e19b444928657ce05
CRs-Fixed: 3556423
2023-07-17 22:37:45 -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
aloksing
754c291a51 qcacmn: Do not update tx rate stats for fixed rate
Update rounded avg rate only for qos tid and if TX is
not at fixed rate.

CRs-Fixed: 3531181
Change-Id: I03a9a2b88b7859bd230672e6ac321d31a71defef
2023-07-17 22:37:23 -07:00
Aditya Kodukula
d3be64a66d qcacmn: Add wlan_logging structure to wlan minidump
Add wlan_logging structure to wlan minidump regions.

Change-Id: I03f8aea58f0521e97ab7470db3b6280ea2fa627c
CRs-Fixed: 3559452
2023-07-17 16:33:52 -07:00
Deeksha Gupta
c22f6c569a qcacmn: convert host to fw phymode enum
During ML peer assoc info send, convert host to fw
phymode enum.

Change-Id: I3744b09f629d3c6b55394d56cd58042f86eec332
CRs-Fixed: 3557285
2023-07-17 13:24:59 -07:00
Paul Zhang
e740ac98ec qcacmn: Add user_disable_eht flag in mlme_vdev
Add user_disable_eht flag in mlme_vdev structure and APIs to
set/get the config from user.

Change-Id: I77c1357919cd2245551b6dbdd120355bf5c1b3ff
CRs-Fixed: 3554951
2023-07-17 07:51:30 -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
Aasir Rasheed
b41a05e709 qcacmn: Update crypto module to translate cfg80211 keys
Currently crypto module is using wlan_cfg80211_translate_key
api to translate cfg80211 keys based on vdev level.
However, there is a need to translate cfg80211 keys
based on psoc level.
The change is to use wlan_cfg80211_translate_ml_sta_key
api to translate cfg80211 keys based on psoc level.

Change-Id: Id642dfb0b864f4351d9cac055ad268dfcd51ae88
CRs-Fixed: 3549391
2023-07-16 14:02:56 -07:00
Karthik Kantamneni
9b0e01604d qcacmn: Add support to configure MSDU max aggregation limit
Currently FISA max msdu aggregation limit is fixed and always
programmed as 0xf, but there are platforms which support different
aggregation limit. So add support to configure different aggregation
limits while sending HTT FISA config message to F.W.

Change-Id: Icbf9b7a48a88dcbfb812e92c8f4032753fc07dc4
CRs-Fixed: 3542497
2023-07-16 10:23:54 -07:00
Karthik Kantamneni
9fad850066 qcacmn: Add FISA dynamic MSDU aggregation size support
Add support in driver to check whether F.W supports
dynamic MSDU aggregation size programming to H.W.

Change-Id: Ifb2d41efb23934414cce38753df82e1d15f01e11
CRs-Fixed: 3540531
2023-07-15 13:34:17 -07:00
Divya R
526fa532f0 qcacmn: change datatype from int8_t to uint8_t
In Change-Id: I840d7911d0ac85181a09ea98658a661644f43b9c, the datatype
of the variable 'i' was inadvertently changed from 'uint8_t' to 'int8_t'.
Change it back to 'uint8_t'.

Change-Id: I6e2ae00f9291f958b3702b71b3444a94e5e4388a
CRs-Fixed: 3551099
2023-07-15 00:30:19 -07:00
Jyoti Kumari
5e9c54ba84 qcacmn: Add wake_dur & wake_interval in twt_peer_priv_obj struct
Add wake_dur & wake_interval in twt_peer_priv_obj struct to store
TWT wake duration and wake interval. This info is needed to
decide LL_SAP CSA path indication (either via GATT message or
ECSA action frame)

Change-Id: I0b3ead0567dc69a7c8e53e9c45f51637609ade7c
CRs-Fixed: 3522643
2023-07-14 15:42:20 -07:00
Manikanta Pubbisetty
3ea9fb0844 qcacmn: Rename mslot/pslot with module_id/pool_id
Currently in WBUFF code, mslot/pslot is used to refer module_id/pool_id
and there are references of them being used interchangeably.

Rename mslot/pslot to module_id/pool_id to improve the readability of
the code. This is the pre-requisite to support mutilple modules in WBUFF
which will be added with a future patch.

Change-Id: Ia5a113535cff950cd3f464b6133370f026d4fc87
CRs-Fixed: 3516982
2023-07-14 15:42:09 -07:00
Azmath Mohammed
2baa26c9b4 qcacmn: Added a check in "dp_hw_cookie_conversion_detach"
When the mem_alloc fails and fails to create spinlock
checks the mem allocation before destroying spinlock.

Change-Id: Id4c1a509cd0bb534040040f6948d3307181dc909
CRs-Fixed: 3552551
2023-07-14 15:41:57 -07:00
Divya R
50956c4387 qcacmn: Use correct opclass table to populate 6 GHz op class
'wifitool athX setbssidpref' command is used to the
set bssid preference value  for mac address.
'wifitool athX sendbstmreq' command is used to
trigger BTM request frame from the AP to make MCC STA roam from
one AP to another.The preference value from the 'setbssidpref'
command is not reflected in the 'Neighbor report' IE in the
BTM request frame in 5 GHz device. In case of 5 GHz device, 6 GHz op
class are not populated since two global op class structure are
maintained and  6 GHz channels are missing from the list of channels
supported from the old structure (global_operating_class).
This is causing the AP to exclude the preference value
from setbssidpref command.

To fix this, popluate 6 GHz supported op class from new
global_op_class structure instead of old global_operating_class structure.

Change-Id: Id2275c9862518c613773d6ae810d59dea8b854b1
CRs-Fixed: 3549953
2023-07-14 15:41:46 -07:00
Shailendra Singh
584096fde4 qcacmn: Add change to extract per vdev tx power
Add change to extract vdev tx power from vdev extended stats.

Change-Id: I929d642a649653cbbbd3911a11dbba92377f70d1
CRs-Fixed: 3496091
2023-07-14 10:07:46 -07:00
Sai Rupesh Chevuru
a7af205870 qcacmn: populate the bridge vap in partner list
populate the bridge vap in partner list

Change-Id: Ie7c0ebc3b796f2b57e7837577079dcd1d4faac45
CRs-Fixed: 3550201
2023-07-14 10:07:31 -07:00
Surya Prakash Sivaraj
7147d2a4d2 qcacmn: Remove interfering frequency from scan list
Remove the interfering 6 GHz inaddition to the 5 GHz
channels from the scan list, if the DFS SAP is present.

Change-Id: Ia7dd5b87fe762d8ba326f9b7ac508731563312ba
CRs-Fixed: 3555971
2023-07-14 10:07:20 -07:00