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