qcacld-3.0: Add INI support for DFS Channel Ageout Time
Add ini support for DFS Channel Ageout Time, the time upto which
DFS channel information such as beacon found is remembered.
This ini is used to set the ageout timer value from host to FW.
If not set, FW will disable ageout time.
This value is sent as a WMI_PDEV_PARAM_SET_DFS_CHAN_AGEOUT_TIME
as part of WMI_PDEV_SET_PARAM_CMDID.
Change-Id: I99553fa87a4025f03c52b4b387a414ba06c2c457
CRs-Fixed: 2625996
This commit is contained in:
parent
e607d61a8c
commit
f8d599b48d
@ -321,6 +321,8 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
gen->enable_ring_buffer = cfg_get(psoc, CFG_ENABLE_RING_BUFFER);
|
gen->enable_ring_buffer = cfg_get(psoc, CFG_ENABLE_RING_BUFFER);
|
||||||
gen->enable_peer_unmap_conf_support =
|
gen->enable_peer_unmap_conf_support =
|
||||||
cfg_get(psoc, CFG_DP_ENABLE_PEER_UMAP_CONF_SUPPORT);
|
cfg_get(psoc, CFG_DP_ENABLE_PEER_UMAP_CONF_SUPPORT);
|
||||||
|
gen->dfs_chan_ageout_time =
|
||||||
|
cfg_get(psoc, CFG_DFS_CHAN_AGEOUT_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
|
static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2020 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
|
||||||
@ -687,6 +687,29 @@
|
|||||||
1, \
|
1, \
|
||||||
"To Enable Ring Buffer")
|
"To Enable Ring Buffer")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* dfs_chan_ageout_time - Set DFS Channel ageout time(in seconds)
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 8
|
||||||
|
* Default: 0
|
||||||
|
*
|
||||||
|
* Ageout time is the time upto which DFS channel information such as beacon
|
||||||
|
* found is remembered. So that Firmware performs Active scan instead of the
|
||||||
|
* Passive to reduce the Dwell time.
|
||||||
|
* This ini Parameter used to set ageout timer value from host to FW.
|
||||||
|
* If not set, Firmware will disable ageout time.
|
||||||
|
*
|
||||||
|
* Supported Feature: STA scan in DFS channels
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_DFS_CHAN_AGEOUT_TIME CFG_INI_UINT("dfs_chan_ageout_time", \
|
||||||
|
0, 8, 0, CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Set DFS Channel ageout time from host to firmware")
|
||||||
|
|
||||||
#define CFG_GENERIC_ALL \
|
#define CFG_GENERIC_ALL \
|
||||||
CFG(CFG_ENABLE_DEBUG_PACKET_LOG) \
|
CFG(CFG_ENABLE_DEBUG_PACKET_LOG) \
|
||||||
CFG(CFG_PMF_SA_QUERY_MAX_RETRIES) \
|
CFG(CFG_PMF_SA_QUERY_MAX_RETRIES) \
|
||||||
@ -716,5 +739,6 @@
|
|||||||
CFG(CFG_REMOVE_TIME_STAMP_SYNC_CMD) \
|
CFG(CFG_REMOVE_TIME_STAMP_SYNC_CMD) \
|
||||||
CFG(CFG_MGMT_RETRY_MAX) \
|
CFG(CFG_MGMT_RETRY_MAX) \
|
||||||
CFG(CFG_BMISS_SKIP_FULL_SCAN) \
|
CFG(CFG_BMISS_SKIP_FULL_SCAN) \
|
||||||
CFG(CFG_ENABLE_RING_BUFFER)
|
CFG(CFG_ENABLE_RING_BUFFER) \
|
||||||
|
CFG(CFG_DFS_CHAN_AGEOUT_TIME)
|
||||||
#endif /* __CFG_MLME_GENERIC_H */
|
#endif /* __CFG_MLME_GENERIC_H */
|
||||||
|
@ -2476,4 +2476,15 @@ uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_dfs_chan_ageout_time() - Get the DFS Channel ageout time
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @dfs_chan_ageout_time: output pointer to hold configured value of DFS
|
||||||
|
* Channel ageout time
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_dfs_chan_ageout_time(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *dfs_chan_ageout_time);
|
||||||
#endif /* _WLAN_MLME_API_H_ */
|
#endif /* _WLAN_MLME_API_H_ */
|
||||||
|
@ -1129,6 +1129,7 @@ struct wlan_mlme_chainmask {
|
|||||||
* candidate is found in partial scan based on channel map
|
* candidate is found in partial scan based on channel map
|
||||||
* @enable_ring_buffer: Decide to enable/disable ring buffer for bug report
|
* @enable_ring_buffer: Decide to enable/disable ring buffer for bug report
|
||||||
* @enable_peer_unmap_conf_support: Indicate whether to send conf for peer unmap
|
* @enable_peer_unmap_conf_support: Indicate whether to send conf for peer unmap
|
||||||
|
* @dfs_chan_ageout_time: Set DFS Channel ageout time
|
||||||
*/
|
*/
|
||||||
struct wlan_mlme_generic {
|
struct wlan_mlme_generic {
|
||||||
enum band_info band_capability;
|
enum band_info band_capability;
|
||||||
@ -1164,6 +1165,7 @@ struct wlan_mlme_generic {
|
|||||||
bool bmiss_skip_full_scan;
|
bool bmiss_skip_full_scan;
|
||||||
bool enable_ring_buffer;
|
bool enable_ring_buffer;
|
||||||
bool enable_peer_unmap_conf_support;
|
bool enable_peer_unmap_conf_support;
|
||||||
|
uint8_t dfs_chan_ageout_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -3865,3 +3865,22 @@ uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
|
|||||||
return mlme_obj->cfg.lfr.roam_trigger_bitmap;
|
return mlme_obj->cfg.lfr.roam_trigger_bitmap;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_dfs_chan_ageout_time(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *dfs_chan_ageout_time)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||||
|
|
||||||
|
if (!mlme_obj) {
|
||||||
|
*dfs_chan_ageout_time =
|
||||||
|
cfg_default(CFG_DFS_CHAN_AGEOUT_TIME);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*dfs_chan_ageout_time = mlme_obj->cfg.gen.dfs_chan_ageout_time;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
@ -5505,7 +5505,7 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
|
|||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
struct hdd_context *hdd_ctx;
|
struct hdd_context *hdd_ctx;
|
||||||
bool bval = false;
|
bool bval = false;
|
||||||
uint8_t enable_tx_sch_delay;
|
uint8_t enable_tx_sch_delay, dfs_chan_ageout_time;
|
||||||
uint32_t dtim_sel_diversity, enable_secondary_rate;
|
uint32_t dtim_sel_diversity, enable_secondary_rate;
|
||||||
|
|
||||||
hdd_enter_dev(adapter->dev);
|
hdd_enter_dev(adapter->dev);
|
||||||
@ -5567,6 +5567,16 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wlan_mlme_get_dfs_chan_ageout_time(hdd_ctx->psoc,
|
||||||
|
&dfs_chan_ageout_time);
|
||||||
|
ret = sme_cli_set_command(adapter->vdev_id,
|
||||||
|
WMI_PDEV_PARAM_SET_DFS_CHAN_AGEOUT_TIME,
|
||||||
|
dfs_chan_ageout_time, PDEV_CMD);
|
||||||
|
if (ret) {
|
||||||
|
hdd_err("Failed to set DFS_CHAN_AGEOUT_TIME");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE) {
|
if (adapter->device_mode == QDF_STA_MODE) {
|
||||||
status = ucfg_get_upper_brssi_thresh(hdd_ctx->psoc,
|
status = ucfg_get_upper_brssi_thresh(hdd_ctx->psoc,
|
||||||
&upper_brssi_thresh);
|
&upper_brssi_thresh);
|
||||||
|
Loading…
Reference in New Issue
Block a user