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
This commit is contained in:
Arif Hussain 2018-03-06 12:37:03 -08:00 • committed by nshrivas
commit 2f2d351cc1
2 changed files with 14 additions and 5 deletions

View file

@ -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) !=

View file

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