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); +}