diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c index 30f50242106f..5002994290e1 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c @@ -213,13 +213,13 @@ void lim_process_mlm_start_cnf(tpAniSirGlobal pMac, uint32_t *pMsgBuf) (((tLimMlmStartCnf *) pMsgBuf)->resultCode == eSIR_SME_SUCCESS)) { channelId = psessionEntry->pLimStartBssReq->channelId; + lim_ndi_mlme_vdev_up_transition(psessionEntry); /* We should start beacon transmission only if the channel * on which we are operating is non-DFS until the channel * availability check is done. The PE will receive an explicit * request from upper layers to start the beacon transmission */ - if (!(LIM_IS_IBSS_ROLE(psessionEntry) || (LIM_IS_AP_ROLE(psessionEntry)))) return; diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index 208b2bc0dc82..a1ad6590c80a 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -8442,6 +8442,16 @@ void lim_send_beacon(tpAniSirGlobal mac_ctx, tpPESession session) sizeof(*session), session); } +void lim_ndi_mlme_vdev_up_transition(tpPESession session) +{ + if (!LIM_IS_NDI_ROLE(session)) + return; + + wlan_vdev_mlme_sm_deliver_evt(session->vdev, + WLAN_VDEV_SM_EV_START_SUCCESS, + sizeof(*session), session); +} + QDF_STATUS lim_ap_mlme_vdev_start_send(struct vdev_mlme_obj *vdev_mlme, uint16_t data_len, void *data) { @@ -8509,6 +8519,8 @@ QDF_STATUS lim_ap_mlme_vdev_update_beacon(struct vdev_mlme_obj *vdev_mlme, return QDF_STATUS_E_INVAL; } session = (tpPESession)data; + if (LIM_IS_NDI_ROLE(session)) + return QDF_STATUS_SUCCESS; if (op == BEACON_INIT) lim_send_beacon_ind(session->mac_ctx, session); @@ -8529,6 +8541,9 @@ QDF_STATUS lim_ap_mlme_vdev_up_send(struct vdev_mlme_obj *vdev_mlme, pe_err("session is NULL"); return QDF_STATUS_E_INVAL; } + if (LIM_IS_NDI_ROLE(session)) + return QDF_STATUS_SUCCESS; + msg.type = SIR_HAL_SEND_AP_VDEV_UP; msg.bodyval = session->smeSessionId; @@ -8656,4 +8671,8 @@ void lim_send_beacon(tpAniSirGlobal mac_ctx, tpPESession session) { lim_send_beacon_ind(mac_ctx, session); } + +void lim_ndi_mlme_vdev_up_transition(tpPESession session) +{ +} #endif diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index a6a668cccbb8..5add155c02f9 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -1514,6 +1514,14 @@ void lim_rx_invalid_peer_process(tpAniSirGlobal mac_ctx, */ void lim_send_beacon(tpAniSirGlobal mac_ctx, tpPESession session); +/** + * lim_ndi_mlme_vdev_up_transition() - Send event to transistion NDI VDEV to UP + * @session: session pointer + * + * Return: None + */ +void lim_ndi_mlme_vdev_up_transition(tpPESession session); + #ifdef CONFIG_VDEV_SM /** * lim_sta_mlme_vdev_stop_send() - send VDEV stop