qcacld-3.0: Update bss color on bss color switch count zero
Update bss color on color switch count zero.
Change-Id: I60eadd5454768bc1a5cabaead4ce1f966e4a0f6b
CRs-Fixed: 2200419
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index d086b7a..c43ba84 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -5714,10 +5714,8 @@
qdf_mem_zero(&beacon_params, sizeof(beacon_params));
beacon_params.paramChangeBitmap |= PARAM_BSS_COLOR_CHANGED;
session->he_op.bss_col_disabled = 1;
- session->he_bss_color_change.new_color = 0;
- session->he_op.bss_color = 0;
- beacon_params.bss_color = 0;
beacon_params.bss_color_disabled = 1;
+ beacon_params.bss_color = session->he_op.bss_color;
if (sch_set_fixed_beacon_fields(mac_ctx, session) !=
eSIR_SUCCESS) {
@@ -5862,8 +5860,8 @@
session_entry->he_bss_color_change.countdown =
BSS_COLOR_SWITCH_COUNTDOWN;
session_entry->he_bss_color_change.new_color = bss_color->bss_color;
- beacon_params.bss_color_disabled =
- session_entry->he_op.bss_col_disabled;
+ beacon_params.bss_color_disabled = 1;
+ beacon_params.bss_color = session_entry->he_op.bss_color;
session_entry->bss_color_changing = 1;
if (sch_set_fixed_beacon_fields(mac_ctx, session_entry) !=
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index c2b30d2..09c9bd9 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -2515,6 +2515,8 @@
lim_handle_bss_color_change_ie(tpAniSirGlobal mac_ctx,
tpPESession session)
{
+ tUpdateBeaconParams beacon_params;
+
/* handle bss color change IE */
if (LIM_IS_AP_ROLE(session) &&
session->he_op.bss_col_disabled) {
@@ -2522,10 +2524,19 @@
session->he_bss_color_change.countdown--;
} else {
session->bss_color_changing = 0;
+ qdf_mem_zero(&beacon_params, sizeof(beacon_params));
if (session->he_bss_color_change.new_color != 0) {
session->he_op.bss_col_disabled = 0;
session->he_op.bss_color =
session->he_bss_color_change.new_color;
+ beacon_params.paramChangeBitmap |=
+ PARAM_BSS_COLOR_CHANGED;
+ beacon_params.bss_color_disabled = 0;
+ beacon_params.bss_color =
+ session->he_op.bss_color;
+ lim_send_beacon_params(mac_ctx,
+ &beacon_params,
+ session);
lim_send_obss_color_collision_cfg(mac_ctx,
session,
OBSS_COLOR_COLLISION_DETECTION);