diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h index 9bee444aed..6c3ce7df2d 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h @@ -261,6 +261,8 @@ struct wlan_vdev_create_params { * @ch_maxpower: Maximum tx power in dBm. * @ch_freq_seg1: Channel Center frequeny for VHT80/160 and HE80/160. * @ch_freq_seg2: Second channel Center frequency applicable for 80+80MHz mode. + * @ch_cfreq1: channel center frequency for primary + * @ch_cfreq2: channel center frequency for secondary * @ch_width: Channel width. * @ch_phymode: Channel phymode. */ @@ -272,6 +274,8 @@ struct wlan_channel { int8_t ch_maxpower; uint8_t ch_freq_seg1; uint8_t ch_freq_seg2; + uint32_t ch_cfreq1; + uint32_t ch_cfreq2; enum phy_ch_width ch_width; enum wlan_phymode ch_phymode; }; diff --git a/umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h b/umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h index ec5c29189f..f6f6ed0043 100644 --- a/umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h +++ b/umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h @@ -510,6 +510,17 @@ static inline bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan) { return wlan_reg_is_dfs_ch(pdev, chan); } + +/** + * utils_is_dfs_cfreq2_ch() - is channel dfs cfreq2. + * @pdev: pdev handler. + * + * is channel dfs. + * + * Return: True if channel dfs cfreq2, else false. + */ +bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev); + /** * utils_dfs_reg_update_nol_ch() - set nol channel * diff --git a/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c b/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c index 39ace56c6e..39665054d9 100644 --- a/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c +++ b/umac/dfs/dispatcher/src/wlan_dfs_utils_api.c @@ -1183,4 +1183,17 @@ QDF_STATUS utils_dfs_get_disable_radar_marking(struct wlan_objmgr_pdev *pdev, } qdf_export_symbol(utils_dfs_get_disable_radar_marking); + +bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev) +{ + struct wlan_dfs *dfs; + + dfs = wlan_pdev_get_dfs_obj(pdev); + if (!dfs) + return false; + + return WLAN_IS_CHAN_DFS_CFREQ2(dfs->dfs_curchan); +} + +qdf_export_symbol(utils_is_dfs_cfreq2_ch); #endif diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index ebb6106e5c..86ae055e80 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -118,7 +118,6 @@ struct vdev_mlme_proto_bss_color { * @implicit_bf: Implicit BF support * @sounding_dimension: Beamformer number of sounding dimension * @bfee_sts_cap: beam formee STA capability - * @en_2gvht: 256 qam status * @allow_vht: vht capability status */ struct vdev_mlme_vht_info { @@ -130,7 +129,6 @@ struct vdev_mlme_vht_info { uint8_t implicit_bf; uint8_t sounding_dimension; uint8_t bfee_sts_cap; - uint8_t en_2gvht; bool allow_vht; }; @@ -186,6 +184,7 @@ struct vdev_mlme_proto { * @maxpower: Max power * @maxregpower: max regulatory power * @antennamax: max antenna + * @reg_class_id: reg domain class id * @ampdu: ampdu limit * @amsdu: amsdu limit * @ssid: service set identifier @@ -195,18 +194,8 @@ struct vdev_mlme_proto { * @rx_decap_type: rx decap type * @tx_decap_type: tx decap type * @disable_hw_ack: disable ha ack flag - * @chan_flags: channel flags - * @chan_flags_ext: extended channel flags - * @cfreq0: channel frequency index0 - * @cfreq1: channel frequency index1 - * @dfs_set: DFS status flag - * @dfs_set_cfreq2: DFS status channel index - * @is_chan_passive: channel passive indication flag - * @reg_class_id: reg domain class id - * @is_11ax_stub_enabled: 11AX stub status indication flag - * @nss_2g: 2G spatial streams - * @nss_5g: 5G spatial streams * @bssid: bssid + * @phy_mode: phy mode */ struct vdev_mlme_mgmt_generic { uint32_t rts_threshold; @@ -220,6 +209,7 @@ struct vdev_mlme_mgmt_generic { uint8_t maxpower; uint8_t maxregpower; uint8_t antennamax; + uint8_t reg_class_id; uint8_t ampdu; uint8_t amsdu; char ssid[WLAN_SSID_MAX_LEN + 1]; @@ -229,17 +219,6 @@ struct vdev_mlme_mgmt_generic { uint8_t rx_decap_type; uint8_t tx_decap_type; bool disable_hw_ack; - uint64_t chan_flags; - uint16_t chan_flags_ext; - uint32_t cfreq1; - uint32_t cfreq2; - bool dfs_set; - bool dfs_set_cfreq2; - bool is_chan_passive; - uint8_t reg_class_id; - uint8_t is_11ax_stub_enabled; - uint8_t nss_2g; - uint8_t nss_5g; uint8_t bssid[QDF_MAC_ADDR_SIZE]; uint32_t phy_mode; }; diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c index 99580e03cf..fa3002c768 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c +++ b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c @@ -32,6 +32,7 @@ #include #include #include +#include #include static QDF_STATUS vdev_mgr_create_param_update( @@ -57,8 +58,8 @@ static QDF_STATUS vdev_mgr_create_param_update( mbss = &mlme_obj->mgmt.mbss_11ax; param->pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev); param->vdev_id = wlan_vdev_get_id(vdev); - param->nss_2g = mlme_obj->mgmt.generic.nss_2g; - param->nss_5g = mlme_obj->mgmt.generic.nss_5g; + param->nss_2g = mlme_obj->proto.generic.nss_2g; + param->nss_5g = mlme_obj->proto.generic.nss_5g; param->type = mlme_obj->mgmt.generic.type; param->subtype = mlme_obj->mgmt.generic.subtype; param->mbssid_flags = mbss->mbssid_flags; @@ -143,15 +144,15 @@ static QDF_STATUS vdev_mgr_start_param_update( param->channel.mhz = des_chan->ch_freq; param->channel.half_rate = mlme_obj->mgmt.rate_info.half_rate; param->channel.quarter_rate = mlme_obj->mgmt.rate_info.quarter_rate; - param->channel.dfs_set = mlme_obj->mgmt.generic.dfs_set; - param->channel.dfs_set_cfreq2 = mlme_obj->mgmt.generic.dfs_set_cfreq2; + param->channel.dfs_set = utils_is_dfs_ch(pdev, param->channel.chan_id); + param->channel.dfs_set_cfreq2 = utils_is_dfs_cfreq2_ch(pdev); param->channel.is_chan_passive = - mlme_obj->mgmt.generic.is_chan_passive; + utils_is_dfs_ch(pdev, param->channel.chan_id); param->channel.allow_ht = mlme_obj->proto.ht_info.allow_ht; param->channel.allow_vht = mlme_obj->proto.vht_info.allow_vht; param->channel.phy_mode = mlme_obj->mgmt.generic.phy_mode; - param->channel.cfreq1 = mlme_obj->mgmt.generic.cfreq1; - param->channel.cfreq2 = mlme_obj->mgmt.generic.cfreq2; + param->channel.cfreq1 = des_chan->ch_cfreq1; + param->channel.cfreq2 = des_chan->ch_cfreq2; param->channel.maxpower = mlme_obj->mgmt.generic.maxpower; param->channel.minpower = mlme_obj->mgmt.generic.minpower; param->channel.maxregpower = mlme_obj->mgmt.generic.maxregpower; diff --git a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h index bba01d63b9..3b6bab0b96 100644 --- a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h +++ b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h @@ -100,8 +100,7 @@ enum wlan_mlme_cfg_id { WLAN_MLME_CFG_RATEMASK_LOWER32_2, WLAN_MLME_CFG_BCN_TX_RATE, WLAN_MLME_CFG_BCN_TX_RATE_CODE, - WLAN_MLME_CFG_2G_VHT, - WLAN_MLME_CFG_11AX_STUB, + WLAN_MLME_CFG_RATEMASK_CAPS, WLAN_MLME_CFG_MAX }; diff --git a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c index a961599371..87f89e8e86 100644 --- a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c +++ b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c @@ -511,12 +511,6 @@ void wlan_util_vdev_mlme_get_param(struct vdev_mlme_obj *vdev_mlme, case WLAN_MLME_CFG_BCN_TX_RATE: *value = mlme_mgmt->rate_info.bcn_tx_rate; break; - case WLAN_MLME_CFG_2G_VHT: - *value = mlme_proto->vht_info.en_2gvht; - break; - case WLAN_MLME_CFG_11AX_STUB: - *value = mlme_mgmt->generic.is_11ax_stub_enabled; - break; default: break; }