qcacmn: Change Spectral control path to support Agile mode

Modify Spectral control path APIs to support Agile mode.

CRs-Fixed: 2450620
Change-Id: Id6cf48c1288b157932ab5ce0535293e466a87783
此提交包含在:
Edayilliam Jayadev
2019-06-21 15:50:02 +05:30
提交者 nshrivas
父節點 d9f04e1c71
當前提交 8e74a62e72
共有 11 個檔案被更改,包括 952 行新增583 行删除

查看文件

@@ -88,6 +88,7 @@
#define SPECTRAL_SCAN_BIN_SCALE_DEFAULT (1)
#define SPECTRAL_SCAN_DBM_ADJ_DEFAULT (1)
#define SPECTRAL_SCAN_CHN_MASK_DEFAULT (1)
#define SPECTRAL_SCAN_FREQUENCY_DEFAULT (0)
#endif /* SPECTRAL_USE_EMU_DEFAULTS */
/* The below two definitions apply only to pre-11ac chipsets */

查看文件

@@ -37,16 +37,16 @@ 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
* @pdev: Reference to global pdev object
* @sscan_req: pointer to Spectral scan request
*
* This function processes the spectral config command
* and appropriate handlers are invoked.
*
* Return: 0 success else failure
* Return: QDF_STATUS_SUCCESS/QDF_STATUS_E_FAILURE
*/
int tgt_spectral_control(struct wlan_objmgr_pdev *pdev,
struct spectral_cp_request *sscan_req);
QDF_STATUS tgt_spectral_control(struct wlan_objmgr_pdev *pdev,
struct spectral_cp_request *sscan_req);
/**
* tgt_pdev_spectral_init() - implementation for spectral init
@@ -67,70 +67,86 @@ void tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev);
/**
* tgt_set_spectral_config() - Set spectral config
* @pdev: Pointer to pdev object
* @pdev: Pointer to pdev object
* @threshtype: spectral parameter type
* @value: value to be configured for the given spectral parameter
* @value: Value to be configured for the given spectral parameter
* @smode: Spectral scan mode
* @err: Spectral control path error code
*
* Implementation for setting spectral config
*
* Return: 0 on success else failure
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
int tgt_set_spectral_config(struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype,
const u_int32_t value);
QDF_STATUS tgt_set_spectral_config(struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype,
const u_int32_t value,
const enum spectral_scan_mode smode,
enum spectral_cp_error_code *err);
/**
* 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
* @smode: Spectral scan mode
*
* Implementation for getting the current spectral configuration
*
* Return: None
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
void tgt_get_spectral_config(struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config);
QDF_STATUS tgt_get_spectral_config(struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config,
const enum spectral_scan_mode smode);
/**
* tgt_start_spectral_scan() - Start spectral scan
* @pdev: Pointer to pdev object
* @smode: Spectral scan mode
* @res: Spectral control path error code
*
* Implementation for starting spectral scan
*
* Return: 0 in case of success, -1 on failure
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
int tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev);
QDF_STATUS tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode,
enum spectral_cp_error_code *err);
/**
* tgt_stop_spectral_scan() - Stop spectral scan
* @pdev: Pointer to pdev object
* @smode: Spectral scan mode
*
* Implementation for stop spectral scan
*
* Return: None
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
void tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev);
QDF_STATUS tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode);
/**
* tgt_is_spectral_active() - Get whether Spectral is active
* @pdev: Pointer to pdev object
* @smode: Spectral scan mode
*
* 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);
bool tgt_is_spectral_active(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode);
/**
* tgt_is_spectral_enabled() - Get whether Spectral is active
* @pdev: Pointer to pdev object
* @smode: Spectral scan mode
*
* 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);
bool tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode);
/**
* tgt_set_debug_level() - Set debug level for Spectral
@@ -139,9 +155,10 @@ bool tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev);
*
* Implementation to set the debug level for Spectral
*
* Return: 0 in case of success
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
int tgt_set_debug_level(struct wlan_objmgr_pdev *pdev, u_int32_t debug_level);
QDF_STATUS tgt_set_debug_level(struct wlan_objmgr_pdev *pdev,
u_int32_t debug_level);
/**
* tgt_get_debug_level() - Get debug level for Spectral
@@ -156,24 +173,26 @@ uint32_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
* @scaps: Buffer into which data should be copied
*
* Implementation to get the spectral capability information
*
* Return: void
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
void tgt_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev, void *outdata);
QDF_STATUS tgt_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev,
struct spectral_caps *scaps);
/**
* tgt_get_spectral_diagstats() - Get Spectral diagnostic statistics
* @pdev: Pointer to pdev object
* @outdata: Buffer into which data should be copied
* @stats: Buffer into which data should be copied
*
* Implementation to get the spectral diagnostic statistics
*
* Return: void
* Return: QDF_STATUS_SUCCESS on success, else QDF_STATUS_E_FAILURE
*/
void tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev, void *outdata);
QDF_STATUS tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev,
struct spectral_diag_stats *stats);
/**
* tgt_register_wmi_spectral_cmd_ops() - Register wmi_spectral_cmd_ops

查看文件

@@ -46,7 +46,7 @@ tgt_get_target_handle(struct wlan_objmgr_pdev *pdev)
return ps->psptrl_target_handle;
}
int
QDF_STATUS
tgt_spectral_control(
struct wlan_objmgr_pdev *pdev,
struct spectral_cp_request *sscan_req)
@@ -84,71 +84,79 @@ tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *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)
QDF_STATUS
tgt_set_spectral_config(struct wlan_objmgr_pdev *pdev,
const u_int32_t threshtype, const u_int32_t value,
const enum spectral_scan_mode smode,
enum spectral_cp_error_code *err)
{
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);
pdev, threshtype, value, smode, err);
}
void
tgt_get_spectral_config(
struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config)
QDF_STATUS
tgt_get_spectral_config(struct wlan_objmgr_pdev *pdev,
struct spectral_config *sptrl_config,
const enum spectral_scan_mode smode)
{
struct wlan_objmgr_psoc *psoc = NULL;
psoc = wlan_pdev_get_psoc(pdev);
psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_config(
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_get_spectral_config(
pdev,
sptrl_config);
sptrl_config,
smode);
}
int
tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev)
QDF_STATUS
tgt_start_spectral_scan(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode,
enum spectral_cp_error_code *err)
{
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);
pdev, smode, err);
}
void
tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev)
QDF_STATUS
tgt_stop_spectral_scan(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode)
{
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);
return psoc->soc_cb.tx_ops.sptrl_tx_ops.sptrlto_stop_spectral_scan(
pdev, smode);
}
bool
tgt_is_spectral_active(struct wlan_objmgr_pdev *pdev)
tgt_is_spectral_active(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode)
{
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);
pdev, smode);
}
bool
tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev)
tgt_is_spectral_enabled(struct wlan_objmgr_pdev *pdev,
enum spectral_scan_mode smode)
{
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);
pdev, smode);
}
int
QDF_STATUS
tgt_set_debug_level(struct wlan_objmgr_pdev *pdev, u_int32_t debug_level)
{
struct wlan_objmgr_psoc *psoc = NULL;
@@ -168,24 +176,26 @@ tgt_get_debug_level(struct wlan_objmgr_pdev *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)
QDF_STATUS
tgt_get_spectral_capinfo(struct wlan_objmgr_pdev *pdev,
struct spectral_caps *scaps)
{
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);
pdev, scaps);
}
void
tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev, void *outdata)
QDF_STATUS
tgt_get_spectral_diagstats(struct wlan_objmgr_pdev *pdev,
struct spectral_diag_stats *stats)
{
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);
pdev, stats);
}
void