Quellcode durchsuchen

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
Arif Hussain vor 7 Jahren
Ursprung
Commit
2f2d351cc1

+ 3 - 5
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -5714,10 +5714,8 @@ static void obss_color_collision_process_color_disable(tpAniSirGlobal mac_ctx,
 	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 @@ void lim_process_set_he_bss_color(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
 	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) !=

+ 11 - 0
core/mac/src/pe/lim/lim_send_sme_rsp_messages.c

@@ -2515,6 +2515,8 @@ static void
 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 @@ lim_handle_bss_color_change_ie(tpAniSirGlobal mac_ctx,
 			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);