Commit Graph

82 Commits

Author SHA1 Message Date
David Oladunjoye
ea42cfb863 qcacmn: init: Remove WLAN_TWT_CONV_SUPPORTED flag
TWT componentization code is converged. Remove WLAN_TWT_CONV_SUPPORTED,
leaving just WLAN_SUPPORT_TWT to enable the feature code.

Change-Id: Ic7f7b1dac43e78b454bab0267dd4a58a56ab2c48
CRs-Fixed: 3285181
2022-11-16 13:39:11 -08:00
Jeff Johnson
126e35d716 qcacmn: init_deinit: Fix misspellings
Fix misspellings in init_deinit/...

Change-Id: Ibe881dbbfb5df9c9a9602c15ac843dd8491b561f
CRs-Fixed: 3304688
2022-10-10 19:21:47 -07:00
Yu Wang
67011a392c qcacmn: add support for CoAP
Add support for Constrained Application Protocol.

Change-Id: I425206a990778cf946a4805192eff4d54562a945
CRs-Fixed: 3254128
2022-08-17 23:14:34 -07:00
Aditya Kodukula
ec13c2ea39 qcacmn: Add infra to support DBAM feature
Add infra to support Dedicated Bluetooth Antenna Mode (DBAM)
feature. It is used to switch between dedicated antenna for
BT and shared antenna for WLAN and BT.

Change-Id: I21688093674ef9b63ee811df9168a31bd71c56b5
CRs-Fixed: 3239895
2022-07-17 23:12:37 -07:00
Jianmin Zhu
e0ace228c5 qcacmn: Revert "Fix issue that DFS NOL can't be cleared"
Replaced with "qcacmn: Do not access reg private if destroyed".

Change-Id: I636bcae59166ccd4719056c777682435a0a057bf
CRs-Fixed: 3158675
2022-03-25 19:12:34 -07:00
Jianmin Zhu
d94f0fb619 qcacmn: Fix issue that DFS NOL can't be cleared
When SAP off and psoc idle shutdown happens before NOL timeout,
DFS pdev obj is destroyed, NOL timer is cleared, NOL channel
is failed to clear for regulatory pdev obj is freed already.

To fix it, let NOL timer and NOL be cleared in dispatcher_pdev_close,
before pdev destroy and regulatory pdev obj destroyed.

Change-Id: I5818f8a0284a6c45e8a435ac59269df73507deeb
CRs-Fixed: 3151099
2022-03-21 22:01:25 -07:00
Srinivas Girigowda
b6ef4fe306 qcacmn: umac: Add TWT componentization structs and skeleton code
Add TWT componentization structs and skeleton code.

Change-Id: I1c99c15b94cc39c6e5c7a32eea0d8095cf72555c
CRs-Fixed: 3085344
2022-02-11 00:24:42 -08:00
Yu Wang
f13b79ec7f qcacmn: implement mlo manager APIs for mlo link set active cmd
Add interface for sending mlo link set active cmd and
register the response handler.

Change-Id: Icd7cf3294cddec1aa4a417e29a22fcd6fbea0dfb
CRs-Fixed: 3036846
2021-12-14 01:43:34 -08:00
Vikram Kandukuri
ccf6794c7e qcacmn: Add wifi radar dispatcher
Add wifi radar dispatcher APIs.

Change-Id: Ib3120604dcb5b2faa12420893fd0714dc5b2246e
2021-12-10 00:13:24 -08:00
Kani M
2c41328915 qcacmn: Enable code under WLAN_CONV_CRYPTO_SUPPORTED
This incorporates and enables the code under the flag
WLAN_CONV_CRYPTO_SUPPORTED.

Change-Id: I5be4606fac8dbf172b017cc91ba6e19af03e282b
2021-09-24 18:27:48 -07:00
Shiva Krishna Pittala
5611ef5081 qcacmn: Add upper layer support to (un)register MGMT TxRx WMI events
Add TGT layer APIs in MGMT TxRx component to (un)register WMI events.
Add psoc enable/disable handlers in MGMT TxRx component and register them.

Change-Id: Icfea29005cc9b41cccbea9c27b59222ebc1983f7
CRs-Fixed: 2959077
2021-08-04 08:08:15 -07:00
Yu Wang
dcd269c55a qcacmn: enhance crypto api to install key synchronously
Add parameter 'bool sync' for wlan_cfg80211_crypto_add_key()
to indicate whether or not to add key synchronously.
If it's set to true, wait until install key complete event
is received.

Change-Id: I9a69d486665fb3f65a5720ccfbfb638c09329418
CRs-Fixed: 2865832
2021-06-21 23:14:27 -07:00
Sandeep Puligilla
a64d8a0dbe qcacmn: MLO manager init/de-init
-Add MLO manager global init/de-init
-Add MLO manager vdev create/destroy handlers

Change-Id: I376a52ef7cae28616965bda72b5803155159eb6f
CRs-Fixed: 2947789
2021-06-17 00:12:27 -07:00
Sandeep Puligilla
cc9cfde56b qcacmn: modularize interface manager header files
Enable modularization of interface manager header files.

Change-Id: I9c7f1ffe662ecc6fe793972fde235c6c79667e62
CRs-Fixed: 2801746
2021-02-02 05:38:27 -08:00
Chaoli Zhou
eb134979c1 qcacmn: Add and enable GPIO Component
Add the common GPIO component code for MCC and WIN

Change-Id: Id93629856d42afc433844b568deb2fa63a5b67e6
2020-10-08 15:33:59 -07:00
Sandeep Puligilla
d57e7836dc qcacmn: Initialize the interface module
Initialize the interface module.

Change-Id: Ia62d17c7f92f001f00ee5cff7cf0a6d1dc4f08ce
CRs-Fixed: 2776686
2020-09-16 21:04:52 -07:00
gaurank kathpalia
506f49a0ff qcacmn: Move scoring logic to connection manager
Move bss scoring logic to connection manager.

Change-Id: If8484ec2fa8b3e2d153ae4a6caed76f3354b8965
CRs-Fixed: 2707106
2020-06-26 11:08:56 -07:00
Neha Bisht
4bda764146 qcacmn: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_lmac_if_def headerfiles from
wlan_objmgr_psoc_obj.h

Change-Id: Ibe2f22c4b4f22b15eef201d1a42844ccf2931fef
2020-05-15 10:41:50 -07:00
Edayilliam Jayadev
abdb33bb00 qcacmn: Add start scan response WMI event
Add support for processing the start scan response
WMI event. FW provides the necessary information to
segregate FFT bins to pri80, 5 MHz and sec80 in
160/165 MHz. Also, cfreq2 and the channel width is
provided to FW via WMI command.

CRs-Fixed: 2672081
Change-Id: I666b6c18a63d5d01117aa9cbd611691c6f8b2793
2020-05-13 01:30:40 -07:00
hqu
fed4bfb049 qcacmn: Add dcs component
Add dcs component to implement interference detection algorithm
and dynamic channel selection frequency control.

Change-Id: Ia201d77e77feb9de3aff03d6e389d4891dde118e
CRs-Fixed: 2594837
2020-02-13 04:12:30 -08:00
Yu Wang
1cd103900e qcacmn: Initial version of coex component
Add initial set of coex files, implement the basic functions.
Coex component is used to process coex related configurations.

CRs-Fixed: 2565088
Change-Id: I8b9600809691b808f97c621cb329a6ab9941814c
2020-01-09 02:40:23 -08:00
Wu Gao
a32b831887 qcacmn: Not register spectral to dbr when load wlan
When loading wlan host, memory alloc takes too long when registering
spectral to direct buffer rx component and affect wmi ready event
handling. So avoid to register spectral to dbr when loading wlan.

Change-Id: If48aab2cf424c41af1427f350734690918291d69
CRs-Fixed: 2558477
2019-11-25 16:15:44 -08:00
Amar Singhal
7defbc9a07 qcacmn: Call channel change callback in regulatory_pdev_open
During pdev create callback, pdev reference cannot be taken. Hence,
channel change callbacks cannot be called during pdev create. So
call the callbacks during regulatory_pdev_open. Also dont check
if regulatory_pdev_open fails.

Change-Id: I9d444f952418be983e4ac2182581d03bba02b198
CRs-Fixed: 2572487
2019-11-25 02:34:04 -08:00
Amar Singhal
8e992e56f0 qcacmn: Add check for regulatory channel list
Regulatory module calls registered callbacks when channel list is changed.
But channel list may not have been received when path for callbacks is
reached. So keep a track if channel list has been received. If not, do
not call the callbacks.

Change-Id: I2e1a6e442b0d5c79e786806e00b1c50c9491dae0
CRs-Fixed: 2563759
2019-11-19 22:33:26 -08:00
Wu Gao
da8a7e60e5 qcacmn: Cleanup CONFIG_MCL in spectral scan
Use new macro "SPECTRAL_MODULIZED_ENABLE" to replace "CONFIG_MCL" and
"CONFIG_WIN" in spectral scan component.

Change-Id: Ib0167fa7b7cb08efde8d690f24eff85dd21897a1
CRs-Fixed: 2444204
2019-05-20 22:15:52 -07:00
Abhiram Jogadenu
7b2ba92b37 qcacmn: Add support for CFR init deinit
Add support for CFR init deinit and QDF_MODULE_ID

CRs-Fixed: 2372061
Change-Id: I8468c678e03b315ec15ff94aa603e9f2bcda408e
2019-02-20 06:21:15 -08:00
Vivek
601cb9452f qcacmn: Fix number of active command timers in psoc
In psoc open, driver try to get the number of PDEV and
allocate memory for number of timers. But during psoc open number of
pdev are 0, thus timers are not allocated for non scan active queues.

Now if all scan active queues are full and a non scan command is
activated, it tries to find empty timer, which is not found, as
all timers are used by scan commands. Thus timer is not started for
this command and when this command is aborted the timer destroy API
return failure and thus the command is not removed from the active
queue.

Allocate the timer during psoc enable where pdevs are already created
and driver can get the number of pdev and print error if start timer
fails for a command.

Change-Id: Ia5b22e2849c58992a7d3d4097becc257ac673157
CRs-Fixed: 2389157
2019-01-29 21:47:31 -08:00
Srinivas Pitla
39a9222d27 qcacmn: VDEV MLME SM changes
1) Fixes to enable VDEV MLME SM with legacy code
2) Define/Enable PDEV MLME component object.

Change-Id: Ieb87e5b7b70d6bb593ba0950297894a81c6a4feb
CRs-Fixed: 2384173
2019-01-26 19:58:58 -08:00
Srinivas Pitla
1ff074ce30 qcacmn: Add support for scan and MLME synchronization
Reject scan request, if any VDEV is in START/DFS_CAC/SUSPEND states.

Change-Id: I1047ba510df5ae5debd1e3d5c8a064a57af65fbf
CRs-Fixed: 2384163
2019-01-24 09:59:14 -08:00
Shashikala Prabhu
7eb2d08e3b qcacmn: Add INI support to disable spectral feature
Add INI support to disable spectral feature and do not process the spectral
user commands if spectral feature is  disabled.

Change-Id: Id353131675454652d59fd5d5f8fd3d732a07b777
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2343947
2018-12-27 13:28:00 -08:00
Wu Gao
8e0f32b161 qcacmn: Remove TDLS component and related files from hostcmn
TDLS component used in CLD only and needn't in hostcmn. So there
is requirement to move it from hostcmn to CLD. This change removes
policy mgr related files/codes from hostcmn.

Change-Id: Ifeaf1447e74f83a17072d08c4a0ff62a13e91518
CRs-Fixed: 2361584
2018-12-13 02:38:03 -08:00
Wu Gao
c38f0e89f0 qcacmn: Remove policy mgr component and related files from hostcmn
Policy mgr component used in CLD only and needn't in hostcmn. So there
is requirement to move policy mgr component from hostcmn to cld. This
change removes policy mgr related files/codes from hostcmn.

Change-Id: Ie774d526cd4aa91b16afe6e01919141b570324c4
CRs-Fixed: 2361566
2018-12-12 03:51:58 -08:00
Wu Gao
9c68825b0b qcacmn: Remove P2P component and related files from CMN
P2P component used in CLD only, and needn't in hostcmn. So move P2P
component from hostcmn to cld. This change remove P2P related/codes
files from hostcmn.

Change-Id: I351ee153588bbcdb62041b4626370d451a3f56bb
CRs-Fixed: 2361487
2018-12-11 17:26:12 -08:00
Nachiket Kukade
2b5448d685 qcacmn: Remove NAN component and related files from CMN
NAN will not be needed in CMN codebase, to reduce the
unnecessary lines of code all the NAN related files have
been merged into CLD. Remove all those files from CMN,
remove NAN related API's and structures from init-deinit,
target if and lmac components.

Remove NAN component and related files from CMN.

Change-Id: I8fa22b84aff30cfbb7a8cd0a573acf6e0a9d8744
CRs-Fixed: 2338061
2018-12-03 15:18:11 -08:00
gaurank kathpalia
4d51e9bb73 qcacmn: Add green ap params
Add green AP params in green ap ctx
in respect to CFG convergence

Change-Id: I7a0b1352cb76464a82d727852f9a0df101d8ec4c
CRs-Fixed: 2322125
2018-10-16 04:35:04 -07:00
Srinivas Pitla
be8dac4d5d qcacmn: Define VDEV MLME component object
This change defines VDEV MLME object, and registers with object manager to
be notified on creation/destroy, and also initializes MLME SM

Change-Id: I75bb7de7326e4bbed21ef9653427c4e0694c3ffc
CRs-Fixed: 2307722
2018-09-14 08:16:48 -07:00
Dustin Brown
45b7264097 qcacmn: Enable configuration component in dispatcher
Enable the configuration component in dispatcher, by calling the
cfg_dispatcher_init() and cfg_dispatcher_deinit() functions.

Change-Id: I1aa0d79729f35be422457280700cf1121a1873bf
CRs-Fixed: 2258230
2018-07-05 14:14:03 -07:00
Sandeep Puligilla
0a341a5e92 qcacmn: Add spectral scan feature flag
Add spectral scan feature flag which can be
used to control the feature through build options.

Change-Id: Ic56416fc99b521174cccb3af27cc841bfb2ad27d
CRs-Fixed: 2244334
2018-06-06 23:49:17 -07:00
Jeff Johnson
130088fb54 qcacmn: init_deinit: Fix misspelling of 'their'
Address the following issue in the init_deinit folder:
CHECK: 'thier' may be misspelled - perhaps 'their'?

Change-Id: I1208f8cf7756c702c3d6cc6d0972fad75ea12c24
CRs-Fixed: 2241578
2018-05-19 19:40:31 -07:00
Naga
6f0eadf7be qcacmn: Add support for cp stats in init_deinit
Add support for cp stats component initialization
and deinitization, and invoke cp stats for psoc open,
close, enable and disable

CRs-Fixed: 2192386
Change-Id: I6295f86d3c9570815fe9648b3320e1d31d79bbef
2018-05-14 17:59:58 -07:00
Manikandan Mohan
5bdb2fe470 qcacmn: Fix export symbol for multi drivers compilation
Update driver files to use qdf_export_symbol to facilitate
multiple driver module compilation support.

Change-Id: Ic7d7f65b79e92957b02c0386ba98af2adf17506b
CRs-fixed: 2197751
2018-03-19 19:58:03 -07:00
Vivek
5b3912a049 qcacmn: Move mgmt descriptors per pdev for probe response throttling
In the current code, mgmt tx rx descriptors nubfs per pdev,
which are in use when driver is unloaded,
are tried to be freed in dispatcher_psoc_disable,
by iterating through the pdevs which ideally should not be available.

And in ideal conditions, there are no pdevs during psoc_disable,
there was no attempt to free the nbuf
of pdevs mgmt tx rx descriptors in use,
which could have resulted in leaks but no assert.

In some cases, by the time dispatcher_psoc_disable was called,
and pdev count was non zero, we were seeing some issue accessing
the pdev or pdev mgmt tx rx context and it was causing assert.

The mgmt tx rx descriptors nubfs
which are in use when the driver is unloaded,
should be freed in dispcatcher pdev close and
not in dispatcher psoc close.

Change-Id: Ia6ac0b2ceeb017221153dab92bf014481eca2a5b
CR's Fixed: 2187890
2018-02-22 07:26:01 -08:00
Edayilliam Jayadev
f01a81b79f qcacmn: spectral changes for gen3 HW
Process spectral summary and search fft report for
gen3 spectral HW. Add the frame work to register to
Direct dma module.

CRs-Fixed: 2184019
Change-Id: I4e2869d9c2887767d58685533265cc93c908b697
2018-02-09 09:21:04 -08:00
Shashikala Prabhu
af18e70b24 qcacmn: Fix pdev refcount issue in regulatory component
Regulatory component takes pdev reference count in pdev create handler by
invoking reg_send_scheduler_msg_sb() to call registered callback functions
to notify current channel change. We cannot take ref count in creation
handler of that pdev object since the object creation is not completed and
ref count initialization might be incomplete in some cases. For example,
if any component releases ref count, it will lead to object deletion.
If any component object fails to create, it requires complete object to be
cleaned up. That leads to leaking the object due to object reference
is held by another component.

Define dispatcher_pdev_open() and call it after creating the PDEV object.
Invoke reg_send_scheduler_msg_sb() from dispatcher_pdev_open() instead of
calling it from pdev create handler.

Change-Id: I0b000f5bbd56045abef3706182c208f63dea69aa
CRs-Fixed: 2168027
2018-01-23 22:29:19 -08:00
Subrat Mishra
bf12587bd1 qcacmn: Support for SWFDA Event & FD Frame tx
Add new WMI EVENT, SW FILS Discovery Alert Event, to get
firmware trigger to transmit FILS Discovery Frames.
Add WMI command to send FD frame buffer to firwmare.
Add WMI command to set FD period interval in mili seconds.

Change-Id: I8cb6279ec4431b9236bd32c548228a0dc6598664
CRs-Fixed: 2118098
2018-01-19 17:26:23 -08:00
akosigi
fffcebf2e9 qcacmn: Converge FTM feature
Support for FTM to make it common between WIN and MCL.

Change-Id: I4a65ca6d73d83e71f6a04405b5c41cdddb0a3c71
CRs-fixed: 2148283
2018-01-16 18:29:53 -08:00
Himanshu Agarwal
b3c81ac057 qcacmn: Green AP UMAC componentization
Add APIs, structures for Green AP component.

Change-Id: I4a39470104c89c20eec5440b7ae251a764151fd5
CRs-Fixed: 2166428
2018-01-12 12:20:17 -08:00
Sathish Kumar
7607184303 qcacmn: Clean up direct buf rx framework
Direct buffer rx framework is cleaned up to have the following
changes -

1. Init and deinit during target interface open and close to avoid
   multiple inits and deinits in case of multi-SOC chipsets
2. Register WMI events required for the framework through PSOC
   enable and disable
3. Rename API that attaches hal soc and osdev objects to psoc object
4. Module ID numbering starts from 0. Modify usage to adhere to it
5. Add API to get LMAC IF tx ops from psoc

Change-Id: Ieceeb6c0e1a89c32f23b9c252e74671cd5c4a69b
CRs-Fixed: 2167614
2018-01-11 04:43:42 -08:00
Sandeep Puligilla
1e1def7550 qcacmn: Spectral scan module initialization for MCL
Changes to support spectral module initalization
on MCL platform.

Change-Id: I968e199d0090d11480f111acca1240c3fb8117ba
CRs-Fixed: 2161633
2017-12-26 17:27:04 -08:00
Dustin Brown
e0c9f6699f qcacmn: split scheduler init/deinit
A commonly used and robust life-cycle pattern consists of the following
4 steps:

	1) create (allocate resources)
	2) start (mark resources as safe for use)
	3) stop (mark resources as unsafe for use)
	4) destroy (deallocate resources)

This pattern effectively prevents access to uninitialized and freed
resources. While the dispatcher psoc life-cycle follows this pattern,
the global life-cycle is condensed into steps 1 and 4. Unsurprisingly,
this led to uninitialized and freed resource access problems, especially
in regards to the scheduler thread.

Split the scheduler init and deinit life-cycle functions into init,
enable, disable, and deinit. Create new global enable and disable
dispatcher functions, and call the new scheduler APIs as appropriate.
This brings the global dispatcher life-cycle in line with the existing
psoc life-cycle, and prevents many scheduler related resource access
issues.

Change-Id: I58b65be0611f48e48354f28c221185f6f490f30c
CRs-Fixed: 2153283
2017-12-15 05:25:35 -08:00