qcacld-3.0: Clean up adaptive dwell time params CFG
Clean following adapative dwell time params CFG/INI item. CFG_ADAPTIVE_DWELL_MODE_ENABLED CFG_GLOBAL_ADAPTIVE_DWELL_MODE CFG_ADAPT_DWELL_LPF_WEIGHT CFG_ADAPT_DWELL_PASMON_INTVAL CFG_ADAPT_DWELL_WIFI_THRESH Change-Id: Iebc8507b0eefe52969f928d98473f99d69095480 CRs-Fixed: 2378488
This commit is contained in:

committed by
nshrivas

parent
76fc02f289
commit
d59ae7648e
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -162,6 +162,7 @@ struct wlan_fwol_neighbor_report_cfg {
|
|||||||
* @enable_secondary_rate: Enable secondary retry rate config
|
* @enable_secondary_rate: Enable secondary retry rate config
|
||||||
* @enable_dhcp_server_offload: DHCP Offload is enabled or not
|
* @enable_dhcp_server_offload: DHCP Offload is enabled or not
|
||||||
* @dhcp_max_num_clients: Max number of DHCP client supported
|
* @dhcp_max_num_clients: Max number of DHCP client supported
|
||||||
|
* @dwelltime_params: adaptive dwell time parameters
|
||||||
*/
|
*/
|
||||||
struct wlan_fwol_cfg {
|
struct wlan_fwol_cfg {
|
||||||
/* Add CFG and INI items here */
|
/* Add CFG and INI items here */
|
||||||
@@ -204,6 +205,7 @@ struct wlan_fwol_cfg {
|
|||||||
bool enable_dhcp_server_offload;
|
bool enable_dhcp_server_offload;
|
||||||
uint32_t dhcp_max_num_clients;
|
uint32_t dhcp_max_num_clients;
|
||||||
#endif
|
#endif
|
||||||
|
struct adaptive_dwelltime_params dwelltime_params;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -252,4 +254,29 @@ QDF_STATUS fwol_cfg_on_psoc_disable(struct wlan_objmgr_psoc *psoc);
|
|||||||
QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_fwol_neighbor_report_cfg
|
struct wlan_fwol_neighbor_report_cfg
|
||||||
*fwol_neighbor_report_cfg);
|
*fwol_neighbor_report_cfg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_fwol_init_adapt_dwelltime_in_cfg - initialize adaptive dwell time params
|
||||||
|
* @psoc: Pointer to struct wlan_objmgr_psoc context
|
||||||
|
* @dwelltime_params: Pointer to dwell time params
|
||||||
|
*
|
||||||
|
* This function parses initialize the adaptive dwell params from ini.
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
fwol_init_adapt_dwelltime_in_cfg(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fwol_set_adaptive_dwelltime_config - API to set adaptive dwell params config
|
||||||
|
*
|
||||||
|
* @adaptive_dwelltime_params: adaptive_dwelltime_params structure
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
fwol_set_adaptive_dwelltime_config(
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -20,6 +20,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "wlan_fw_offload_main.h"
|
#include "wlan_fw_offload_main.h"
|
||||||
|
#include "cds_api.h"
|
||||||
|
#include "wma.h"
|
||||||
|
|
||||||
struct wlan_fwol_psoc_obj *fwol_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
struct wlan_fwol_psoc_obj *fwol_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
@@ -116,6 +118,45 @@ QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
fwol_init_adapt_dwelltime_in_cfg(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params)
|
||||||
|
{
|
||||||
|
if (!dwelltime_params) {
|
||||||
|
fwol_err("dwelltime params config pointer null");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
dwelltime_params->is_enabled =
|
||||||
|
cfg_get(psoc, CFG_ADAPTIVE_DWELL_MODE_ENABLED);
|
||||||
|
dwelltime_params->dwelltime_mode =
|
||||||
|
cfg_get(psoc, CFG_GLOBAL_ADAPTIVE_DWELL_MODE);
|
||||||
|
dwelltime_params->lpf_weight =
|
||||||
|
cfg_get(psoc, CFG_ADAPT_DWELL_LPF_WEIGHT);
|
||||||
|
dwelltime_params->passive_mon_intval =
|
||||||
|
cfg_get(psoc, CFG_ADAPT_DWELL_PASMON_INTVAL);
|
||||||
|
dwelltime_params->wifi_act_threshold =
|
||||||
|
cfg_get(psoc, CFG_ADAPT_DWELL_WIFI_THRESH);
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
fwol_set_adaptive_dwelltime_config(
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params)
|
||||||
|
{
|
||||||
|
tp_wma_handle wma_handle;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
|
||||||
|
if (!wma_handle) {
|
||||||
|
fwol_err("wma handle is null");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
status = wma_send_adapt_dwelltime_params(wma_handle,
|
||||||
|
dwelltime_params);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* fwol_parse_probe_req_ouis - form ouis from ini gProbeReqOUIs
|
* fwol_parse_probe_req_ouis - form ouis from ini gProbeReqOUIs
|
||||||
* @psoc: Pointer to struct wlan_objmgr_psoc context
|
* @psoc: Pointer to struct wlan_objmgr_psoc context
|
||||||
@@ -380,6 +421,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
|||||||
fwol_cfg->enable_tx_sch_delay = cfg_get(psoc, CFG_TX_SCH_DELAY);
|
fwol_cfg->enable_tx_sch_delay = cfg_get(psoc, CFG_TX_SCH_DELAY);
|
||||||
fwol_cfg->enable_secondary_rate = cfg_get(psoc,
|
fwol_cfg->enable_secondary_rate = cfg_get(psoc,
|
||||||
CFG_ENABLE_SECONDARY_RATE);
|
CFG_ENABLE_SECONDARY_RATE);
|
||||||
|
fwol_init_adapt_dwelltime_in_cfg(psoc, &fwol_cfg->dwelltime_params);
|
||||||
ucfg_fwol_fetch_ra_filter(psoc, fwol_cfg);
|
ucfg_fwol_fetch_ra_filter(psoc, fwol_cfg);
|
||||||
ucfg_fwol_fetch_tsf_gpio_pin(psoc, fwol_cfg);
|
ucfg_fwol_fetch_tsf_gpio_pin(psoc, fwol_cfg);
|
||||||
ucfg_fwol_fetch_dhcp_server_settings(psoc, fwol_cfg);
|
ucfg_fwol_fetch_dhcp_server_settings(psoc, fwol_cfg);
|
||||||
|
160
components/fw_offload/dispatcher/inc/cfg_adaptive_dwelltime.h
Normal file
160
components/fw_offload/dispatcher/inc/cfg_adaptive_dwelltime.h
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
|
* above copyright notice and this permission notice appear in all
|
||||||
|
* copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||||
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||||
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DOC: This file contains adaptive dwell components.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CFG_ADAPTIVE_DWELLTIME_H
|
||||||
|
#define __CFG_ADAPTIVE_DWELLTIME_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* adaptive_dwell_mode_enabled - enable/disable the adaptive dwell config.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* This ini will globally disable/enable the adaptive dwell config.
|
||||||
|
* Following parameters will set different values of attributes for dwell
|
||||||
|
* time optimization thus reducing total scan time.
|
||||||
|
* Acceptable values for this:
|
||||||
|
* 0: Config is disabled
|
||||||
|
* 1: Config is enabled
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: Scan
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ADAPTIVE_DWELL_MODE_ENABLED CFG_INI_BOOL(\
|
||||||
|
"adaptive_dwell_mode_enabled",\
|
||||||
|
1, \
|
||||||
|
"enable the adaptive dwell config")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* global_adapt_dwelltime_mode - set default adaptive mode.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 4
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini will set default adaptive mode, will be used if any of the
|
||||||
|
* scan dwell mode is set to default.
|
||||||
|
* For uses : see enum scan_dwelltime_adaptive_mode
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: Scan
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE CFG_INI_UINT(\
|
||||||
|
"global_adapt_dwelltime_mode",\
|
||||||
|
0, 4, 0,\
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"set default adaptive mode")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* adapt_dwell_lpf_weight - weight to caclulate avg low pass filter.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 100
|
||||||
|
* @Default: 80
|
||||||
|
*
|
||||||
|
* This ini is used to set the weight to calculate
|
||||||
|
* the average low pass filter for channel congestion.
|
||||||
|
* Acceptable values for this: 0-100 (In %)
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: Scan
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ADAPT_DWELL_LPF_WEIGHT CFG_INI_UINT(\
|
||||||
|
"adapt_dwell_lpf_weight",\
|
||||||
|
0, 100, 80,\
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"weight to calc avg low pass filter")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* adapt_dwell_passive_mon_intval - Interval to monitor passive scan in msec.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 25
|
||||||
|
* @Default: 10
|
||||||
|
*
|
||||||
|
* This ini is used to set interval to monitor wifi
|
||||||
|
* activity in passive scan in milliseconds.
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: Scan
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ADAPT_DWELL_PASMON_INTVAL CFG_INI_UINT(\
|
||||||
|
"adapt_dwell_passive_mon_intval",\
|
||||||
|
0, 25, 10,\
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"interval to monitor passive scan")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* adapt_dwell_wifi_act_threshold - % of wifi activity used in passive scan
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 100
|
||||||
|
* @Default: 10
|
||||||
|
*
|
||||||
|
* This ini is used to set % of wifi activity used in passive scan
|
||||||
|
* Acceptable values for this: 0-100 (in %)
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: Scan
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ADAPT_DWELL_WIFI_THRESH CFG_INI_UINT(\
|
||||||
|
"adapt_dwell_wifi_act_threshold",\
|
||||||
|
0, 100, 10,\
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"percent of wifi activity in pas scan")
|
||||||
|
|
||||||
|
#define CFG_ADAPTIVE_DWELLTIME_ALL \
|
||||||
|
CFG(CFG_ADAPTIVE_DWELL_MODE_ENABLED) \
|
||||||
|
CFG(CFG_GLOBAL_ADAPTIVE_DWELL_MODE) \
|
||||||
|
CFG(CFG_ADAPT_DWELL_LPF_WEIGHT) \
|
||||||
|
CFG(CFG_ADAPT_DWELL_PASMON_INTVAL) \
|
||||||
|
CFG(CFG_ADAPT_DWELL_WIFI_THRESH)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -27,8 +27,10 @@
|
|||||||
#include "cfg_ie_whitelist.h"
|
#include "cfg_ie_whitelist.h"
|
||||||
#include "cfg_fwol_generic.h"
|
#include "cfg_fwol_generic.h"
|
||||||
#include "cfg_neighbor_roam.h"
|
#include "cfg_neighbor_roam.h"
|
||||||
|
#include "cfg_adaptive_dwelltime.h"
|
||||||
|
|
||||||
#define CFG_FWOL_ALL \
|
#define CFG_FWOL_ALL \
|
||||||
|
CFG_ADAPTIVE_DWELLTIME_ALL \
|
||||||
CFG_11K_ALL \
|
CFG_11K_ALL \
|
||||||
CFG_COEX_ALL \
|
CFG_COEX_ALL \
|
||||||
CFG_FWOL_GENERIC_ALL \
|
CFG_FWOL_GENERIC_ALL \
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -383,4 +383,112 @@ QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t *enable_secondary_rate);
|
uint32_t *enable_secondary_rate);
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_all_adaptive_dwelltime_params() - Get all adaptive
|
||||||
|
dwelltime_params
|
||||||
|
* @psoc: Pointer to psoc object
|
||||||
|
* @dwelltime_params: Pointer to struct adaptive_dwelltime_params
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_all_adaptive_dwelltime_params(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params);
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_adaptive_dwell_mode_enabled() - API to globally disable/enable
|
||||||
|
* the adaptive dwell config.
|
||||||
|
* Acceptable values for this:
|
||||||
|
* 0: Config is disabled
|
||||||
|
* 1: Config is enabled
|
||||||
|
*
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @adaptive_dwell_mode_enabled: adaptive dwell mode enable/disable
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_adaptive_dwell_mode_enabled(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *adaptive_dwell_mode_enabled);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_global_adapt_dwelltime_mode() - API to set default
|
||||||
|
* adaptive mode.
|
||||||
|
* It will be used if any of the scan dwell mode is set to default.
|
||||||
|
* For uses : see enum scan_dwelltime_adaptive_mode
|
||||||
|
*
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* global_adapt_dwelltime_mode@: global adaptive dwell mode value
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_global_adapt_dwelltime_mode(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *global_adapt_dwelltime_mode);
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_adapt_dwell_lpf_weight() - API to get weight to calculate
|
||||||
|
* the average low pass filter for channel congestion
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @adapt_dwell_lpf_weight: adaptive low pass filter weight
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_adapt_dwell_lpf_weight(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_lpf_weight);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_adapt_dwell_passive_mon_intval() - API to get interval value
|
||||||
|
* for montitoring wifi activity in passive scan in msec.
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @adapt_dwell_passive_mon_intval: adaptive monitor interval in passive scan
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_adapt_dwell_passive_mon_intval(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_passive_mon_intval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_get_adapt_dwell_wifi_act_threshold - API to get % of wifi activity
|
||||||
|
* used in passive scan
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @adapt_dwell_wifi_act_threshold: percent of wifi activity in passive scan
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS ucfg_fwol_get_adapt_dwell_wifi_act_threshold(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_wifi_act_threshold);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_init_adapt_dwelltime_in_cfg - API to initialize adaptive
|
||||||
|
* dwell params
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @adaptive_dwelltime_params: pointer to adaptive_dwelltime_params structure
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_fwol_init_adapt_dwelltime_in_cfg(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params)
|
||||||
|
{
|
||||||
|
return fwol_init_adapt_dwelltime_in_cfg(psoc, dwelltime_params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_fwol_set_adaptive_dwelltime_config - API to set adaptive
|
||||||
|
* dwell params config
|
||||||
|
* @adaptive_dwelltime_params: adaptive_dwelltime_params structure
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_fwol_set_adaptive_dwelltime_config(
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params)
|
||||||
|
{
|
||||||
|
return fwol_set_adaptive_dwelltime_config(dwelltime_params);
|
||||||
|
}
|
||||||
#endif /* _WLAN_FWOL_UCFG_API_H_ */
|
#endif /* _WLAN_FWOL_UCFG_API_H_ */
|
||||||
|
@@ -692,5 +692,107 @@ QDF_STATUS ucfg_fwol_get_dhcp_max_num_clients(struct wlan_objmgr_psoc *psoc,
|
|||||||
*dhcp_max_num_clients = fwol_obj->cfg.dhcp_max_num_clients;
|
*dhcp_max_num_clients = fwol_obj->cfg.dhcp_max_num_clients;
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_all_adaptive_dwelltime_params(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct adaptive_dwelltime_params *dwelltime_params)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get fwol obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*dwelltime_params = fwol_obj->cfg.dwelltime_params;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_adaptive_dwell_mode_enabled(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *adaptive_dwell_mode_enabled)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get FWOL obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*adaptive_dwell_mode_enabled =
|
||||||
|
fwol_obj->cfg.dwelltime_params.is_enabled;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_global_adapt_dwelltime_mode(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *global_adapt_dwelltime_mode)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get FWOL obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*global_adapt_dwelltime_mode =
|
||||||
|
fwol_obj->cfg.dwelltime_params.dwelltime_mode;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
ucfg_fwol_get_adapt_dwell_lpf_weight(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_lpf_weight)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get FWOL obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*adapt_dwell_lpf_weight = fwol_obj->cfg.dwelltime_params.lpf_weight;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS ucfg_fwol_get_adapt_dwell_passive_mon_intval(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_passive_mon_intval)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get FWOL obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*adapt_dwell_passive_mon_intval =
|
||||||
|
fwol_obj->cfg.dwelltime_params.passive_mon_intval;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS ucfg_fwol_get_adapt_dwell_wifi_act_threshold(
|
||||||
|
struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *adapt_dwell_wifi_act_threshold)
|
||||||
|
{
|
||||||
|
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||||
|
|
||||||
|
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||||
|
if (!fwol_obj) {
|
||||||
|
fwol_err("Failed to get FWOL obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*adapt_dwell_wifi_act_threshold =
|
||||||
|
fwol_obj->cfg.dwelltime_params.wifi_act_threshold;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
@@ -400,57 +400,6 @@ enum hdd_dot11_mode {
|
|||||||
#define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX (4)
|
#define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX (4)
|
||||||
#define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT (1)
|
#define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT (1)
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* adaptive_dwell_mode_enabled - Enable adaptive dwell mode
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 1
|
|
||||||
* @Default: 1
|
|
||||||
*
|
|
||||||
* This parameter will globally disable/enable the adaptive dwell config.
|
|
||||||
* Following parameters will set different values of attributes for dwell
|
|
||||||
* time optimization thus reducing total scan time.
|
|
||||||
* Acceptable values for this:
|
|
||||||
* 0: Config is disabled
|
|
||||||
* 1: Config is enabled
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: Scan
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME "adaptive_dwell_mode_enabled"
|
|
||||||
#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN (0)
|
|
||||||
#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX (1)
|
|
||||||
#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT (1)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* global_adapt_dwelltime_mode - Set default adaptive mode
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 4
|
|
||||||
* @Default: 0
|
|
||||||
*
|
|
||||||
* This parameter will set default adaptive mode, will be used if any of the
|
|
||||||
* scan dwell mode is set to default.
|
|
||||||
* For uses : see enum scan_dwelltime_adaptive_mode
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: Scan
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME "global_adapt_dwelltime_mode"
|
|
||||||
#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN (0)
|
|
||||||
#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX (4)
|
|
||||||
#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT (0)
|
|
||||||
|
|
||||||
#ifdef FEATURE_LFR_SUBNET_DETECTION
|
#ifdef FEATURE_LFR_SUBNET_DETECTION
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
@@ -713,35 +662,6 @@ enum hdd_dot11_mode {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* This parameter will set the weight to calculate the average low pass
|
|
||||||
* filter for channel congestion.
|
|
||||||
* Acceptable values for this: 0-100 (In %)
|
|
||||||
*/
|
|
||||||
#define CFG_ADAPT_DWELL_LPF_WEIGHT_NAME "adapt_dwell_lpf_weight"
|
|
||||||
#define CFG_ADAPT_DWELL_LPF_WEIGHT_MIN (0)
|
|
||||||
#define CFG_ADAPT_DWELL_LPF_WEIGHT_MAX (100)
|
|
||||||
#define CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT (80)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This parameter will set interval to monitor wifi activity
|
|
||||||
* in passive scan in msec.
|
|
||||||
* Acceptable values for this: 0-25
|
|
||||||
*/
|
|
||||||
#define CFG_ADAPT_DWELL_PASMON_INTVAL_NAME "adapt_dwell_passive_mon_intval"
|
|
||||||
#define CFG_ADAPT_DWELL_PASMON_INTVAL_MIN (0)
|
|
||||||
#define CFG_ADAPT_DWELL_PASMON_INTVAL_MAX (25)
|
|
||||||
#define CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT (10)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This parameter will set % of wifi activity used in passive scan 0-100.
|
|
||||||
* Acceptable values for this: 0-100 (in %)
|
|
||||||
*/
|
|
||||||
#define CFG_ADAPT_DWELL_WIFI_THRESH_NAME "adapt_dwell_wifi_act_threshold"
|
|
||||||
#define CFG_ADAPT_DWELL_WIFI_THRESH_MIN (0)
|
|
||||||
#define CFG_ADAPT_DWELL_WIFI_THRESH_MAX (100)
|
|
||||||
#define CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT (10)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every
|
* gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every
|
||||||
@@ -975,13 +895,8 @@ struct hdd_config {
|
|||||||
bool enable_lfr_subnet_detection;
|
bool enable_lfr_subnet_detection;
|
||||||
#endif
|
#endif
|
||||||
bool apf_enabled;
|
bool apf_enabled;
|
||||||
bool adaptive_dwell_mode_enabled;
|
|
||||||
enum scan_dwelltime_adaptive_mode extscan_adaptive_dwell_mode;
|
enum scan_dwelltime_adaptive_mode extscan_adaptive_dwell_mode;
|
||||||
enum scan_dwelltime_adaptive_mode pnoscan_adaptive_dwell_mode;
|
enum scan_dwelltime_adaptive_mode pnoscan_adaptive_dwell_mode;
|
||||||
enum scan_dwelltime_adaptive_mode global_adapt_dwelltime_mode;
|
|
||||||
uint8_t adapt_dwell_lpf_weight;
|
|
||||||
uint8_t adapt_dwell_passive_mon_intval;
|
|
||||||
uint8_t adapt_dwell_wifi_act_threshold;
|
|
||||||
uint16_t sap_tx_leakage_threshold;
|
uint16_t sap_tx_leakage_threshold;
|
||||||
bool sap_internal_restart;
|
bool sap_internal_restart;
|
||||||
bool tx_orphan_enable;
|
bool tx_orphan_enable;
|
||||||
|
@@ -226,41 +226,6 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
|
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
|
||||||
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
|
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, adaptive_dwell_mode_enabled,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
|
|
||||||
CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
|
|
||||||
CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, global_adapt_dwelltime_mode,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
|
|
||||||
CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
|
|
||||||
CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, adapt_dwell_lpf_weight,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
|
|
||||||
CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, adapt_dwell_passive_mon_intval,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
|
|
||||||
CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, adapt_dwell_wifi_act_threshold,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
|
|
||||||
CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
|
|
||||||
CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
|
REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
|
||||||
struct hdd_config, scan_backoff_multiplier,
|
struct hdd_config, scan_backoff_multiplier,
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||||
|
@@ -10709,19 +10709,9 @@ static int hdd_adaptive_dwelltime_init(struct hdd_context *hdd_ctx)
|
|||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
struct adaptive_dwelltime_params dwelltime_params;
|
struct adaptive_dwelltime_params dwelltime_params;
|
||||||
|
|
||||||
dwelltime_params.is_enabled =
|
status = ucfg_fwol_get_all_adaptive_dwelltime_params(hdd_ctx->psoc,
|
||||||
hdd_ctx->config->adaptive_dwell_mode_enabled;
|
|
||||||
dwelltime_params.dwelltime_mode =
|
|
||||||
hdd_ctx->config->global_adapt_dwelltime_mode;
|
|
||||||
dwelltime_params.lpf_weight =
|
|
||||||
hdd_ctx->config->adapt_dwell_lpf_weight;
|
|
||||||
dwelltime_params.passive_mon_intval =
|
|
||||||
hdd_ctx->config->adapt_dwell_passive_mon_intval;
|
|
||||||
dwelltime_params.wifi_act_threshold =
|
|
||||||
hdd_ctx->config->adapt_dwell_wifi_act_threshold;
|
|
||||||
|
|
||||||
status = sme_set_adaptive_dwelltime_config(hdd_ctx->mac_handle,
|
|
||||||
&dwelltime_params);
|
&dwelltime_params);
|
||||||
|
status = ucfg_fwol_set_adaptive_dwelltime_config(&dwelltime_params);
|
||||||
|
|
||||||
hdd_debug("Sending Adaptive Dwelltime Configuration to fw");
|
hdd_debug("Sending Adaptive Dwelltime Configuration to fw");
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
@@ -1571,8 +1571,6 @@ sme_apf_read_work_memory(mac_handle_t mac_handle,
|
|||||||
uint32_t sme_get_wni_dot11_mode(mac_handle_t mac_handle);
|
uint32_t sme_get_wni_dot11_mode(mac_handle_t mac_handle);
|
||||||
QDF_STATUS sme_create_mon_session(mac_handle_t mac_handle, uint8_t *bssid,
|
QDF_STATUS sme_create_mon_session(mac_handle_t mac_handle, uint8_t *bssid,
|
||||||
uint8_t vdev_id);
|
uint8_t vdev_id);
|
||||||
QDF_STATUS sme_set_adaptive_dwelltime_config(mac_handle_t mac_handle,
|
|
||||||
struct adaptive_dwelltime_params *dwelltime_params);
|
|
||||||
|
|
||||||
void sme_set_vdev_ies_per_band(mac_handle_t mac_handle, uint8_t vdev_id);
|
void sme_set_vdev_ies_per_band(mac_handle_t mac_handle, uint8_t vdev_id);
|
||||||
void sme_set_pdev_ht_vht_ies(mac_handle_t mac_handle, bool enable2x2);
|
void sme_set_pdev_ht_vht_ies(mac_handle_t mac_handle, bool enable2x2);
|
||||||
|
@@ -12757,45 +12757,6 @@ void sme_set_chan_info_callback(mac_handle_t mac_handle,
|
|||||||
mac->chan_info_cb = callback;
|
mac->chan_info_cb = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* sme_set_adaptive_dwelltime_config() - Update Adaptive dwelltime configuration
|
|
||||||
* @mac_handle: The handle returned by macOpen
|
|
||||||
* @params: adaptive_dwelltime_params config
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS if adaptive dwell time update
|
|
||||||
* configuration success else failure status
|
|
||||||
*/
|
|
||||||
QDF_STATUS sme_set_adaptive_dwelltime_config(mac_handle_t mac_handle,
|
|
||||||
struct adaptive_dwelltime_params *params)
|
|
||||||
{
|
|
||||||
struct scheduler_msg message = {0};
|
|
||||||
QDF_STATUS status;
|
|
||||||
struct adaptive_dwelltime_params *dwelltime_params;
|
|
||||||
|
|
||||||
dwelltime_params = qdf_mem_malloc(sizeof(*dwelltime_params));
|
|
||||||
if (!dwelltime_params)
|
|
||||||
return QDF_STATUS_E_NOMEM;
|
|
||||||
|
|
||||||
dwelltime_params->is_enabled = params->is_enabled;
|
|
||||||
dwelltime_params->dwelltime_mode = params->dwelltime_mode;
|
|
||||||
dwelltime_params->lpf_weight = params->lpf_weight;
|
|
||||||
dwelltime_params->passive_mon_intval = params->passive_mon_intval;
|
|
||||||
dwelltime_params->wifi_act_threshold = params->wifi_act_threshold;
|
|
||||||
|
|
||||||
message.type = WMA_SET_ADAPT_DWELLTIME_CONF_PARAMS;
|
|
||||||
message.bodyptr = dwelltime_params;
|
|
||||||
status = scheduler_post_message(QDF_MODULE_ID_SME,
|
|
||||||
QDF_MODULE_ID_WMA,
|
|
||||||
QDF_MODULE_ID_WMA, &message);
|
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"%s: Not able to post msg to WMA!", __func__);
|
|
||||||
|
|
||||||
qdf_mem_free(dwelltime_params);
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sme_set_vdev_ies_per_band() - sends the per band IEs to vdev
|
* sme_set_vdev_ies_per_band() - sends the per band IEs to vdev
|
||||||
* @mac_handle: Opaque handle to the global MAC context
|
* @mac_handle: Opaque handle to the global MAC context
|
||||||
|
Reference in New Issue
Block a user