From cbfd662af450b6114a5a2b2eec40372238540dcf Mon Sep 17 00:00:00 2001 From: Min Liu Date: Fri, 13 Nov 2020 19:14:42 +0800 Subject: [PATCH] qcacld-3.0: Update CC in beacon of SAP Currently when CC change but restart SAP is not needed, no beacon or probe response template is updated to FW and the CC IE in beacon is not updated. Need to update accordingly. Change-Id: I588fdf6f9dd69c9c01058ba17a4282d732ed74be CRs-Fixed: 2818650 --- core/sme/inc/csr_api.h | 9 +++++++++ core/sme/src/common/sme_api.c | 1 + core/sme/src/csr/csr_api_scan.c | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 77c5c126ba53..1c2220dd8d41 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1475,4 +1475,13 @@ enum reg_phymode csr_convert_to_reg_phy_mode(eCsrPhyMode csr_phy_mode, */ eCsrPhyMode csr_convert_from_reg_phy_mode(enum reg_phymode phymode); +/* + * csr_update_beacon() - CSR API to update beacon template + * @mac: mac context + * + * This API is used to update beacon template to FW + * + * Return: None + */ +void csr_update_beacon(struct mac_context *mac); #endif diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 70ea1c73bfb3..40cbfc7b5aba 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -5366,6 +5366,7 @@ sme_handle_generic_change_country_code(struct mac_context *mac_ctx, /* reset info based on new cc, and we are done */ csr_apply_channel_power_info_wrapper(mac_ctx); + csr_update_beacon(mac_ctx); csr_scan_filter_results(mac_ctx); diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index b6f1042d13c3..5d8459d4d8ca 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -2766,3 +2766,15 @@ QDF_STATUS csr_scan_filter_results(struct mac_context *mac_ctx) wlan_objmgr_pdev_release_ref(pdev, WLAN_LEGACY_MAC_ID); return QDF_STATUS_SUCCESS; } + +void csr_update_beacon(struct mac_context *mac) +{ + struct scheduler_msg msg = { 0 }; + QDF_STATUS status; + + msg.type = SIR_LIM_UPDATE_BEACON; + status = scheduler_post_message(QDF_MODULE_ID_SME, QDF_MODULE_ID_PE, + QDF_MODULE_ID_PE, &msg); + if (status != QDF_STATUS_SUCCESS) + sme_err("scheduler_post_message failed, status = %u", status); +}