qcacld-3.0: Add check for DBS mode in start bss

Currently the driver doesn't handle the nss update
if a prior connection is already present in DBS
mode. Suppose if a STA is already connected in
5ghz and the SAP comes up in 2.4ghz, the beacon
template should be updated with NSS = 1

Fix is to check whether the current hw_mode is in
DBS or not, and change the nss in the beacon template
accordingly

Change-Id: I54ead1fd26d705a821160b5bc5d816df1d2ab8f4
CRs-Fixed: 2288307
This commit is contained in:
gaurank kathpalia 2018-08-14 15:20:11 +05:30 • committed by nshrivas
commit d88ef885e5

View file

@ -581,6 +581,7 @@ __lim_handle_sme_start_bss_request(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
uint32_t chanwidth;
struct vdev_type_nss *vdev_type_nss;
QDF_STATUS cfg_get_wmi_dfs_master_param = QDF_STATUS_SUCCESS;
struct policy_mgr_hw_mode_params hw_mode;
/* FEATURE_WLAN_DIAG_SUPPORT */
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM
@ -853,7 +854,14 @@ __lim_handle_sme_start_bss_request(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
session->ch_center_freq_seg1 = 0;
}
}
if (policy_mgr_is_hw_dbs_capable(mac_ctx->psoc) &&
(policy_mgr_get_current_hw_mode(mac_ctx->psoc, &hw_mode) ==
QDF_STATUS_SUCCESS) &&
hw_mode.dbs_cap) {
session->nss = 1;
pe_debug("HW is in DBS mode. Nss set to [%d]",
session->nss);
}
if (session->vhtCapability &&
(session->ch_width > CH_WIDTH_80MHZ)) {
session->nss = 1;