Commit Graph

66 Commits

Author SHA1 Message Date
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
Dustin Brown
53acad9180 qcacmn: Add dispatcher enable/disable stubs
In preparation for splitting dispatcher init/deinit into init, enable,
disable, and deinit, add stubs for the new enable/disable dispatcher
calls. This will ease the transition for code that will leverage the new
APIs.

Change-Id: Ideee2db05f87978d5ad0796fba5e46042d5b4d41
CRs-Fixed: 2153871
2017-12-07 15:39:14 -08:00
Himanshu Agarwal
2afd447999 qcacmn: Free netbuf and release peer ref at driver unload time
Free netbuf and release peer ref for tx frames for which tx completions
are not received from fw during driver unload time in
wlan_mgmt_txrx_psoc_close().

Change-Id: I8d5fb2e79f14a978473ab3754d9e495eb09eddaa
CRs-Fixed: 2122505
2017-10-26 01:40:13 -07:00
Shashikala Prabhu
76192e12a9 qcacmn: Register a DFS callback function to get AP CAC status
In Repeater AP scenario, when STA vap starts scan, it calls this
registered DFS callback function to get the AP CAC status. If the
AP vap is performing CAC, STA vap does not start SCAN.

Change-Id: Ifa3ad0298f1b04f3fffc915f20ff81ec0cc731bf
CRs-Fixed: 2096259
2017-09-02 00:17:42 -07:00
Mukul Sharma
a4b8d35756 qcacmn: Move PMO from CMN to CLD
Move PMO from CMN to CLD.

Change-Id: I0545e7d2c934ff6558694b439b33c1debf0f5e0a
CRs-fixed: 2071526
2017-07-14 17:36:04 -07:00
Author: Neil Zhao
5ad91c1a6f qcacmn: part of FR 38654 splitmac(umac converge)
1) WLAN driver doesn’t response to management frames.
e.g. associate request.
2) WLAN controller will process and send response to AP,
AP sends response to WIFI client.
Modified hostapd is used for testing purpose.
3) WLAN controller calls splitmac API(add_client) to
add WIFI client using specified info e.g. rates etc. on AP.
4) Do the rest init, e.g. EAPOL exchanges.

Change-Id: I688c598b6b879a1ab5f21457e299c47ccede79b0
CRs-Fixed: 2034582
2017-05-19 17:39:40 -07:00
Venkateswara Swamy Bandaru
0b9f5ec37c qcacmn: Smart antenna API convergence
Added sa_api_tx_ops, sa_api_rx_ops and their initialization. SA API component
id is also added along with sa_api objmanager calls.

Change-Id: I2e912106dcc900e5eba19090c0157827e08264f3
CRs-fixed: 2038298
2017-05-11 10:45:35 +05:30
Bharat Bhushan Chakravarty
145d393444 qcacmn: SON convergence
1) Defined modularized public api for cdp module
to track inactivity and over load detection.
2) Initialization calls are added to attach and
detach SON specific api.
3) operating system specific calls are replaced with qdf calls.

Change-Id: I130d1e99208d6454f5d9888774534cc6d619ad83
2017-05-09 17:29:11 -07:00
Krunal Soni
1880b6f8a6 qcacmn: Change init-deinit sequence of scheduler & call flush callback
Provide fix such a way that scheduler's initialization happens at the end after
all components' initialization gets done. Same-way scheduler's
deinitiazation happens very first before other component's deinit gets
started.

scheduler also need to call component's provided callback to notify
that component while flushing component's message queue.

CRs-Fixed: 2034772
Change-Id: I2c46bf9e68b93ecbc2ce9659d56de2887573411e
2017-05-03 03:06:33 -07:00
Tushnim Bhattacharyya
b3cbf84777 qcacmn: Fix memory leak at policy manager initialization
Fix memory leak in policy manager init/deinit sequence.

Change-Id: I3c1728f2becb16b415f532acf657c7c29dc76122
CRs-Fixed: 2009818
2017-04-27 23:59:21 -07:00
Arif Hussain
c64510ba8b qcacmn: Process DFS events from firmware
Add support to process DFS events from firmware.

Change-Id: I38bea404fdb50d80430c8b14a2a4f6a729d3557e
CRs-Fixed: 2017481
2017-04-20 20:20:46 -07:00
Frank Liu
cda0961ecc qcacmn: Enable TDLS component
Enable TDLS module in dispatcher

Change-Id: I4b1fe09278115a90eb6b19ed6ce8fef57143a910
CRs-Fixed: 2011330
2017-04-20 00:04:44 -07:00
Abhijit Pradhan
4a3a13d73e qcacmn: Revert disablement of regulatory component
Regulatory component was disabled in change
 I2d2b6cff74a174c19cd1a84c63e3009fc952d165 due to null range
value crash. That crash is fixed now. So re-enable regulatory
component..

Change-Id: I42a297bbe4e2b7c627fb11b2edc6323395ab8f8c
CRs-Fixed: 2002892
2017-04-14 05:49:10 -07:00
Kiran Venkatappa
3453674e75 qcacmn: Off-chan txrx componentization changes
Add new module id for offchan txrx compotent and call offchan init/deint.

Change-Id: I803925d2dafdbe3800636de4e5ac4ae69c4851d0
CRs-Fixed: 2030050
2017-04-12 06:02:11 -07:00
Abhijit Pradhan
3228727ce2 qcacmn: Regulatory component is disabled to fix the crash in X86
Array overflow causes kernel panic. Need to fix it in future;
disabling the regdb component now.

Change-Id: I2d2b6cff74a174c19cd1a84c63e3009fc952d165
CRs-Fixed: 2002892
2017-04-11 11:45:49 -07:00
Amar Singhal
5e7f1dc1d1 qcacmn: Activate init and deinit for regulatory component
Call APIs to register regulatory component for pdev/psoc
messages. Also call regulatory APIs for dispatcher psoc open.

Change-Id: Ib0e735dfaf7ab9b9960196774d77ad070cf04406
CRs-Fixed: 2002892
2017-04-04 12:34:48 -07:00
Abhijit Pradhan
5ae2b3ade6 qcacmn: Changes for DFS component to interact with southbound
Define DFS tx and rx ops in lmac_if layer and register rx ops with
DFS module statically inside wlan_lmac_if_register_rx_handlers.

Change-Id: I17f8fb74c244e841c0b05565fb902ebc70d31606
CRs-Fixed: 2001106
2017-04-03 13:47:13 -07:00