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
This commit is contained in:

committad av
nshrivas

förälder
18bbaf7484
incheckning
abdb33bb00
@@ -483,6 +483,8 @@ spectral_ctx_deinit(struct spectral_context *sc)
|
||||
sc->sptrlc_ucfg_phyerr_config = NULL;
|
||||
sc->sptrlc_pdev_spectral_init = NULL;
|
||||
sc->sptrlc_pdev_spectral_deinit = NULL;
|
||||
sc->sptrlc_psoc_spectral_init = NULL;
|
||||
sc->sptrlc_psoc_spectral_deinit = NULL;
|
||||
sc->sptrlc_set_spectral_config = NULL;
|
||||
sc->sptrlc_get_spectral_config = NULL;
|
||||
sc->sptrlc_start_spectral_scan = NULL;
|
||||
|
@@ -93,16 +93,21 @@ struct pdev_spectral {
|
||||
uint32_t spectral_pid;
|
||||
};
|
||||
|
||||
struct wmi_spectral_cmd_ops;
|
||||
struct spectral_wmi_ops;
|
||||
struct spectral_tgt_ops;
|
||||
|
||||
/**
|
||||
* struct spectral_context - spectral global context
|
||||
* @psoc_obj: Reference to psoc global object
|
||||
* @psoc_target_handle: Reference to psoc target_if object
|
||||
* @spectral_legacy_cbacks: Spectral legacy callbacks
|
||||
*
|
||||
* Call back functions to invoke independent of OL/DA
|
||||
* @sptrlc_ucfg_phyerr_config: ucfg handler for phyerr
|
||||
* @sptrlc_pdev_spectral_init: Init spectral
|
||||
* @sptrlc_pdev_spectral_deinit: Deinit spectral
|
||||
* @sptrlc_pdev_spectral_init: Init pdev Spectral
|
||||
* @sptrlc_pdev_spectral_deinit: Deinit pdev Spectral
|
||||
* @sptrlc_psoc_spectral_init: Spectral psoc init
|
||||
* @sptrlc_psoc_spectral_deinit: Spectral psoc deinit
|
||||
* @sptrlc_set_spectral_config: Set spectral configurations
|
||||
* @sptrlc_get_spectral_config: Get spectral configurations
|
||||
* @sptrlc_start_spectral_scan: Start spectral scan
|
||||
@@ -113,7 +118,8 @@ struct wmi_spectral_cmd_ops;
|
||||
* @sptrlc_get_debug_level: Get debug level
|
||||
* @sptrlc_get_spectral_capinfo: Get spectral capability info
|
||||
* @sptrlc_get_spectral_diagstats: Get spectral diag status
|
||||
* @sptrlc_register_wmi_spectral_cmd_ops: Register wmi_spectral_cmd operations
|
||||
* @sptrlc_register_spectral_wmi_ops: Register Spectral WMI operations
|
||||
* @ptrlc_register_spectral_tgt_ops: Register Spectral target operations
|
||||
* @sptrlc_register_netlink_cb: Register Netlink callbacks
|
||||
* @sptrlc_use_nl_bcast: Check whether to use Netlink broadcast/unicast
|
||||
* @sptrlc_deregister_netlink_cb: De-register Netlink callbacks
|
||||
@@ -122,6 +128,7 @@ struct wmi_spectral_cmd_ops;
|
||||
*/
|
||||
struct spectral_context {
|
||||
struct wlan_objmgr_psoc *psoc_obj;
|
||||
void *psoc_target_handle;
|
||||
struct spectral_legacy_cbacks legacy_cbacks;
|
||||
QDF_STATUS (*sptrlc_spectral_control)
|
||||
(struct wlan_objmgr_pdev *pdev,
|
||||
@@ -130,6 +137,8 @@ struct spectral_context {
|
||||
void *ad);
|
||||
void * (*sptrlc_pdev_spectral_init)(struct wlan_objmgr_pdev *pdev);
|
||||
void (*sptrlc_pdev_spectral_deinit)(struct wlan_objmgr_pdev *pdev);
|
||||
void * (*sptrlc_psoc_spectral_init)(struct wlan_objmgr_psoc *psoc);
|
||||
void (*sptrlc_psoc_spectral_deinit)(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS (*sptrlc_set_spectral_config)
|
||||
(struct wlan_objmgr_pdev *pdev,
|
||||
const struct spectral_cp_param *param,
|
||||
@@ -159,9 +168,12 @@ struct spectral_context {
|
||||
QDF_STATUS (*sptrlc_get_spectral_diagstats)
|
||||
(struct wlan_objmgr_pdev *pdev,
|
||||
struct spectral_diag_stats *stats);
|
||||
void (*sptrlc_register_wmi_spectral_cmd_ops)(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
struct wmi_spectral_cmd_ops *cmd_ops);
|
||||
QDF_STATUS (*sptrlc_register_spectral_wmi_ops)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct spectral_wmi_ops *wmi_ops);
|
||||
QDF_STATUS (*sptrlc_register_spectral_tgt_ops)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct spectral_tgt_ops *tgt_ops);
|
||||
void (*sptrlc_register_netlink_cb)(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
struct spectral_nl_cb *nl_cb);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011,2017-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011,2017-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
@@ -26,6 +26,14 @@
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
struct dispatcher_spectral_ops sops = {
|
||||
.spectral_pdev_open_handler = spectral_pdev_open,
|
||||
.spectral_psoc_open_handler = wlan_spectral_psoc_open,
|
||||
.spectral_psoc_close_handler = wlan_spectral_psoc_close,
|
||||
.spectral_psoc_enable_handler = wlan_spectral_psoc_enable,
|
||||
.spectral_psoc_disable_handler = wlan_spectral_psoc_disable,
|
||||
};
|
||||
|
||||
/**
|
||||
* spectral_init_module() - Initialize Spectral module
|
||||
*
|
||||
@@ -43,9 +51,7 @@ int spectral_init_module(void)
|
||||
/* register spectral rxops */
|
||||
wlan_lmac_if_sptrl_set_rx_ops_register_cb
|
||||
(wlan_lmac_if_sptrl_register_rx_ops);
|
||||
/* register spectral pdev open handler */
|
||||
dispatcher_register_spectral_pdev_open_handler(
|
||||
spectral_pdev_open);
|
||||
dispatcher_register_spectral_ops_handler(&sops);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -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
|
||||
@@ -48,6 +48,8 @@ spectral_ctx_init_ol(struct spectral_context *sc)
|
||||
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_psoc_spectral_init = tgt_psoc_spectral_init;
|
||||
sc->sptrlc_psoc_spectral_deinit = tgt_psoc_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;
|
||||
@@ -58,8 +60,8 @@ spectral_ctx_init_ol(struct spectral_context *sc)
|
||||
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 =
|
||||
tgt_register_wmi_spectral_cmd_ops;
|
||||
sc->sptrlc_register_spectral_wmi_ops = tgt_register_spectral_wmi_ops;
|
||||
sc->sptrlc_register_spectral_tgt_ops = tgt_register_spectral_tgt_ops;
|
||||
sc->sptrlc_register_netlink_cb = tgt_spectral_register_nl_cb;
|
||||
sc->sptrlc_use_nl_bcast = tgt_spectral_use_nl_bcast;
|
||||
sc->sptrlc_deregister_netlink_cb = tgt_spectral_deregister_nl_cb;
|
||||
|
Referens i nytt ärende
Block a user