diff --git a/spectral/core/spectral_direct_attach.c b/spectral/core/spectral_direct_attach.c index 22177fbf5e68..ae011aa28458 100644 --- a/spectral/core/spectral_direct_attach.c +++ b/spectral/core/spectral_direct_attach.c @@ -18,308 +18,7 @@ */ #include "spectral_cmn_api_i.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); -} +#include "../dispatcher/inc/wlan_spectral_tgt_api.h" void 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!"); return; } - sc->sptrlc_spectral_control = spectral_control_da; - sc->sptrlc_pdev_spectral_init = pdev_spectral_init_da; - sc->sptrlc_pdev_spectral_deinit = pdev_spectral_deinit_da; - sc->sptrlc_set_spectral_config = set_spectral_config_da; - sc->sptrlc_get_spectral_config = get_spectral_config_da; - sc->sptrlc_start_spectral_scan = start_spectral_scan_da; - sc->sptrlc_stop_spectral_scan = stop_spectral_scan_da; - sc->sptrlc_is_spectral_active = is_spectral_active_da; - sc->sptrlc_is_spectral_enabled = is_spectral_enabled_da; - sc->sptrlc_set_debug_level = set_debug_level_da; - sc->sptrlc_get_debug_level = get_debug_level_da; - sc->sptrlc_get_spectral_capinfo = get_spectral_capinfo_da; - sc->sptrlc_get_spectral_diagstats = get_spectral_diagstats_da; + sc->sptrlc_spectral_control = tgt_spectral_control; + sc->sptrlc_pdev_spectral_init = tgt_pdev_spectral_init; + sc->sptrlc_pdev_spectral_deinit = tgt_pdev_spectral_deinit; + sc->sptrlc_set_spectral_config = tgt_set_spectral_config; + sc->sptrlc_get_spectral_config = tgt_get_spectral_config; + sc->sptrlc_start_spectral_scan = tgt_start_spectral_scan; + sc->sptrlc_stop_spectral_scan = tgt_stop_spectral_scan; + sc->sptrlc_is_spectral_active = tgt_is_spectral_active; + sc->sptrlc_is_spectral_enabled = tgt_is_spectral_enabled; + sc->sptrlc_set_debug_level = tgt_set_debug_level; + sc->sptrlc_get_debug_level = tgt_get_debug_level; + sc->sptrlc_get_spectral_capinfo = tgt_get_spectral_capinfo; + sc->sptrlc_get_spectral_diagstats = tgt_get_spectral_diagstats; sc->sptrlc_register_wmi_spectral_cmd_ops = - register_wmi_spectral_cmd_ops_da; + tgt_register_wmi_spectral_cmd_ops; } diff --git a/spectral/core/spectral_offload.c b/spectral/core/spectral_offload.c index 83feac8bbbe6..b4b60689898a 100644 --- a/spectral/core/spectral_offload.c +++ b/spectral/core/spectral_offload.c @@ -19,286 +19,7 @@ #include "spectral_cmn_api_i.h" #include "spectral_ol_api_i.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); -} +#include "../dispatcher/inc/wlan_spectral_tgt_api.h" void 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!"); return; } - sc->sptrlc_spectral_control = spectral_control_ol; - sc->sptrlc_pdev_spectral_init = pdev_spectral_init_ol; - sc->sptrlc_pdev_spectral_deinit = pdev_spectral_deinit_ol; - sc->sptrlc_set_spectral_config = set_spectral_config_ol; - sc->sptrlc_get_spectral_config = get_spectral_config_ol; - sc->sptrlc_start_spectral_scan = start_spectral_scan_ol; - sc->sptrlc_stop_spectral_scan = stop_spectral_scan_ol; - sc->sptrlc_is_spectral_active = is_spectral_active_ol; - sc->sptrlc_is_spectral_enabled = is_spectral_enabled_ol; - sc->sptrlc_set_debug_level = set_debug_level_ol; - sc->sptrlc_get_debug_level = get_debug_level_ol; - sc->sptrlc_get_spectral_capinfo = get_spectral_capinfo_ol; - sc->sptrlc_get_spectral_diagstats = get_spectral_diagstats_ol; + sc->sptrlc_spectral_control = tgt_spectral_control; + sc->sptrlc_pdev_spectral_init = tgt_pdev_spectral_init; + sc->sptrlc_pdev_spectral_deinit = tgt_pdev_spectral_deinit; + sc->sptrlc_set_spectral_config = tgt_set_spectral_config; + sc->sptrlc_get_spectral_config = tgt_get_spectral_config; + sc->sptrlc_start_spectral_scan = tgt_start_spectral_scan; + sc->sptrlc_stop_spectral_scan = tgt_stop_spectral_scan; + sc->sptrlc_is_spectral_active = tgt_is_spectral_active; + sc->sptrlc_is_spectral_enabled = tgt_is_spectral_enabled; + sc->sptrlc_set_debug_level = tgt_set_debug_level; + sc->sptrlc_get_debug_level = tgt_get_debug_level; + sc->sptrlc_get_spectral_capinfo = tgt_get_spectral_capinfo; + sc->sptrlc_get_spectral_diagstats = tgt_get_spectral_diagstats; sc->sptrlc_register_wmi_spectral_cmd_ops = - register_wmi_spectral_cmd_ops_ol; + tgt_register_wmi_spectral_cmd_ops; } diff --git a/spectral/dispatcher/inc/wlan_spectral_tgt_api.h b/spectral/dispatcher/inc/wlan_spectral_tgt_api.h index 4659df32a622..5221d8a00d3e 100644 --- a/spectral/dispatcher/inc/wlan_spectral_tgt_api.h +++ b/spectral/dispatcher/inc/wlan_spectral_tgt_api.h @@ -22,6 +22,7 @@ #include #include +#include "../../core/spectral_cmn_api_i.h" /** * 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); +/** + * 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_ */ diff --git a/spectral/dispatcher/src/wlan_spectral_tgt_api.c b/spectral/dispatcher/src/wlan_spectral_tgt_api.c index 001f33cfce67..0952bc88511b 100644 --- a/spectral/dispatcher/src/wlan_spectral_tgt_api.c +++ b/spectral/dispatcher/src/wlan_spectral_tgt_api.c @@ -18,7 +18,6 @@ */ #include -#include "../../core/spectral_cmn_api_i.h" int 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; } + +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); +}