From d8546bb3eb5910918f2cf0ffb612e222040e1a9c Mon Sep 17 00:00:00 2001 From: Sandeep Puligilla Date: Fri, 15 Feb 2019 10:49:38 -0800 Subject: [PATCH] qcacld-3.0: Send MBSSID BSS information to firmware Send MBSSID BSS information like profile number and max profile count to firmware as part of VDEV UP command. Change-Id: I612f0be9c52fd61b25d1c884940f28ce9fe0872e CRs-Fixed: 2399999 --- core/mac/inc/sir_api.h | 1 + core/mac/src/pe/lim/lim_assoc_utils.c | 3 +++ core/sme/src/csr/csr_api_scan.c | 2 ++ core/wma/inc/wma_if.h | 2 ++ core/wma/src/wma_dev_if.c | 4 ++++ 5 files changed, 12 insertions(+) diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index d5832d83f553..e074bacbaa22 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -679,6 +679,7 @@ struct bss_description { uint8_t WscIeProbeRsp[WSCIE_PROBE_RSP_LEN]; uint8_t reservedPadding4; uint32_t tsf_delta; + struct scan_mbssid_info mbssid_info; #ifdef WLAN_FEATURE_FILS_SK struct fils_ind_elements fils_info_element; #endif diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index 07ec920d4610..ee4a7c5ec1f6 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -2772,6 +2772,9 @@ lim_add_sta_self(struct mac_context *mac, uint16_t staIdx, uint8_t updateSta, /* This will indicate HAL to "allocate" a new STA index */ pAddStaParams->staIdx = staIdx; pAddStaParams->updateSta = updateSta; + qdf_mem_copy(&pAddStaParams->mbssid_info, + &pe_session->pLimJoinReq->bssDescription.mbssid_info, + sizeof(struct scan_mbssid_info)); pAddStaParams->shortPreambleSupported = mac->mlme_cfg->ht_caps.short_preamble; diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index dff84a12b373..a02cc62d310a 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -2619,6 +2619,8 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx, MGMT_SUBTYPE_PROBE_RESP); bss_desc->seq_ctrl = hdr->seqControl; bss_desc->tsf_delta = scan_entry->tsf_delta; + qdf_mem_copy(&bss_desc->mbssid_info, &scan_entry->mbssid_info, + sizeof(struct scan_mbssid_info)); qdf_mem_copy((uint8_t *) &bss_desc->ieFields, ie_ptr, ie_len); diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h index 8db360f73a66..7203a7993871 100644 --- a/core/wma/inc/wma_if.h +++ b/core/wma/inc/wma_if.h @@ -178,6 +178,7 @@ struct sAniProbeRspStruct { * @nss: Return the number of spatial streams supported * @stbc_capable: stbc capable * @max_amsdu_num: Maximum number of MSDUs in a tx aggregate frame + * @mbssid_info: Multiple bssid information * * This structure contains parameter required for * add sta request of upper layer. @@ -274,6 +275,7 @@ typedef struct { uint32_t peerAtimWindowLength; uint8_t nonRoamReassoc; uint32_t nss; + struct scan_mbssid_info mbssid_info; #ifdef WLAN_FEATURE_11AX bool he_capable; tDot11fIEhe_cap he_config; diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 435191a38e5c..153bca2b588f 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -5542,6 +5542,10 @@ static QDF_STATUS wma_indicate_start_success(tp_wma_handle wma, param.vdev_id = params->smesessionId; param.assoc_id = params->assocId; + param.profile_idx = params->mbssid_info.profile_num; + param.profile_num = params->mbssid_info.profile_count; + qdf_mem_copy(¶m.trans_bssid, ¶ms->mbssid_info.trans_bssid, + QDF_MAC_ADDR_SIZE); status = wma_send_vdev_up_to_fw(wma, ¶m, params->bssId); if (QDF_IS_STATUS_ERROR(status)) { WMA_LOGE("%s: Failed to send vdev up cmd: vdev %d bssid %pM",