mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacld-3.0: Config support for STA bss color collision detection
Add INI configuration support to enable/disable BSS color collision detection offload in STA mode. Change-Id: I9d8f096813d74242566ccae5f92e872bcaca6295 CRs-Fixed: 2965133
This commit is contained in:
parent
06dae2f088
commit
1015549545
7 changed files with 65 additions and 1 deletions
|
|
@ -1353,6 +1353,8 @@ static void mlme_init_obss_ht40_cfg(struct wlan_objmgr_psoc *psoc,
|
|||
(bool)cfg_default(CFG_OBSS_DETECTION_OFFLOAD);
|
||||
obss_ht40->obss_color_collision_offload_enabled =
|
||||
(bool)cfg_default(CFG_OBSS_COLOR_COLLISION_OFFLOAD);
|
||||
obss_ht40->bss_color_collision_det_sta =
|
||||
cfg_get(psoc, CFG_BSS_CLR_COLLISION_DETCN_STA);
|
||||
}
|
||||
|
||||
static void mlme_init_threshold_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2021 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
|
||||
|
|
@ -243,6 +243,27 @@
|
|||
0, \
|
||||
"Enable obss color collision offload")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* bss_color_collision_det_sta - Enables BSS color collision detection in STA
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini used to enable or disable the BSS color collision detection in
|
||||
* STA mode if obss_color_collision_offload is enabled.
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_BSS_CLR_COLLISION_DETCN_STA CFG_INI_BOOL( \
|
||||
"bss_color_collision_det_sta", \
|
||||
0, \
|
||||
"BSS color collision detection in STA")
|
||||
|
||||
#define CFG_OBSS_HT40_ALL \
|
||||
CFG(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME) \
|
||||
CFG(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME) \
|
||||
|
|
@ -253,6 +274,7 @@
|
|||
CFG(CFG_OBSS_HT40_WIDTH_CH_TRANSITION_DELAY) \
|
||||
CFG(CFG_OBSS_HT40_OVERRIDE_HT40_20_24GHZ) \
|
||||
CFG(CFG_OBSS_DETECTION_OFFLOAD) \
|
||||
CFG(CFG_BSS_CLR_COLLISION_DETCN_STA) \
|
||||
CFG(CFG_OBSS_COLOR_COLLISION_OFFLOAD)
|
||||
|
||||
#endif /* CFG_MLME_OBSS_HT40_H__ */
|
||||
|
|
|
|||
|
|
@ -1396,6 +1396,7 @@ struct wlan_mlme_cfg_twt {
|
|||
* @is_override_ht20_40_24g: use channel bonding in 2.4 GHz
|
||||
* @obss_detection_offload_enabled: Enable OBSS detection offload
|
||||
* @obss_color_collision_offload_enabled: Enable obss color collision
|
||||
* @bss_color_collision_det_sta: STA BSS color collision detection offload
|
||||
*/
|
||||
struct wlan_mlme_obss_ht40 {
|
||||
uint32_t active_dwelltime;
|
||||
|
|
@ -1408,6 +1409,7 @@ struct wlan_mlme_obss_ht40 {
|
|||
bool is_override_ht20_40_24g;
|
||||
bool obss_detection_offload_enabled;
|
||||
bool obss_color_collision_offload_enabled;
|
||||
bool bss_color_collision_det_sta;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3972,6 +3972,18 @@ QDF_STATUS
|
|||
ucfg_mlme_set_obss_color_collision_offload_enabled(
|
||||
struct wlan_objmgr_psoc *psoc, uint8_t value);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_set_bss_color_collision_det_sta() - Enable bss color
|
||||
* collision detection offload for STA mode
|
||||
* @psoc: pointer to psoc object
|
||||
* @value: enable or disable
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_mlme_set_bss_color_collision_det_sta(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t value);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_set_restricted_80p80_bw_supp() - Set the restricted 80p80 support
|
||||
* @psoc: pointer to psoc object
|
||||
|
|
|
|||
|
|
@ -1550,6 +1550,21 @@ ucfg_mlme_set_obss_detection_offload_enabled(struct wlan_objmgr_psoc *psoc,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_mlme_set_bss_color_collision_det_sta(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t value)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||
|
||||
mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
if (!mlme_obj)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
mlme_obj->cfg.obss_ht40.bss_color_collision_det_sta = value;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_mlme_set_obss_color_collision_offload_enabled(
|
||||
struct wlan_objmgr_psoc *psoc, uint8_t value)
|
||||
|
|
|
|||
|
|
@ -2691,6 +2691,14 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
hdd_err("Failed to set WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD");
|
||||
|
||||
if (!cfg->obss_color_collision_offloaded) {
|
||||
status = ucfg_mlme_set_bss_color_collision_det_sta(
|
||||
hdd_ctx->psoc,
|
||||
cfg->obss_color_collision_offloaded);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
hdd_err("Failed to set CFG_BSS_CLR_COLLISION_DET_STA");
|
||||
}
|
||||
|
||||
hdd_update_score_config(hdd_ctx);
|
||||
hdd_update_multi_client_thermal_support(hdd_ctx);
|
||||
|
||||
|
|
|
|||
|
|
@ -686,6 +686,9 @@ struct pe_session *pe_create_session(struct mac_context *mac,
|
|||
if (status != QDF_STATUS_SUCCESS)
|
||||
pe_err("cannot create ap_ecsa_timer");
|
||||
}
|
||||
if (session_ptr->opmode == QDF_STA_MODE)
|
||||
session_ptr->is_session_obss_color_collision_det_enabled =
|
||||
mac->mlme_cfg->obss_ht40.bss_color_collision_det_sta;
|
||||
pe_init_fils_info(session_ptr);
|
||||
pe_init_pmf_comeback_timer(mac, session_ptr);
|
||||
session_ptr->ht_client_cnt = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue