qcacld-3.0: Update band_capability INI to use bitmap
The band_capability field is used in other places to be a bitmap over reg_wifi_band. Update the field in wma_tgt_cfg and wlan_mlme_generic to take the same bitmap for consistency. Update all references to these fields to expect a bitmap as well. Change-Id: I8abd697e2fbe02b4eadd32f3027bef7408bac2a0 CRs-fixed: 2726710
This commit is contained in:
@@ -299,6 +299,8 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
cfg_get(psoc, CFG_ENABLE_RTT_MAC_RANDOMIZATION);
|
cfg_get(psoc, CFG_ENABLE_RTT_MAC_RANDOMIZATION);
|
||||||
gen->band_capability =
|
gen->band_capability =
|
||||||
cfg_get(psoc, CFG_BAND_CAPABILITY);
|
cfg_get(psoc, CFG_BAND_CAPABILITY);
|
||||||
|
if (!gen->band_capability)
|
||||||
|
gen->band_capability = (BIT(REG_BAND_2G) | BIT(REG_BAND_5G));
|
||||||
gen->band = gen->band_capability;
|
gen->band = gen->band_capability;
|
||||||
gen->select_5ghz_margin =
|
gen->select_5ghz_margin =
|
||||||
cfg_get(psoc, CFG_SELECT_5GHZ_MARGIN);
|
cfg_get(psoc, CFG_SELECT_5GHZ_MARGIN);
|
||||||
|
@@ -140,13 +140,21 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* BandCapability - Preferred band (0: Both, 1: 2.4G only, 2: 5G only)
|
* BandCapability - Preferred band (0: Both 2.4G and 5G,
|
||||||
|
* 1: 2.4G only,
|
||||||
|
* 2: 5G only,
|
||||||
|
* 3: Both 2.4G and 5G,
|
||||||
|
* 4: 6G only,
|
||||||
|
* 5: Both 2.4G and 6G,
|
||||||
|
* 6: Both 5G and 6G,
|
||||||
|
* 7: 2.4G, 5G, and 6G)
|
||||||
* @Min: 0
|
* @Min: 0
|
||||||
* @Max: 2
|
* @Max: 7
|
||||||
* @Default: 0
|
* @Default: 7
|
||||||
*
|
*
|
||||||
* This ini is used to set default band capability
|
* This ini is used to set default band capability
|
||||||
* (0: Both, 1: 2.4G only, 2: 5G only)
|
* (0: Both 2.4G and 5G, 1: 2.4G only, 2: 5G only, 3: Both 2.4G and 5G,
|
||||||
|
* 4: 6G only, 5: Both 2.4G and 6G, 6: Both 5G and 6G, 7: 2.4G, 5G, and 6G)
|
||||||
*
|
*
|
||||||
* Related: None
|
* Related: None
|
||||||
*
|
*
|
||||||
@@ -159,8 +167,8 @@
|
|||||||
#define CFG_BAND_CAPABILITY CFG_INI_UINT( \
|
#define CFG_BAND_CAPABILITY CFG_INI_UINT( \
|
||||||
"BandCapability", \
|
"BandCapability", \
|
||||||
0, \
|
0, \
|
||||||
2, \
|
7, \
|
||||||
0, \
|
7, \
|
||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Band Capability")
|
"Band Capability")
|
||||||
|
|
||||||
|
@@ -257,7 +257,7 @@ QDF_STATUS wlan_mlme_set_ht_mpdu_density(struct wlan_objmgr_psoc *psoc,
|
|||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *band_capability);
|
uint32_t *band_capability);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_set_band_capability() - Set the Band capability config
|
* wlan_mlme_set_band_capability() - Set the Band capability config
|
||||||
@@ -267,7 +267,7 @@ QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
|||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t band_capability);
|
uint32_t band_capability);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_get_prevent_link_down() - Get the prevent link down config
|
* wlan_mlme_get_prevent_link_down() - Get the prevent link down config
|
||||||
|
@@ -1111,8 +1111,8 @@ struct wlan_mlme_chainmask {
|
|||||||
* @sae_connect_retries: sae connect retry bitmask
|
* @sae_connect_retries: sae connect retry bitmask
|
||||||
*/
|
*/
|
||||||
struct wlan_mlme_generic {
|
struct wlan_mlme_generic {
|
||||||
enum band_info band_capability;
|
uint32_t band_capability;
|
||||||
enum band_info band;
|
uint32_t band;
|
||||||
uint8_t select_5ghz_margin;
|
uint8_t select_5ghz_margin;
|
||||||
uint8_t sub_20_chan_width;
|
uint8_t sub_20_chan_width;
|
||||||
uint8_t ito_repeat_count;
|
uint8_t ito_repeat_count;
|
||||||
|
@@ -236,7 +236,7 @@ QDF_STATUS ucfg_mlme_set_ht_mpdu_density(struct wlan_objmgr_psoc *psoc,
|
|||||||
*/
|
*/
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *band_capability)
|
uint32_t *band_capability)
|
||||||
{
|
{
|
||||||
return wlan_mlme_get_band_capability(psoc, band_capability);
|
return wlan_mlme_get_band_capability(psoc, band_capability);
|
||||||
}
|
}
|
||||||
@@ -250,7 +250,7 @@ QDF_STATUS ucfg_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
|||||||
*/
|
*/
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS ucfg_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t band_capability)
|
uint32_t band_capability)
|
||||||
{
|
{
|
||||||
return wlan_mlme_set_band_capability(psoc, band_capability);
|
return wlan_mlme_set_band_capability(psoc, band_capability);
|
||||||
}
|
}
|
||||||
|
@@ -187,7 +187,7 @@ QDF_STATUS wlan_mlme_set_ht_mpdu_density(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *band_capability)
|
uint32_t *band_capability)
|
||||||
{
|
{
|
||||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t band_capability)
|
uint32_t band_capability)
|
||||||
|
|
||||||
{
|
{
|
||||||
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
struct wlan_mlme_psoc_ext_obj *mlme_obj;
|
||||||
|
@@ -38,7 +38,7 @@ wlan_cm_roam_send_set_vdev_pcl(struct wlan_objmgr_psoc *psoc,
|
|||||||
struct wlan_objmgr_vdev *vdev;
|
struct wlan_objmgr_vdev *vdev;
|
||||||
struct wmi_pcl_chan_weights *weights;
|
struct wmi_pcl_chan_weights *weights;
|
||||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
uint8_t band_capability;
|
uint32_t band_capability;
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -94,13 +94,13 @@ wlan_cm_roam_send_set_vdev_pcl(struct wlan_objmgr_psoc *psoc,
|
|||||||
wma_map_pcl_weights(weights->weighed_valid_list[i]);
|
wma_map_pcl_weights(weights->weighed_valid_list[i]);
|
||||||
|
|
||||||
/* Dont allow roaming on 2G when 5G_ONLY configured */
|
/* Dont allow roaming on 2G when 5G_ONLY configured */
|
||||||
if ((band_capability == BAND_5G ||
|
if ((band_capability == BIT(REG_BAND_5G) ||
|
||||||
pcl_req->band_mask == BIT(REG_BAND_5G)) &&
|
pcl_req->band_mask == BIT(REG_BAND_5G)) &&
|
||||||
WLAN_REG_IS_24GHZ_CH_FREQ(weights->saved_chan_list[i]))
|
WLAN_REG_IS_24GHZ_CH_FREQ(weights->saved_chan_list[i]))
|
||||||
weights->weighed_valid_list[i] =
|
weights->weighed_valid_list[i] =
|
||||||
WEIGHT_OF_DISALLOWED_CHANNELS;
|
WEIGHT_OF_DISALLOWED_CHANNELS;
|
||||||
|
|
||||||
if ((band_capability == BAND_2G ||
|
if ((band_capability == BIT(REG_BAND_2G) ||
|
||||||
pcl_req->band_mask == BIT(REG_BAND_2G)) &&
|
pcl_req->band_mask == BIT(REG_BAND_2G)) &&
|
||||||
!WLAN_REG_IS_24GHZ_CH_FREQ(weights->saved_chan_list[i]))
|
!WLAN_REG_IS_24GHZ_CH_FREQ(weights->saved_chan_list[i]))
|
||||||
weights->weighed_valid_list[i] =
|
weights->weighed_valid_list[i] =
|
||||||
|
@@ -16010,7 +16010,7 @@ static void wlan_hdd_update_ht_cap(struct hdd_context *hdd_ctx)
|
|||||||
static void wlan_hdd_update_band_cap_in_wiphy(struct hdd_context *hdd_ctx)
|
static void wlan_hdd_update_band_cap_in_wiphy(struct hdd_context *hdd_ctx)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
uint8_t band_capability;
|
uint32_t band_capability;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
struct ieee80211_supported_band *band;
|
struct ieee80211_supported_band *band;
|
||||||
|
|
||||||
@@ -16028,7 +16028,7 @@ static void wlan_hdd_update_band_cap_in_wiphy(struct hdd_context *hdd_ctx)
|
|||||||
band = hdd_ctx->wiphy->bands[i];
|
band = hdd_ctx->wiphy->bands[i];
|
||||||
|
|
||||||
if (HDD_NL80211_BAND_2GHZ == i &&
|
if (HDD_NL80211_BAND_2GHZ == i &&
|
||||||
BAND_5G == band_capability) {
|
BIT(REG_BAND_5G) == band_capability) {
|
||||||
/* 5G only */
|
/* 5G only */
|
||||||
#ifdef WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY
|
#ifdef WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY
|
||||||
/* Enable social channels for P2P */
|
/* Enable social channels for P2P */
|
||||||
@@ -16042,7 +16042,7 @@ static void wlan_hdd_update_band_cap_in_wiphy(struct hdd_context *hdd_ctx)
|
|||||||
IEEE80211_CHAN_DISABLED;
|
IEEE80211_CHAN_DISABLED;
|
||||||
continue;
|
continue;
|
||||||
} else if (HDD_NL80211_BAND_5GHZ == i &&
|
} else if (HDD_NL80211_BAND_5GHZ == i &&
|
||||||
BAND_2G == band_capability) {
|
BIT(REG_BAND_2G) == band_capability) {
|
||||||
/* 2G only */
|
/* 2G only */
|
||||||
band->channels[j].flags |=
|
band->channels[j].flags |=
|
||||||
IEEE80211_CHAN_DISABLED;
|
IEEE80211_CHAN_DISABLED;
|
||||||
|
@@ -2176,7 +2176,7 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct hdd_context *hdd_ctx = hdd_handle_to_context(hdd_handle);
|
struct hdd_context *hdd_ctx = hdd_handle_to_context(hdd_handle);
|
||||||
uint8_t temp_band_cap, band_capability;
|
uint32_t temp_band_cap, band_capability;
|
||||||
struct cds_config_info *cds_cfg = cds_get_ini_config();
|
struct cds_config_info *cds_cfg = cds_get_ini_config();
|
||||||
uint8_t antenna_mode;
|
uint8_t antenna_mode;
|
||||||
uint8_t sub_20_chan_width;
|
uint8_t sub_20_chan_width;
|
||||||
@@ -2269,17 +2269,14 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
|
|||||||
cfg->services.is_11k_offload_supported;
|
cfg->services.is_11k_offload_supported;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* now overwrite the target band capability with INI
|
* merge the target band capability with INI setting if the merge has
|
||||||
* setting if INI setting is a subset
|
* at least 1 band enabled
|
||||||
*/
|
*/
|
||||||
if ((band_capability == BAND_ALL) &&
|
temp_band_cap &= band_capability;
|
||||||
(temp_band_cap != BAND_ALL))
|
if (!temp_band_cap)
|
||||||
band_capability = temp_band_cap;
|
|
||||||
else if ((band_capability != BAND_ALL) &&
|
|
||||||
(temp_band_cap != BAND_ALL) &&
|
|
||||||
(band_capability != temp_band_cap)) {
|
|
||||||
hdd_warn("ini BandCapability not supported by the target");
|
hdd_warn("ini BandCapability not supported by the target");
|
||||||
}
|
else
|
||||||
|
band_capability = temp_band_cap;
|
||||||
|
|
||||||
status = ucfg_mlme_set_band_capability(hdd_ctx->psoc, band_capability);
|
status = ucfg_mlme_set_band_capability(hdd_ctx->psoc, band_capability);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
@@ -11637,6 +11634,7 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
|
|||||||
struct cds_config_info *cds_cfg;
|
struct cds_config_info *cds_cfg;
|
||||||
int value;
|
int value;
|
||||||
uint8_t band_capability;
|
uint8_t band_capability;
|
||||||
|
uint32_t band_bitmap;
|
||||||
uint8_t ito_repeat_count;
|
uint8_t ito_repeat_count;
|
||||||
bool crash_inject;
|
bool crash_inject;
|
||||||
bool self_recovery;
|
bool self_recovery;
|
||||||
@@ -11702,10 +11700,11 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
|
|||||||
|
|
||||||
cds_cfg->ito_repeat_count = ito_repeat_count;
|
cds_cfg->ito_repeat_count = ito_repeat_count;
|
||||||
|
|
||||||
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability);
|
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_bitmap);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
|
band_capability = wlan_reg_band_bitmap_to_band_info(band_bitmap);
|
||||||
cds_cfg->bandcapability = band_capability;
|
cds_cfg->bandcapability = band_capability;
|
||||||
cds_cfg->num_vdevs = hdd_ctx->config->num_vdevs;
|
cds_cfg->num_vdevs = hdd_ctx->config->num_vdevs;
|
||||||
cds_cfg->enable_tx_compl_tsf64 =
|
cds_cfg->enable_tx_compl_tsf64 =
|
||||||
@@ -11731,10 +11730,11 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx)
|
|||||||
{
|
{
|
||||||
struct wlan_objmgr_psoc_user_config *user_config;
|
struct wlan_objmgr_psoc_user_config *user_config;
|
||||||
uint8_t band_capability;
|
uint8_t band_capability;
|
||||||
|
uint32_t band_bitmap;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
bool value = false;
|
bool value = false;
|
||||||
|
|
||||||
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability);
|
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_bitmap);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
@@ -11753,6 +11753,7 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx)
|
|||||||
if (!QDF_IS_STATUS_SUCCESS(status))
|
if (!QDF_IS_STATUS_SUCCESS(status))
|
||||||
hdd_err("Invalid 11h_enable flag");
|
hdd_err("Invalid 11h_enable flag");
|
||||||
user_config->is_11h_support_enabled = value;
|
user_config->is_11h_support_enabled = value;
|
||||||
|
band_capability = wlan_reg_band_bitmap_to_band_info(band_bitmap);
|
||||||
user_config->band_capability = band_capability;
|
user_config->band_capability = band_capability;
|
||||||
wlan_objmgr_psoc_set_user_config(hdd_ctx->psoc, user_config);
|
wlan_objmgr_psoc_set_user_config(hdd_ctx->psoc, user_config);
|
||||||
|
|
||||||
|
@@ -62,6 +62,7 @@ static int populate_oem_data_cap(struct hdd_adapter *adapter,
|
|||||||
uint32_t num_chan, i;
|
uint32_t num_chan, i;
|
||||||
uint32_t *chan_freq_list;
|
uint32_t *chan_freq_list;
|
||||||
uint8_t band_capability;
|
uint8_t band_capability;
|
||||||
|
uint32_t band_bitmap;
|
||||||
uint16_t neighbor_scan_min_chan_time;
|
uint16_t neighbor_scan_min_chan_time;
|
||||||
uint16_t neighbor_scan_max_chan_time;
|
uint16_t neighbor_scan_max_chan_time;
|
||||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||||
@@ -72,12 +73,14 @@ static int populate_oem_data_cap(struct hdd_adapter *adapter,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability);
|
status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_bitmap);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
hdd_err("Failed to get MLME band capability");
|
hdd_err("Failed to get MLME band capability");
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
band_capability = wlan_reg_band_bitmap_to_band_info(band_bitmap);
|
||||||
|
|
||||||
chan_freq_list =
|
chan_freq_list =
|
||||||
qdf_mem_malloc(sizeof(uint32_t) * OEM_CAP_MAX_NUM_CHANNELS);
|
qdf_mem_malloc(sizeof(uint32_t) * OEM_CAP_MAX_NUM_CHANNELS);
|
||||||
if (!chan_freq_list)
|
if (!chan_freq_list)
|
||||||
|
@@ -211,8 +211,8 @@ void hdd_reset_global_reg_params(void)
|
|||||||
static void reg_program_config_vars(struct hdd_context *hdd_ctx,
|
static void reg_program_config_vars(struct hdd_context *hdd_ctx,
|
||||||
struct reg_config_vars *config_vars)
|
struct reg_config_vars *config_vars)
|
||||||
{
|
{
|
||||||
uint8_t band_capability = 0, indoor_chnl_marking = 0;
|
uint8_t indoor_chnl_marking = 0;
|
||||||
uint32_t scan_11d_interval = 0;
|
uint32_t band_capability = 0, scan_11d_interval = 0;
|
||||||
bool indoor_chan_enabled = false;
|
bool indoor_chan_enabled = false;
|
||||||
uint32_t restart_beaconing = 0;
|
uint32_t restart_beaconing = 0;
|
||||||
bool enable_srd_chan = false;
|
bool enable_srd_chan = false;
|
||||||
|
@@ -157,7 +157,7 @@ struct board_info {
|
|||||||
* struct wma_tgt_cfg - target config
|
* struct wma_tgt_cfg - target config
|
||||||
* @target_fw_version: target fw version
|
* @target_fw_version: target fw version
|
||||||
* @target_fw_vers_ext: target fw extended sub version
|
* @target_fw_vers_ext: target fw extended sub version
|
||||||
* @band_cap: band capability
|
* @band_cap: band capability bitmap
|
||||||
* @reg_domain: reg domain
|
* @reg_domain: reg domain
|
||||||
* @eeprom_rd_ext: eeprom rd ext
|
* @eeprom_rd_ext: eeprom rd ext
|
||||||
* @hw_macaddr: hw mcast addr
|
* @hw_macaddr: hw mcast addr
|
||||||
@@ -182,7 +182,7 @@ struct board_info {
|
|||||||
struct wma_tgt_cfg {
|
struct wma_tgt_cfg {
|
||||||
uint32_t target_fw_version;
|
uint32_t target_fw_version;
|
||||||
uint32_t target_fw_vers_ext;
|
uint32_t target_fw_vers_ext;
|
||||||
uint8_t band_cap;
|
uint32_t band_cap;
|
||||||
uint32_t reg_domain;
|
uint32_t reg_domain;
|
||||||
uint32_t eeprom_rd_ext;
|
uint32_t eeprom_rd_ext;
|
||||||
struct qdf_mac_addr hw_macaddr;
|
struct qdf_mac_addr hw_macaddr;
|
||||||
|
@@ -5090,28 +5090,37 @@ wma_update_sar_version(struct wlan_psoc_host_service_ext_param *param,
|
|||||||
* wma_update_hdd_band_cap() - update band cap which hdd understands
|
* wma_update_hdd_band_cap() - update band cap which hdd understands
|
||||||
* @supported_band: supported band which has been given by FW
|
* @supported_band: supported band which has been given by FW
|
||||||
* @tgt_cfg: target configuration to be updated
|
* @tgt_cfg: target configuration to be updated
|
||||||
|
* @psoc: psoc ptr
|
||||||
*
|
*
|
||||||
* Convert WMA given supported band to enum which HDD understands
|
* Convert WMA given supported band to enum which HDD understands
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
static void wma_update_hdd_band_cap(WMI_PHY_CAPABILITY supported_band,
|
static void wma_update_hdd_band_cap(WMI_PHY_CAPABILITY supported_band,
|
||||||
struct wma_tgt_cfg *tgt_cfg)
|
struct wma_tgt_cfg *tgt_cfg,
|
||||||
|
struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
switch (supported_band) {
|
switch (supported_band) {
|
||||||
case WMI_11G_CAPABILITY:
|
case WMI_11G_CAPABILITY:
|
||||||
case WMI_11NG_CAPABILITY:
|
case WMI_11NG_CAPABILITY:
|
||||||
tgt_cfg->band_cap = BAND_2G;
|
tgt_cfg->band_cap = BIT(REG_BAND_2G);
|
||||||
break;
|
break;
|
||||||
case WMI_11A_CAPABILITY:
|
case WMI_11A_CAPABILITY:
|
||||||
case WMI_11NA_CAPABILITY:
|
case WMI_11NA_CAPABILITY:
|
||||||
case WMI_11AC_CAPABILITY:
|
case WMI_11AC_CAPABILITY:
|
||||||
tgt_cfg->band_cap = BAND_5G;
|
tgt_cfg->band_cap = BIT(REG_BAND_5G);
|
||||||
break;
|
break;
|
||||||
case WMI_11AG_CAPABILITY:
|
case WMI_11AG_CAPABILITY:
|
||||||
case WMI_11NAG_CAPABILITY:
|
case WMI_11NAG_CAPABILITY:
|
||||||
|
case WMI_11AX_CAPABILITY:
|
||||||
|
tgt_cfg->band_cap = (BIT(REG_BAND_2G) | BIT(REG_BAND_5G));
|
||||||
|
if (wlan_reg_is_6ghz_supported(psoc))
|
||||||
|
tgt_cfg->band_cap |= BIT(REG_BAND_6G);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
tgt_cfg->band_cap = BAND_ALL;
|
tgt_cfg->band_cap = (BIT(REG_BAND_2G) |
|
||||||
|
BIT(REG_BAND_5G) |
|
||||||
|
BIT(REG_BAND_6G));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5450,7 +5459,7 @@ static int wma_update_hdd_cfg(tp_wma_handle wma_handle)
|
|||||||
tgt_cfg.dfs_cac_offload = wma_handle->is_dfs_offloaded;
|
tgt_cfg.dfs_cac_offload = wma_handle->is_dfs_offloaded;
|
||||||
tgt_cfg.rcpi_enabled = wma_handle->rcpi_enabled;
|
tgt_cfg.rcpi_enabled = wma_handle->rcpi_enabled;
|
||||||
wma_update_hdd_band_cap(target_if_get_phy_capability(tgt_hdl),
|
wma_update_hdd_band_cap(target_if_get_phy_capability(tgt_hdl),
|
||||||
&tgt_cfg);
|
&tgt_cfg, wma_handle->psoc);
|
||||||
wma_update_sar_version(service_ext_param, &tgt_cfg);
|
wma_update_sar_version(service_ext_param, &tgt_cfg);
|
||||||
tgt_cfg.fine_time_measurement_cap =
|
tgt_cfg.fine_time_measurement_cap =
|
||||||
target_if_get_wmi_fw_sub_feat_caps(tgt_hdl);
|
target_if_get_wmi_fw_sub_feat_caps(tgt_hdl);
|
||||||
|
Reference in New Issue
Block a user