qcacmn: Move the spectral tgt layer functionality to tgt file

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
This commit is contained in:
Shiva Krishna Pittala
2017-12-28 17:17:11 +05:30
committed by snandini
parent 71155a3e48
commit 82032dd2a4
4 changed files with 366 additions and 611 deletions

View File

@@ -18,308 +18,7 @@
*/ */
#include "spectral_cmn_api_i.h" #include "spectral_cmn_api_i.h"
#include "../dispatcher/inc/wlan_spectral_tgt_api.h"
/**
* spectral_control_da()- handler for demultiplexing requests from higher layer
* @pdev: reference to global pdev object
* @id: spectral config command id
* @indata: reference to input data
* @insize: input data size
* @outdata: reference to output data
* @outsize: output data size
*
* This function processes the spectral config command
* and appropriate handlers are invoked.
*
* Return: 0 success else failure
*/
int
spectral_control_da(struct wlan_objmgr_pdev *pdev, u_int id, void *indata,
uint32_t insize, void *outdata, uint32_t *outsize)
{
struct spectral_context *sc;
int error = 0;
if (!pdev) {
spectral_err("PDEV is NULL!");
return -EPERM;
}
sc = spectral_get_spectral_ctx_from_pdev(pdev);
if (!sc) {
spectral_err("spectral context is NULL!");
return -EPERM;
}
/*
* Note: Add handling for the cases SPECTRAL_ADC_ENABLE_TEST_ADDAC_MODE
* SPECTRAL_ADC_DISABLE_TEST_ADDAC_MODE and SPECTRAL_ADC_RETRIEVE_DATA,
* when raw ADC capture is needed.
* This is only applicable for direct attach chipsets.
*/
error = spectral_control_cmn(pdev,
id,
indata, insize, outdata, outsize);
return error;
}
/**
* pdev_spectral_init_da() - offload implementation for spectral init
* @pdev: Pointer to pdev
*
* Return: On success, pointer to Spectral target_if internal private data, on
* failure, NULL
*/
static void *
pdev_spectral_init_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_init(
pdev);
}
/**
* pdev_spectral_deinit_da() - offload implementation for spectral de-init
* @pdev: Pointer to pdev
*
* Return: None
*/
static void
pdev_spectral_deinit_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_deinit(pdev);
}
/**
* set_spectral_config_da() - Set spectral config
* @pdev: Pointer to pdev object
* @threshtype: spectral parameter type
* @value: value to be configured for the given spectral parameter
*
* DA implementation for setting spectral config
*
* Return: 0 on success else failure
*/
static int
set_spectral_config_da(struct wlan_objmgr_pdev *pdev,
const uint32_t threshtype, const uint32_t value)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_spectral_config(
pdev, threshtype, value);
}
/**
* get_spectral_config_da() - Get spectral configuration
* @pdev: Pointer to pdev object
* @param: Pointer to spectral_config structure in which the configuration
* should be returned
*
* DA implementation for getting the current spectral configuration
*
* Return: None
*/
static void
get_spectral_config_da(struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_config(
pdev,
sptrl_config);
}
/**
* start_spectral_scan_da() - Start spectral scan
* @pdev: Pointer to pdev object
*
* DA implementation for starting spectral scan
*
* Return: 0 in case of success, -1 on failure
*/
static int
start_spectral_scan_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_start_spectral_scan(
pdev);
}
/**
* stop_spectral_scan_da() - Stop spectral scan
* @pdev: Pointer to pdev object
*
* DA implementation for stop spectral scan
*
* Return: None
*/
static void
stop_spectral_scan_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_stop_spectral_scan(pdev);
}
/**
* is_spectral_active_da() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* DA implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
static bool
is_spectral_active_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_active(
pdev);
}
/**
* is_spectral_enabled_da() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* DA implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
static bool
is_spectral_enabled_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_enabled(
pdev);
}
/**
* set_debug_level_da() - Set debug level for Spectral
* @pdev: Pointer to pdev object
* @debug_level: Debug level
*
* DA implementation to set the debug level for Spectral
*
* Return: 0 in case of success
*/
static int
set_debug_level_da(struct wlan_objmgr_pdev *pdev, uint32_t debug_level)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_debug_level(
pdev,
debug_level);
}
/**
* get_debug_level_da() - Get debug level for Spectral
* @pdev: Pointer to pdev object
*
* DA implementation to get the debug level for Spectral
*
* Return: Current debug level
*/
static uint32_t
get_debug_level_da(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_debug_level(pdev);
}
/**
* get_spectral_capinfo_da() - Get Spectral capability information
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* DA implementation to get the spectral capability information
*
* Return: void
*/
static void
get_spectral_capinfo_da(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_capinfo(
pdev, outdata);
}
/**
* get_spectral_diagstats_da() - Get Spectral diagnostic statistics
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* DA implementation to get the spectral diagnostic statistics
*
* Return: void
*/
static void
get_spectral_diagstats_da(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_diagstats(
pdev, outdata);
}
/**
* register_wmi_spectral_cmd_ops_da() - Register wmi_spectral_cmd_ops
* @cmd_ops: Pointer to the structure having wmi_spectral_cmd function pointers
* @pdev: Pointer to pdev object
*
* DA implementation to register wmi_spectral_cmd_ops in spectral
* internal data structure
*
* Return: void
*/
static void
register_wmi_spectral_cmd_ops_da(struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops)
{
struct wlan_objmgr_psoc *psoc = NULL;
struct wlan_lmac_if_sptrl_tx_ops *psptrl_tx_ops = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psptrl_tx_ops = &psoc->soc_cb.tx_ops.sptrl_tx_ops;
return psptrl_tx_ops->sptrlto_register_wmi_spectral_cmd_ops(pdev,
cmd_ops);
}
void void
spectral_ctx_init_da(struct spectral_context *sc) spectral_ctx_init_da(struct spectral_context *sc)
@@ -328,19 +27,19 @@ spectral_ctx_init_da(struct spectral_context *sc)
spectral_err("spectral context is null!"); spectral_err("spectral context is null!");
return; return;
} }
sc->sptrlc_spectral_control = spectral_control_da; sc->sptrlc_spectral_control = tgt_spectral_control;
sc->sptrlc_pdev_spectral_init = pdev_spectral_init_da; sc->sptrlc_pdev_spectral_init = tgt_pdev_spectral_init;
sc->sptrlc_pdev_spectral_deinit = pdev_spectral_deinit_da; sc->sptrlc_pdev_spectral_deinit = tgt_pdev_spectral_deinit;
sc->sptrlc_set_spectral_config = set_spectral_config_da; sc->sptrlc_set_spectral_config = tgt_set_spectral_config;
sc->sptrlc_get_spectral_config = get_spectral_config_da; sc->sptrlc_get_spectral_config = tgt_get_spectral_config;
sc->sptrlc_start_spectral_scan = start_spectral_scan_da; sc->sptrlc_start_spectral_scan = tgt_start_spectral_scan;
sc->sptrlc_stop_spectral_scan = stop_spectral_scan_da; sc->sptrlc_stop_spectral_scan = tgt_stop_spectral_scan;
sc->sptrlc_is_spectral_active = is_spectral_active_da; sc->sptrlc_is_spectral_active = tgt_is_spectral_active;
sc->sptrlc_is_spectral_enabled = is_spectral_enabled_da; sc->sptrlc_is_spectral_enabled = tgt_is_spectral_enabled;
sc->sptrlc_set_debug_level = set_debug_level_da; sc->sptrlc_set_debug_level = tgt_set_debug_level;
sc->sptrlc_get_debug_level = get_debug_level_da; sc->sptrlc_get_debug_level = tgt_get_debug_level;
sc->sptrlc_get_spectral_capinfo = get_spectral_capinfo_da; sc->sptrlc_get_spectral_capinfo = tgt_get_spectral_capinfo;
sc->sptrlc_get_spectral_diagstats = get_spectral_diagstats_da; sc->sptrlc_get_spectral_diagstats = tgt_get_spectral_diagstats;
sc->sptrlc_register_wmi_spectral_cmd_ops = sc->sptrlc_register_wmi_spectral_cmd_ops =
register_wmi_spectral_cmd_ops_da; tgt_register_wmi_spectral_cmd_ops;
} }

View File

@@ -19,286 +19,7 @@
#include "spectral_cmn_api_i.h" #include "spectral_cmn_api_i.h"
#include "spectral_ol_api_i.h" #include "spectral_ol_api_i.h"
#include "../dispatcher/inc/wlan_spectral_tgt_api.h"
/**
* spectral_control_ol()- handler for demultiplexing requests from higher layer
* @pdev: reference to global pdev object
* @id: spectral config command id
* @indata: reference to input data
* @insize: input data size
* @outdata: reference to output data
* @outsize: output data size
*
* This function processes the spectral config command
* and appropriate handlers are invoked.
*
* Return: 0 success else failure
*/
int
spectral_control_ol(struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
uint32_t insize, void *outdata, uint32_t *outsize)
{
struct spectral_context *sc;
if (!pdev) {
spectral_err("PDEV is NULL!");
return -EPERM;
}
sc = spectral_get_spectral_ctx_from_pdev(pdev);
if (!sc) {
spectral_err("spectral context is NULL!");
return -EPERM;
}
return spectral_control_cmn(pdev, id, indata, insize, outdata, outsize);
}
/**
* pdev_spectral_init_ol() - offload implementation for spectral init
* @pdev: Pointer to pdev
*
* Return: On success, pointer to Spectral target_if internal private data, on
* failure, NULL
*/
static void *
pdev_spectral_init_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_init(
pdev);
}
/**
* pdev_spectral_deinit_ol() - offload implementation for spectral de-init
* @pdev: Pointer to pdev
*
* Return: None
*/
static void
pdev_spectral_deinit_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_deinit(pdev);
}
/**
* set_spectral_config_ol() - Set spectral config
* @pdev: Pointer to pdev object
* @threshtype: spectral parameter type
* @value: value to be configured for the given spectral parameter
*
* Offload implementation for setting spectral config
*
* Return: 0 on success else failure
*/
static int
set_spectral_config_ol(struct wlan_objmgr_pdev *pdev,
const uint32_t threshtype, const uint32_t value)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_spectral_config(
pdev, threshtype, value);
}
/**
* get_spectral_config_ol() - Get spectral configuration
* @pdev: Pointer to pdev object
* @param: Pointer to spectral_config structure in which the configuration
* should be returned
*
* Offload implementation for getting the current spectral configuration
*
* Return: None
*/
static void
get_spectral_config_ol(struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_config(
pdev,
sptrl_config);
}
/**
* start_spectral_scan_ol() - Start spectral scan
* @pdev: Pointer to pdev object
*
* Offload implementation for starting spectral scan
*
* Return: 0 in case of success, -1 on failure
*/
static int
start_spectral_scan_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_start_spectral_scan(
pdev);
}
/**
* stop_spectral_scan_ol() - Stop spectral scan
* @pdev: Pointer to pdev object
*
* Offload implementation for stop spectral scan
*
* Return: None
*/
static void
stop_spectral_scan_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_stop_spectral_scan(pdev);
}
/**
* is_spectral_active_ol() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* Offload implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
static bool
is_spectral_active_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_active(
pdev);
}
/**
* is_spectral_enabled_ol() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* Offload implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
static bool
is_spectral_enabled_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_enabled(
pdev);
}
/**
* set_debug_level_ol() - Set debug level for Spectral
* @pdev: Pointer to pdev object
* @debug_level: Debug level
*
* Offload implementation to set the debug level for Spectral
*
* Return: 0 in case of success
*/
static int
set_debug_level_ol(struct wlan_objmgr_pdev *pdev, uint32_t debug_level)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_debug_level(
pdev,
debug_level);
}
/**
* get_debug_level_ol() - Get debug level for Spectral
* @pdev: Pointer to pdev object
*
* Offload implementation to get the debug level for Spectral
*
* Return: Current debug level
*/
static uint32_t
get_debug_level_ol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_debug_level(pdev);
}
/**
* get_spectral_capinfo_ol() - Get Spectral capability information
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* Offload implementation to get the spectral capability information
*
* Return: void
*/
static void
get_spectral_capinfo_ol(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_capinfo(
pdev, outdata);
}
/**
* get_spectral_diagstats_ol() - Get Spectral diagnostic statistics
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* Offload implementation to get the spectral diagnostic statistics
*
* Return: void
*/
static void
get_spectral_diagstats_ol(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_diagstats(
pdev, outdata);
}
/**
* register_wmi_spectral_cmd_ops_ol() - Register wmi_spectral_cmd_ops
* @cmd_ops: Pointer to the structure having wmi_spectral_cmd function pointers
* @pdev: Pointer to pdev object
*
* Offload implementation to register wmi_spectral_cmd_ops in spectral
* internal data structure
*
* Return: void
*/
static void
register_wmi_spectral_cmd_ops_ol(struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops)
{
struct wlan_objmgr_psoc *psoc = NULL;
struct wlan_lmac_if_sptrl_tx_ops *psptrl_tx_ops = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psptrl_tx_ops = &psoc->soc_cb.tx_ops.sptrl_tx_ops;
return psptrl_tx_ops->sptrlto_register_wmi_spectral_cmd_ops(pdev,
cmd_ops);
}
void void
spectral_ctx_init_ol(struct spectral_context *sc) spectral_ctx_init_ol(struct spectral_context *sc)
@@ -307,19 +28,19 @@ spectral_ctx_init_ol(struct spectral_context *sc)
spectral_err("spectral context is null!"); spectral_err("spectral context is null!");
return; return;
} }
sc->sptrlc_spectral_control = spectral_control_ol; sc->sptrlc_spectral_control = tgt_spectral_control;
sc->sptrlc_pdev_spectral_init = pdev_spectral_init_ol; sc->sptrlc_pdev_spectral_init = tgt_pdev_spectral_init;
sc->sptrlc_pdev_spectral_deinit = pdev_spectral_deinit_ol; sc->sptrlc_pdev_spectral_deinit = tgt_pdev_spectral_deinit;
sc->sptrlc_set_spectral_config = set_spectral_config_ol; sc->sptrlc_set_spectral_config = tgt_set_spectral_config;
sc->sptrlc_get_spectral_config = get_spectral_config_ol; sc->sptrlc_get_spectral_config = tgt_get_spectral_config;
sc->sptrlc_start_spectral_scan = start_spectral_scan_ol; sc->sptrlc_start_spectral_scan = tgt_start_spectral_scan;
sc->sptrlc_stop_spectral_scan = stop_spectral_scan_ol; sc->sptrlc_stop_spectral_scan = tgt_stop_spectral_scan;
sc->sptrlc_is_spectral_active = is_spectral_active_ol; sc->sptrlc_is_spectral_active = tgt_is_spectral_active;
sc->sptrlc_is_spectral_enabled = is_spectral_enabled_ol; sc->sptrlc_is_spectral_enabled = tgt_is_spectral_enabled;
sc->sptrlc_set_debug_level = set_debug_level_ol; sc->sptrlc_set_debug_level = tgt_set_debug_level;
sc->sptrlc_get_debug_level = get_debug_level_ol; sc->sptrlc_get_debug_level = tgt_get_debug_level;
sc->sptrlc_get_spectral_capinfo = get_spectral_capinfo_ol; sc->sptrlc_get_spectral_capinfo = tgt_get_spectral_capinfo;
sc->sptrlc_get_spectral_diagstats = get_spectral_diagstats_ol; sc->sptrlc_get_spectral_diagstats = tgt_get_spectral_diagstats;
sc->sptrlc_register_wmi_spectral_cmd_ops = sc->sptrlc_register_wmi_spectral_cmd_ops =
register_wmi_spectral_cmd_ops_ol; tgt_register_wmi_spectral_cmd_ops;
} }

View File

@@ -22,6 +22,7 @@
#include <wlan_objmgr_cmn.h> #include <wlan_objmgr_cmn.h>
#include <qdf_types.h> #include <qdf_types.h>
#include "../../core/spectral_cmn_api_i.h"
/** /**
* tgt_send_phydata() - Send Spectral PHY data * tgt_send_phydata() - Send Spectral PHY data
@@ -47,4 +48,179 @@ int tgt_send_phydata(struct wlan_objmgr_pdev *pdev,
*/ */
void *tgt_get_target_handle(struct wlan_objmgr_pdev *pdev); void *tgt_get_target_handle(struct wlan_objmgr_pdev *pdev);
/**
* tgt_spectral_control()- handler for demultiplexing requests from higher layer
* @pdev: reference to global pdev object
* @id: spectral config command id
* @indata: reference to input data
* @insize: input data size
* @outdata: reference to output data
* @outsize: output data size
*
* This function processes the spectral config command
* and appropriate handlers are invoked.
*
* Return: 0 success else failure
*/
int
tgt_spectral_control(
struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
u_int32_t insize, void *outdata, u_int32_t *outsize);
/**
* tgt_pdev_spectral_init() - implementation for spectral init
* @pdev: Pointer to pdev
*
* Return: On success, pointer to Spectral target_if internal private data, on
* failure, NULL
*/
void *
tgt_pdev_spectral_init(struct wlan_objmgr_pdev *pdev);
/**
* tgt_pdev_spectral_deinit() - implementation for spectral de-init
* @pdev: Pointer to pdev
*
* Return: None
*/
void
tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev);
/**
* tgt_set_spectral_config() - Set spectral config
* @pdev: Pointer to pdev object
* @threshtype: spectral parameter type
* @value: value to be configured for the given spectral parameter
*
* Implementation for setting spectral config
*
* Return: 0 on success else failure
*/
int
tgt_set_spectral_config(
struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype, const u_int32_t value);
/**
* tgt_get_spectral_config() - Get spectral configuration
* @pdev: Pointer to pdev object
* @param: Pointer to spectral_config structure in which the configuration
* should be returned
*
* Implementation for getting the current spectral configuration
*
* Return: None
*/
void
tgt_get_spectral_config(
struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config);
/**
* tgt_start_spectral_scan() - Start spectral scan
* @pdev: Pointer to pdev object
*
* Implementation for starting spectral scan
*
* Return: 0 in case of success, -1 on failure
*/
int
tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev);
/**
* tgt_stop_spectral_scan() - Stop spectral scan
* @pdev: Pointer to pdev object
*
* Implementation for stop spectral scan
*
* Return: None
*/
void
tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev);
/**
* tgt_is_spectral_active() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* Implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
bool
tgt_is_spectral_active(struct wlan_objmgr_pdev *pdev);
/**
* tgt_is_spectral_enabled() - Get whether Spectral is active
* @pdev: Pointer to pdev object
*
* Implementation to get whether Spectral is active
*
* Return: True if Spectral is active, false if Spectral is not active
*/
bool
tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev);
/**
* tgt_set_debug_level() - Set debug level for Spectral
* @pdev: Pointer to pdev object
* @debug_level: Debug level
*
* Implementation to set the debug level for Spectral
*
* Return: 0 in case of success
*/
int
tgt_set_debug_level(struct wlan_objmgr_pdev *pdev, u_int32_t debug_level);
/**
* tgt_get_debug_level() - Get debug level for Spectral
* @pdev: Pointer to pdev object
*
* Implementation to get the debug level for Spectral
*
* Return: Current debug level
*/
u_int32_t
tgt_get_debug_level(struct wlan_objmgr_pdev *pdev);
/**
* tgt_get_spectral_capinfo() - Get Spectral capability information
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* Implementation to get the spectral capability information
*
* Return: void
*/
void
tgt_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev, void *outdata);
/**
* tgt_get_spectral_diagstats() - Get Spectral diagnostic statistics
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
*
* Implementation to get the spectral diagnostic statistics
*
* Return: void
*/
void
tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev, void *outdata);
/**
* tgt_register_wmi_spectral_cmd_ops() - Register wmi_spectral_cmd_ops
* @cmd_ops: Pointer to the structure having wmi_spectral_cmd function pointers
* @pdev: Pointer to pdev object
*
* Implementation to register wmi_spectral_cmd_ops in spectral
* internal data structure
*
* Return: void
*/
void
tgt_register_wmi_spectral_cmd_ops(
struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops);
#endif /* _WLAN_SPECTRAL_TGT_API_H_ */ #endif /* _WLAN_SPECTRAL_TGT_API_H_ */

View File

@@ -18,7 +18,6 @@
*/ */
#include <wlan_spectral_tgt_api.h> #include <wlan_spectral_tgt_api.h>
#include "../../core/spectral_cmn_api_i.h"
int int
tgt_send_phydata(struct wlan_objmgr_pdev *pdev, tgt_send_phydata(struct wlan_objmgr_pdev *pdev,
@@ -44,3 +43,163 @@ tgt_get_target_handle(struct wlan_objmgr_pdev *pdev)
} }
return ps->psptrl_target_handle; return ps->psptrl_target_handle;
} }
int
tgt_spectral_control(
struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
u_int32_t insize, void *outdata, u_int32_t *outsize)
{
struct spectral_context *sc;
if (!pdev) {
spectral_err("PDEV is NULL!");
return -EPERM;
}
sc = spectral_get_spectral_ctx_from_pdev(pdev);
if (!sc) {
spectral_err("spectral context is NULL!");
return -EPERM;
}
return spectral_control_cmn(pdev, id, indata, insize, outdata, outsize);
}
void *
tgt_pdev_spectral_init(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_init(
pdev);
}
void
tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_pdev_spectral_deinit(pdev);
}
int
tgt_set_spectral_config(
struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype, const u_int32_t value)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_spectral_config(
pdev, threshtype, value);
}
void
tgt_get_spectral_config(
struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_config(
pdev,
sptrl_config);
}
int
tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_start_spectral_scan(
pdev);
}
void
tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_stop_spectral_scan(pdev);
}
bool
tgt_is_spectral_active(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_active(
pdev);
}
bool
tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_is_spectral_enabled(
pdev);
}
int
tgt_set_debug_level(struct wlan_objmgr_pdev *pdev, u_int32_t debug_level)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_set_debug_level(
pdev,
debug_level);
}
u_int32_t
tgt_get_debug_level(struct wlan_objmgr_pdev *pdev)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_debug_level(pdev);
}
void
tgt_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_capinfo(
pdev, outdata);
}
void
tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev, void *outdata)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_diagstats(
pdev, outdata);
}
void
tgt_register_wmi_spectral_cmd_ops(
struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops)
{
struct wlan_objmgr_psoc *psoc = NULL;
struct wlan_lmac_if_sptrl_tx_ops *psptrl_tx_ops = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psptrl_tx_ops = &psoc->soc_cb.tx_ops.sptrl_tx_ops;
return psptrl_tx_ops->sptrlto_register_wmi_spectral_cmd_ops(pdev,
cmd_ops);
}