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 dc5857954d78..b9928e973274 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 @@ -5990,10 +5990,9 @@ void lim_process_set_he_bss_color(tpAniSirGlobal mac_ctx, uint32_t *msg_buf) session_entry->he_bss_color_change.new_color = bss_color->bss_color; session_entry->he_op.bss_color = session_entry->he_bss_color_change.new_color; - WMI_HEOPS_COLOR_SET(beacon_params.he_ops, - session_entry->he_op.bss_color); - WMI_HEOPS_BSSCOLORDISABLE_SET(beacon_params.he_ops, - session_entry->he_op.bss_col_disabled); + beacon_params.bss_color = session_entry->he_op.bss_color; + beacon_params.bss_color_disabled = + session_entry->he_op.bss_col_disabled; 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_utils.c b/core/mac/src/pe/lim/lim_utils.c index 563ce998b773..1d8bba1406b1 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -5870,30 +5870,15 @@ bool lim_check_vht_op_mode_change(tpAniSirGlobal pMac, tpPESession psessionEntry #ifdef WLAN_FEATURE_11AX_BSS_COLOR bool lim_send_he_ie_update(tpAniSirGlobal mac_ctx, tpPESession pe_session) { - uint32_t he_ops = 0; - tDot11fIEhe_op *he_op = &pe_session->he_op; QDF_STATUS status; - WMI_HEOPS_COLOR_SET(he_ops, he_op->bss_color); - WMI_HEOPS_DEFPE_SET(he_ops, he_op->default_pe); - WMI_HEOPS_TWT_SET(he_ops, he_op->twt_required); - WMI_HEOPS_RTSTHLD_SET(he_ops, he_op->rts_threshold); - WMI_HEOPS_PARTBSSCOLOR_SET(he_ops, he_op->partial_bss_col); - WMI_HEOPS_TXBSSID_SET(he_ops, he_op->tx_bssid_ind); - WMI_HEOPS_BSSCOLORDISABLE_SET(he_ops, he_op->bss_col_disabled); status = wma_update_he_ops_ie(cds_get_context(QDF_MODULE_ID_WMA), - pe_session->smeSessionId, he_ops); - if (status != QDF_STATUS_SUCCESS) { - pe_err("Can't send for vdev_id[%d] he_ops[0x%x]", - pe_session->smeSessionId, he_ops); + pe_session->smeSessionId, + &pe_session->he_op); + if (QDF_IS_STATUS_ERROR(status)) return false; - } else { - pe_debug("successfully sent for vdev_id[%d] he_ops[0x%x]", - pe_session->smeSessionId, he_ops); - } return true; - } #endif diff --git a/core/mac/src/pe/sch/sch_beacon_process.c b/core/mac/src/pe/sch/sch_beacon_process.c index 38c8f875a997..afbaf5f4583b 100644 --- a/core/mac/src/pe/sch/sch_beacon_process.c +++ b/core/mac/src/pe/sch/sch_beacon_process.c @@ -989,10 +989,9 @@ static void sch_check_bss_color_ie(tpAniSirGlobal mac_ctx, ap_session); ap_session->he_op.bss_color = ap_session-> he_bss_color_change.new_color; - WMI_HEOPS_COLOR_SET(bcn_prm->he_ops, - ap_session->he_op.bss_color); - WMI_HEOPS_BSSCOLORDISABLE_SET(bcn_prm->he_ops, - ap_session->he_op.bss_col_disabled); + bcn_prm->bss_color = ap_session->he_op.bss_color; + bcn_prm->bss_color_disabled = + ap_session->he_op.bss_col_disabled; ap_session->bss_color_changing = 1; } else { /* update info for the bss color */ diff --git a/core/wma/inc/wma_he.h b/core/wma/inc/wma_he.h index 46d7b628ef92..e63665ac44fa 100644 --- a/core/wma/inc/wma_he.h +++ b/core/wma/inc/wma_he.h @@ -193,7 +193,7 @@ void wma_update_vdev_he_capable(struct wma_vdev_start_req *req, * Return: QDF_STATUS */ QDF_STATUS wma_update_he_ops_ie(tp_wma_handle wma, uint8_t vdev_id, - uint32_t he_ops); + tDot11fIEhe_op *he_ops); /** * wma_get_he_capabilities() - Get HE capabilities from WMA @@ -282,7 +282,7 @@ static inline void wma_copy_vdev_start_he_ops(struct vdev_start_params *params, } static inline QDF_STATUS wma_update_he_ops_ie(tp_wma_handle wma, - uint8_t vdev_id, uint32_t he_ops) + uint8_t vdev_id, tDot11fIEhe_op *he_ops) { return QDF_STATUS_SUCCESS; } diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h index 16242924f281..e74afd79d94e 100644 --- a/core/wma/inc/wma_if.h +++ b/core/wma/inc/wma_if.h @@ -809,7 +809,8 @@ typedef struct { uint8_t fRIFSMode; uint16_t paramChangeBitmap; uint8_t smeSessionId; - uint32_t he_ops; + uint32_t bss_color; + bool bss_color_disabled; } tUpdateBeaconParams, *tpUpdateBeaconParams; /** diff --git a/core/wma/src/wma_he.c b/core/wma/src/wma_he.c index dc09d6c92b40..9487ce298208 100644 --- a/core/wma/src/wma_he.c +++ b/core/wma/src/wma_he.c @@ -1285,22 +1285,30 @@ void wma_update_vdev_he_capable(struct wma_vdev_start_req *req, } QDF_STATUS wma_update_he_ops_ie(tp_wma_handle wma, uint8_t vdev_id, - uint32_t he_ops) + tDot11fIEhe_op *he_op) { QDF_STATUS ret; + uint32_t dword_he_op = 0; if (!wma) { WMA_LOGE(FL("wrong wma_handle....")); return QDF_STATUS_E_FAILURE; } + WMI_HEOPS_COLOR_SET(dword_he_op, he_op->bss_color); + WMI_HEOPS_DEFPE_SET(dword_he_op, he_op->default_pe); + WMI_HEOPS_TWT_SET(dword_he_op, he_op->twt_required); + WMI_HEOPS_RTSTHLD_SET(dword_he_op, he_op->rts_threshold); + WMI_HEOPS_PARTBSSCOLOR_SET(dword_he_op, he_op->partial_bss_col); + WMI_HEOPS_TXBSSID_SET(dword_he_op, he_op->tx_bssid_ind); + WMI_HEOPS_BSSCOLORDISABLE_SET(dword_he_op, he_op->bss_col_disabled); + + WMA_LOGD("vdev_id: %d HE_OPs: 0x%x", vdev_id, dword_he_op); ret = wma_vdev_set_param(wma->wmi_handle, vdev_id, - WMI_VDEV_PARAM_HEOPS_0_31, he_ops); + WMI_VDEV_PARAM_HEOPS_0_31, dword_he_op); if (QDF_IS_STATUS_ERROR(ret)) WMA_LOGE(FL("Failed to set HE OPs")); - else - WMA_LOGD(FL("Succesfully send he_ops[0x%x]"), he_ops); return ret; } diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index eccf84e17452..0b430ea3ecda 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -1452,23 +1452,24 @@ wma_update_beacon_interval(tp_wma_handle wma, uint8_t vdev_id, */ static void wma_update_bss_color(tp_wma_handle wma, uint8_t vdev_id, - uint32_t he_ops) + tUpdateBeaconParams *bcn_params) { QDF_STATUS ret; + uint32_t dword_he_ops = 0; + WMI_HEOPS_COLOR_SET(dword_he_ops, bcn_params->bss_color); + WMI_HEOPS_BSSCOLORDISABLE_SET(dword_he_ops, + bcn_params->bss_color_disabled); + WMA_LOGD("vdev: %d, update bss color, HE_OPS: 0x%x", + vdev_id, dword_he_ops); ret = wma_vdev_set_param(wma->wmi_handle, vdev_id, - WMI_VDEV_PARAM_BSS_COLOR, - he_ops); - + WMI_VDEV_PARAM_BSS_COLOR, dword_he_ops); if (QDF_IS_STATUS_ERROR(ret)) WMA_LOGE("Failed to update HE operations"); - else - WMA_LOGI("Updated HE operations %x for vdev %d", - he_ops, vdev_id); } #else static void wma_update_bss_color(tp_wma_handle wma, uint8_t vdev_id, - uint32_t he_ops) + tUpdateBeaconParams *bcn_params) { } #endif @@ -1505,7 +1506,7 @@ wma_process_update_beacon_params(tp_wma_handle wma, if (bcn_params->paramChangeBitmap & PARAM_BSS_COLOR_CHANGED) wma_update_bss_color(wma, bcn_params->smeSessionId, - bcn_params->he_ops); + bcn_params); } /**