Add support to configure spectral scan bandwidth as provided by the user.
Validate the user configured value before applying it. As the spectral scan
bandwidth is an optional parameter, when the user doesn't configure it, use
configure the spectral scan bandwidth to the maximum value supported by the
target for the current operating bandwidth.
Also, populate the spectral scan bandwidths supported for different
operating bandwidths on different targets.
CRs-Fixed: 3042424
Change-Id: I266aa5489b0ce5c149968067a06e1cc65bb4e3b7
If Spectral scan is disabled(agile and normal mode disabled)
skip init/deinit of Spectral module. Also avoid user requests
to configure/start/stop scan. If either agile or normal mode
is disabled block user requests for that mode alone.
CRs-Fixed: 2840335
Change-Id: I81148e5580fe4bf991b97cd086c8e3a9ca78e77d
Add the following Spectral scan capabilities at the pdev level.
a) Normal Spectral scan capability
b) Agile Spectral scan capability for 20/40/80 MHz
c) Agile Spectral scan capability for 160 MHz
d) Agile Spectral scan capability for 80+80 MHz
Also change the definition of existing Spectral scan capability
at psoc level.
CRs-Fixed: 2840144
Change-Id: I18be48ec4095fa29b62800a9df58b72295747547
Remove direct attach directory references in Kbuild
of spectral source code.
Also, remove DA_SUPPORT macro specific code changes
Change-Id: I5a06e9bd3f40ee6d177951562836c4ea7647f98b
The Spectral module uses the first vdev of a pdev for scanning.
For MCL platforms all the vdevs are associated with a single pdev
and this may cause a mismatch between the vdev intended by user and
the vdev used by driver. To avoid this MCL platforms pass a reference
to vdev on which Spectral scan is triggered. WIN platforms
can continue to use the old approach of using the first vdev of a
pdev by passing NULL for vdev to vendor command handlers.
CRS-Fixed: 2725777
Change-Id: I1a7278bdcbcc2b706aa292b33c17546190dac082
It starts spectral scan without vdev object, and uses the first vdev
as current vdev. which cause vdev mismatch in some platforms. So pass
vdev object or id when finding current vdev.
Change-Id: Iab55afbe2c98906021a008918f186d3d2dce5871
CRS-Fixed: 2716460
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
Some targets have a single synthesizer and it allows
a single Spectral detector to scan in 160 MHz /165 MHz.
Enable Agile Spectral scanning in 160 MHz / 165 MHz for
such targets. Agile creq2 will be populated in the WMI
command after WMI interface changes are merged.
CRs-Fixed: 2648480
Change-Id: I8522cbeeab29ac41479e3041eea376b081c0758a
All gen III chipsets use Direct-DMA mechanism to copy Spectral reports to
the Host for further processing. This mechanism involves ring and buffer
management in the Host, FW, and uCode, where improper/incomplete DMA and
improper tail update issues are seen. DBR framework provides support to
debug such issues. Add Spectral control path support to facilitate the
configuration of these debug options.
CRs-Fixed: 2478596 2478595
Change-Id: I094616c4137145389b6984ccab933e5ebd0aa1ab
QCA_SINGLE_WIFI_3_0 directive is used to build
single wifi module, it is disabled by default.
This is intended for used in whunt case,the default
driver still uses separate spectral modules.
Change-Id: I6d0d66ade3784f7f4c0a3f322db2e79cbc246d56
Validate user provided agile center frequency and throw
an error if it is invalid.
CRs-Fixed: 2529280
Change-Id: Ibb43dda98d29d8bc8360d1a204c67b64ca987ca6
Add an attribute which describes the error code
in the response to set config, start scan and stop
scan.
CRs-Fixed: 2500481
Change-Id: I491cd6e061d2d08ceb4d9af2a7de5223e229c280
Change Spectral report processing logic to handle
Agile Spectral reports. 160 MHz state machine is not
affected by Agile Spectral reports.
CRs-Fixed: 2458359
Change-Id: Iead6427f57edddd61f7d64a961cc6d936d54ab9e
Add a new request structure for Specteral control path.
This structure packages all the commands and their
required inputs. Response to the commands are filled
in this structure by the command handlers in lower
layers.
CRs-Fixed: 2446466
Change-Id: I3113e8721382d284b4e03e0f8fdab1e68d5cfaa1
Use new macro "SPECTRAL_MODULIZED_ENABLE" to replace "CONFIG_MCL" and
"CONFIG_WIN" in spectral scan component.
Change-Id: Ib0167fa7b7cb08efde8d690f24eff85dd21897a1
CRs-Fixed: 2444204
Add the rate limited variants of the QDF trace based logging functions
for Spectral. These include the sub-variants with and without
file/line information.
Change-Id: I56be5dcdfb070e8212c4e9a7e1c1140bfdfaae05
CRs-Fixed: 2426985
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
Component level logging functions of Spectral module are calling
vprintk internally, change them to use QDF trace APIs
so that Spectral logging can be controlled at run time from qdf_cv_lvl.
Change-Id: I8244a29918718c70a8f384ea8df2d5c2ad5bfad2
CRs-Fixed: 2369842
Remove CONFIG_WIN from spectral module to achieve maximum
possible convergence.
CRs-Fixed: 2354105
Change-Id: I59e4d8029fcf096042741573cf020136747e7367
* Move spectral DA files to a DA specific directory.
The new DA specific directory will be under a new git root.
* DA:- Direct Attach
Change-Id: Ifd1325bd822015a894ff2a67ed4b53dae24e4a28
Add API to get first vdev of any given pdev.
Change spectral module's API accordingly.
CRs-Fixed: 2234801
Change-Id: I6c5f0aefad4a71610300810531b8c893471306ad
Define os_if_spectral_netlink_deinit to close the Spectral socket and
de-register the os_if callbacks
Change-Id: I3d054c2a2d630d4d959861d3620592010d04c09a
CRs-Fixed: 2186113
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
Spectral Netlink related APIs are currently present in
target_if layer, move them to os_if layer.
Change-Id: I86a5495f6ec8aa85a2e9639902503a522b023f8e
CRs-Fixed: 2151548
If the definition of an API in umac layer is same for
both OL and DA chipsets, it is better to have a single
implementation of that API for maintainance pursposes.
tgt file is the placeholder for such APIs.
CRs-Fixed: 2151543
Change-Id: I3ae969452b10f6d81e46351a74ed9d4c3f5ea96c
Current Spectral module uses qdf_print. To improve the control over
logging, use module level logging
CRs-Fixed: 2165341
Change-Id: I205991347453c4dcc424ba1958e309b7c5fb71a0
Current Spectral core functionality is not following coding
convention rules in some places.
Change-Id: I2109e510351d254652cbab16f09e52ec463abebb
CRs-Fixed: 2151550
Use table of function pointers for legacy api calls
instead of calling legacy apis directely
CRs-Fixed: 2146231
Change-Id: Ia5840208d0de5bd4e78c1d27b8ffdc0cf6cbf298
Add following vendor commands and their handlers.
1) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_START
Set the spectral parameters and start scan.
2) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_STATUS
Stop spectral scan.
3) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CONFIG
Get current values of spectral parameters.
4) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_DIAG_STATS
Get stats for spectral scan debug.
5) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CAP_INFO
Get the spectral hardware capability.
6) QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_STATUS
Get the current status of spectral scan.
CRs-Fixed: 2146272
Change-Id: I8e048d6c21e9fb1ed286c19df0edcad46f6e6414
Removing WIN specific structures 'scn' and 'ic'
from the spectral module in cmn_dev
CRs-Fixed: 2146258
Change-Id: Ie4def4dfb401f4b1a5920277f8fa79acb67dd46b
As part of second phase of Spectral Analysis(SA)
convergence [WIN & MCL], spectral module code is being moved to cmn_dev.
Also includes fixes for checkpatch.
CRs-Fixed: 2146231
Change-Id: I939509193786b0bd2cbd5f1af64d4a94739a2af5