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
此提交包含在:
Edayilliam Jayadev
2020-04-29 21:54:25 +05:30
提交者 nshrivas
父節點 18bbaf7484
當前提交 abdb33bb00
共有 20 個檔案被更改,包括 1621 行新增385 行删除

查看文件

@@ -25,15 +25,26 @@
#include "../../core/spectral_cmn_api_i.h"
/**
* tgt_get_target_handle() - Get target_if handle
* tgt_get_pdev_target_handle() - Get pdev target_if handle
* @pdev: Pointer to pdev
*
* Get handle to target_if internal Spectral data
* Get handle to pdev target_if internal Spectral data
*
* Return: Handle to target_if internal Spectral data on success, NULL on
* Return: Handle to pdev target_if internal Spectral data on success, NULL on
* failure
*/
void *tgt_get_target_handle(struct wlan_objmgr_pdev *pdev);
void *tgt_get_pdev_target_handle(struct wlan_objmgr_pdev *pdev);
/**
* tgt_get_psoc_target_handle() - Get psoc target_if handle
* @psoc: Pointer to psoc
*
* Get handle to psoc target_if internal Spectral data
*
* Return: Handle to psoc target_if internal Spectral data on success, NULL on
* failure
*/
void *tgt_get_psoc_target_handle(struct wlan_objmgr_psoc *psoc);
/**
* tgt_spectral_control()- handler for demultiplexing requests from higher layer
@@ -65,6 +76,23 @@ void *tgt_pdev_spectral_init(struct wlan_objmgr_pdev *pdev);
*/
void tgt_pdev_spectral_deinit(struct wlan_objmgr_pdev *pdev);
/**
* tgt_psoc_spectral_init() - implementation for spectral init
* @psoc: Pointer to psoc
*
* Return: On success, pointer to Spectral psoc target_if internal private data,
* on failure, NULL
*/
void *tgt_psoc_spectral_init(struct wlan_objmgr_psoc *psoc);
/**
* tgt_psoc_spectral_deinit() - implementation for spectral de-init
* @psoc: Pointer to psoc
*
* Return: None
*/
void tgt_psoc_spectral_deinit(struct wlan_objmgr_psoc *psoc);
/**
* tgt_set_spectral_config() - Set spectral config
* @pdev: Pointer to pdev object
@@ -195,17 +223,30 @@ 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
* @cmd_ops: Pointer to the structure having wmi_spectral_cmd function pointers
* @pdev: Pointer to pdev object
* tgt_register_spectral_wmi_ops() - Register Spectral WMI operations
* @psoc: Pointer to psoc bject
* @wmi_ops: Pointer to the structure having Spectral WMI operations
*
* Implementation to register wmi_spectral_cmd_ops in spectral
* Implementation to register Spectral WMI operations in spectral
* internal data structure
*
* Return: void
* Return: QDF_STATUS
*/
void tgt_register_wmi_spectral_cmd_ops(struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops);
QDF_STATUS tgt_register_spectral_wmi_ops(struct wlan_objmgr_psoc *psoc,
struct spectral_wmi_ops *wmi_ops);
/**
* tgt_register_spectral_tgt_ops() - Register Spectral target operations
* @psoc: Pointer to psoc bject
* @tgt_ops: Pointer to the structure having Spectral target operations
*
* Implementation to register Spectral target operations in spectral
* internal data structure
*
* Return: QDF_STATUS
*/
QDF_STATUS tgt_register_spectral_tgt_ops(struct wlan_objmgr_psoc *psoc,
struct spectral_tgt_ops *tgt_ops);
/**
* tgt_spectral_register_nl_cb() - Register Netlink callbacks
@@ -283,4 +324,22 @@ tgt_spectral_get_target_type(struct wlan_objmgr_psoc *psoc);
QDF_STATUS tgt_set_spectral_dma_debug(struct wlan_objmgr_pdev *pdev,
enum spectral_dma_debug dma_debug_type,
bool dma_debug_enable);
/**
* tgt_spectral_register_events() - Register Spectral WMI event handlers
* @psoc: Pointer to psoc object
*
* Return: QDF_STATUS of operation
*/
QDF_STATUS
tgt_spectral_register_events(struct wlan_objmgr_psoc *psoc);
/**
* tgt_spectral_unregister_events() - Unregister Spectral WMI event handlers
* @psoc: Pointer to psoc object
*
* Return: QDF_STATUS of operation
*/
QDF_STATUS
tgt_spectral_unregister_events(struct wlan_objmgr_psoc *psoc);
#endif /* _WLAN_SPECTRAL_TGT_API_H_ */

查看文件

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
*
*
* Permission to use, copy, modify, and/or distribute this software for
@@ -25,7 +25,8 @@
/* Forward declaration */
struct direct_buf_rx_data;
struct wmi_spectral_cmd_ops;
struct spectral_wmi_ops;
struct spectral_tgt_ops;
/**
* wlan_spectral_is_feature_disabled() - Check if spectral feature is disabled
@@ -71,19 +72,32 @@ void
wlan_lmac_if_sptrl_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops);
/**
* wlan_register_wmi_spectral_cmd_ops() - Register operations related to wmi
* commands on spectral parameters
* @pdev - the physical device object
* @cmd_ops - pointer to the structure holding the operations
* related to wmi commands on spectral parameters
*
* API to register operations related to wmi commands on spectral parameters
*
* Return: None
* wlan_register_spectral_wmi_ops() - Register Spectral WMI operations
* @psoc - Pointer to psoc object
* @wmi_ops - pointer to the structure holding the Spectral WMI
* operations
*
* API to register Spectral WMI operations
*
* Return: QDF_STATUS
*/
void
wlan_register_wmi_spectral_cmd_ops(struct wlan_objmgr_pdev *pdev,
struct wmi_spectral_cmd_ops *cmd_ops);
QDF_STATUS
wlan_register_spectral_wmi_ops(struct wlan_objmgr_psoc *psoc,
struct spectral_wmi_ops *wmi_ops);
/**
* wlan_register_spectral_tgt_ops() - Register Spectral target operations
* @psoc - Pointer to psoc object
* @tgt_ops - pointer to the structure holding the Spectral target
* operations
*
* API to register Spectral target operations
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_register_spectral_tgt_ops(struct wlan_objmgr_psoc *psoc,
struct spectral_tgt_ops *tgt_ops);
/**
* struct spectral_legacy_cbacks - Spectral legacy callbacks
@@ -164,6 +178,50 @@ spectral_vdev_get_ch_width(struct wlan_objmgr_vdev *vdev);
*/
QDF_STATUS spectral_pdev_open(struct wlan_objmgr_pdev *pdev);
/**
* wlan_spectral_psoc_open() - Spectral psoc open handler
* @psoc: pointer to psoc object
*
* API to execute operations on psoc open
*
* Return: QDF_STATUS_SUCCESS upon successful registration,
* QDF_STATUS_E_FAILURE upon failure
*/
QDF_STATUS wlan_spectral_psoc_open(struct wlan_objmgr_psoc *psoc);
/**
* wlan_spectral_psoc_close() - Spectral psoc close handler
* @psoc: pointer to psoc object
*
* API to execute operations on psoc close
*
* Return: QDF_STATUS_SUCCESS upon successful registration,
* QDF_STATUS_E_FAILURE upon failure
*/
QDF_STATUS wlan_spectral_psoc_close(struct wlan_objmgr_psoc *psoc);
/**
* wlan_spectral_psoc_enable() - Spectral psoc enable handler
* @psoc: pointer to psoc object
*
* API to execute operations on psoc enable
*
* Return: QDF_STATUS_SUCCESS upon successful registration,
* QDF_STATUS_E_FAILURE upon failure
*/
QDF_STATUS wlan_spectral_psoc_enable(struct wlan_objmgr_psoc *psoc);
/**
* wlan_spectral_psoc_disable() - Spectral psoc disable handler
* @psoc: pointer to psoc object
*
* API to execute operations on psoc disable
*
* Return: QDF_STATUS_SUCCESS upon successful registration,
* QDF_STATUS_E_FAILURE upon failure
*/
QDF_STATUS wlan_spectral_psoc_disable(struct wlan_objmgr_psoc *psoc);
/**
* spectral_register_dbr() - register Spectral event handler with DDMA
* @pdev: pointer to pdev object