qcacld-3.0: Refactor two INI about channel bonding

Based on new cfg framework, refactor below WNI/INI:
 - CFG_CHANNEL_BONDING_MODE_24GHZ_NAME
 - CFG_CHANNEL_BONDING_MODE_5GHZ_NAME

Change-Id: Ia18fd79738a8079c41df557934335e54c8016e43
CRs-Fixed: 2381831
This commit is contained in:
Wu Gao
2019-01-16 15:19:21 +08:00
committed by nshrivas
parent 9c5a777732
commit fc84a1715a
5 changed files with 173 additions and 4 deletions

View File

@@ -906,6 +906,10 @@ static void mlme_init_feature_flag_in_cfg(
feature_flags->mcc_bcast_prob_rsp = cfg_get(psoc, feature_flags->mcc_bcast_prob_rsp = cfg_get(psoc,
CFG_FW_MCC_BCAST_PROB_RESP); CFG_FW_MCC_BCAST_PROB_RESP);
feature_flags->enable_mcc = cfg_get(psoc, CFG_MCC_FEATURE); feature_flags->enable_mcc = cfg_get(psoc, CFG_MCC_FEATURE);
feature_flags->channel_bonding_mode_24ghz =
cfg_get(psoc, CFG_CHANNEL_BONDING_MODE_24GHZ);
feature_flags->channel_bonding_mode_5ghz =
cfg_get(psoc, CFG_CHANNEL_BONDING_MODE_5GHZ);
} }
static void mlme_init_sap_protection_cfg(struct wlan_objmgr_psoc *psoc, static void mlme_init_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,

View File

@@ -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
@@ -158,6 +158,56 @@
CFG_VALUE_OR_DEFAULT, \ CFG_VALUE_OR_DEFAULT, \
"Enable/Disable MCC feature.") "Enable/Disable MCC feature.")
/*
* <ini>
* gChannelBondingMode24GHz - Configures Channel Bonding in 24 GHz
* @Min: 0
* @Max: 10
* @Default: 0
*
* This ini is used to set default channel bonding mode 24GHZ
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_CHANNEL_BONDING_MODE_24GHZ CFG_INI_UINT( \
"gChannelBondingMode24GHz", \
0, \
10, \
0, \
CFG_VALUE_OR_DEFAULT, \
"Configures Channel Bonding in 24 GHz")
/*
* <ini>
* gChannelBondingMode5GHz - Configures Channel Bonding in 5 GHz
* @Min: 0
* @Max: 10
* @Default: 0
*
* This ini is used to set default channel bonding mode 5GHZ
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_CHANNEL_BONDING_MODE_5GHZ CFG_INI_UINT( \
"gChannelBondingMode5GHz", \
0, \
10, \
0, \
CFG_VALUE_OR_DEFAULT, \
"Configures Channel Bonding in 5 GHz")
#define CFG_FEATURE_FLAG_ALL \ #define CFG_FEATURE_FLAG_ALL \
CFG(CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY) \ CFG(CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY) \
CFG(CFG_HCF_ENABLED) \ CFG(CFG_HCF_ENABLED) \
@@ -169,7 +219,9 @@
CFG(CFG_11G_SHORT_SLOT_TIME_ENABLED) \ CFG(CFG_11G_SHORT_SLOT_TIME_ENABLED) \
CFG(CFG_CHANNEL_BONDING_MODE) \ CFG(CFG_CHANNEL_BONDING_MODE) \
CFG(CFG_BLOCK_ACK_ENABLED) \ CFG(CFG_BLOCK_ACK_ENABLED) \
CFG(CFG_ENABLE_AMPDUPS) CFG(CFG_ENABLE_AMPDUPS) \
CFG(CFG_CHANNEL_BONDING_MODE_24GHZ) \
CFG(CFG_CHANNEL_BONDING_MODE_5GHZ)
#endif /* __CFG_MLME_FEATURE_FLAG_H */ #endif /* __CFG_MLME_FEATURE_FLAG_H */

View File

@@ -893,11 +893,16 @@ struct wlan_mlme_rates {
* @enable_hcf: enable HCF feature * @enable_hcf: enable HCF feature
* @enable_rsn: enable RSN for connection * @enable_rsn: enable RSN for connection
* @enable_short_preamble_11g: enable short preamble for 11g * @enable_short_preamble_11g: enable short preamble for 11g
* @enable_short_slot_time_11g
* @enable_ampdu: enable AMPDU feature
* @enable_mcc: enable MCC feature
* @mcc_rts_cts_prot: RTS-CTS protection in MCC
* @mcc_bcast_prob_rsp: broadcast Probe Response in MCC
* @channel_bonding_mode: channel bonding mode * @channel_bonding_mode: channel bonding mode
* @enable_block_ack: enable block ack feature * @enable_block_ack: enable block ack feature
* @enable_ampdu: Enable AMPDU feature * @channel_bonding_mode_24ghz: configures Channel Bonding in 24 GHz
* @channel_bonding_mode_5ghz: configures Channel Bonding in 5 GHz
*/ */
struct wlan_mlme_feature_flag { struct wlan_mlme_feature_flag {
bool accept_short_slot_assoc; bool accept_short_slot_assoc;
bool enable_hcf; bool enable_hcf;
@@ -910,6 +915,8 @@ struct wlan_mlme_feature_flag {
uint8_t mcc_bcast_prob_rsp; uint8_t mcc_bcast_prob_rsp;
uint32_t channel_bonding_mode; uint32_t channel_bonding_mode;
uint32_t enable_block_ack; uint32_t enable_block_ack;
uint32_t channel_bonding_mode_24ghz;
uint32_t channel_bonding_mode_5ghz;
}; };
/* /*

View File

@@ -3565,4 +3565,47 @@ ucfg_mlme_set_obss_detection_offload_enabled(struct wlan_objmgr_psoc *psoc,
QDF_STATUS QDF_STATUS
ucfg_mlme_set_obss_color_collision_offload_enabled( ucfg_mlme_set_obss_color_collision_offload_enabled(
struct wlan_objmgr_psoc *psoc, uint8_t value); struct wlan_objmgr_psoc *psoc, uint8_t value);
/**
* ucfg_mlme_get_channel_bonding_24ghz() - get channel bonding mode of 24ghz
* @psoc: pointer to psoc object
* @value: pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_channel_bonding_24ghz(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
/**
* ucfg_mlme_set_channel_bonding_24ghz() - set channel bonding mode for 24ghz
* @psoc: pointer to psoc object
* @value: channel bonding mode
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_set_channel_bonding_24ghz(struct wlan_objmgr_psoc *psoc,
uint32_t value);
/**
* ucfg_mlme_get_channel_bonding_5ghz() - get channel bonding mode of 5ghz
* @psoc: pointer to psoc object
* @value: pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
/**
* ucfg_mlme_set_channel_bonding_5ghz() - set channel bonding mode for 5ghz
* @psoc: pointer to psoc object
* @value: channel bonding mode
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_set_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
uint32_t value);
#endif /* _WLAN_MLME_UCFG_API_H_ */ #endif /* _WLAN_MLME_UCFG_API_H_ */

View File

@@ -1534,3 +1534,66 @@ ucfg_mlme_set_obss_color_collision_offload_enabled(
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
QDF_STATUS
ucfg_mlme_get_channel_bonding_24ghz(struct wlan_objmgr_psoc *psoc,
uint32_t *val)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*val = cfg_default(CFG_CHANNEL_BONDING_MODE_24GHZ);
return QDF_STATUS_E_INVAL;
}
*val = mlme_obj->cfg.feature_flags.channel_bonding_mode_24ghz;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_set_channel_bonding_24ghz(struct wlan_objmgr_psoc *psoc,
uint32_t value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj)
return QDF_STATUS_E_INVAL;
mlme_obj->cfg.feature_flags.channel_bonding_mode_24ghz = value;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_get_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
uint32_t *value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*value = cfg_default(CFG_CHANNEL_BONDING_MODE_5GHZ);
return QDF_STATUS_E_INVAL;
}
*value = mlme_obj->cfg.feature_flags.channel_bonding_mode_5ghz;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_set_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
uint32_t value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj)
return QDF_STATUS_E_INVAL;
mlme_obj->cfg.feature_flags.channel_bonding_mode_5ghz = value;
return QDF_STATUS_SUCCESS;
}