diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h index abb55c4cc4..e6bde2bab4 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h @@ -22,16 +22,63 @@ #define _WLAN_IF_MGR_AP_H_ /** - * wlan_process_start_bss_start() - Start BSS event handler - * - * Interface manager connect start bss event handler - * + * if_mgr_ap_start_bss() - Start BSS event handler * @vdev: vdev object * @event_data: Interface mgr event data * + * Interface manager start bss event handler + * + * Context: It should run in thread context + * * Return: QDF_STATUS */ -QDF_STATUS wlan_process_ap_start_bss(struct wlan_objmgr_vdev *vdev, - struct if_mgr_event_data *event_data); +QDF_STATUS +if_mgr_ap_start_bss(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); + +/** + * if_mgr_ap_start_bss_complete() - Start BSS complete event handler + * @vdev: vdev object + * @event_data: Interface mgr event data + * + * Interface manager start bss complete event handler + * + * Context: It should run in thread context + * + * Return: QDF_STATUS + */ +QDF_STATUS +if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); + +/** + * if_mgr_ap_stop_bss() - Stop BSS event handler + * @vdev: vdev object + * @event_data: Interface mgr event data + * + * Interface manager stop bss event handler + * + * Context: It should run in thread context + * + * Return: QDF_STATUS + */ +QDF_STATUS +if_mgr_ap_stop_bss(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); + +/** + * if_mgr_ap_stop_bss_complete() - Stop BSS event complete handler + * @vdev: vdev object + * @event_data: Interface mgr event data + * + * Interface manager stop bss complete event handler + * + * Context: It should run in thread context + * + * Return: QDF_STATUS + */ +QDF_STATUS +if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); #endif diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h index 459e47ffb4..9ea66aa546 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h @@ -30,15 +30,15 @@ /** * enum wlan_if_mgr_evt: interface manager events - * @WLAN_IF_MGR_EV_CONNECT_START: - * @WLAN_IF_MGR_EV_CONNECT_COMPLETE: - * @WLAN_IF_MGR_EV_DISCONNECT_START: - * @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE: - * @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE: - * @WLAN_IF_MGR_EV_AP_START_BSS: - * @WLAN_IF_MGR_EV_AP_START_COMPLETE: - * @WLAN_IF_MGR_EV_AP_STOP_BSS: - * @WLAN_IF_MGR_EV_AP_STOP_COMPLETE: + * @WLAN_IF_MGR_EV_CONNECT_START:Event to handle connect start request + * @WLAN_IF_MGR_EV_CONNECT_COMPLETE:Event to handle connect start complete + * @WLAN_IF_MGR_EV_DISCONNECT_START:Event to handle disconnect start request + * @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE:Event to handle disconnect start complete + * @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:Event to validate candidate + * @WLAN_IF_MGR_EV_AP_START_BSS:Event to handle start bss request + * @WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE:Event to handle start bss complete + * @WLAN_IF_MGR_EV_AP_STOP_BSS:Event to handle stop bss request + * @WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE:Event to stop bss complete */ enum wlan_if_mgr_evt { WLAN_IF_MGR_EV_CONNECT_START = 0, @@ -47,15 +47,16 @@ enum wlan_if_mgr_evt { WLAN_IF_MGR_EV_DISCONNECT_COMPLETE = 3, WLAN_IF_MGR_EV_VALIDATE_CANDIDATE = 4, WLAN_IF_MGR_EV_AP_START_BSS = 5, - WLAN_IF_MGR_EV_AP_START_COMPLETE = 6, + WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE = 6, WLAN_IF_MGR_EV_AP_STOP_BSS = 7, - WLAN_IF_MGR_EV_AP_STOP_COMPLETE = 8, + WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE = 8, WLAN_IF_MGR_EV_MAX = 9, }; /** * struct if_mgr_event_data - interface manager event data - * @status: status + * @status: qdf status used to indicate if connect,disconnect, + * start bss,stop bss event is success/failure. */ struct if_mgr_event_data { QDF_STATUS status; diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_sta.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_sta.h index cda5eb0501..b68865692b 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_sta.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_sta.h @@ -22,29 +22,31 @@ #define _WLAN_IF_MGR_STA_H_ /** - * wlan_process_connect_start() - connect start event handler - * - * Interface manager connect start event handler - * + * if_mgr_connect_start() - connect start event handler * @vdev: vdev object * @event_data: Interface mgr event data * + * Interface manager connect start event handler + * + * Context: It should run in thread context + * * Return: QDF_STATUS */ -QDF_STATUS wlan_process_connect_start(struct wlan_objmgr_vdev *vdev, - struct if_mgr_event_data *event_data); +QDF_STATUS if_mgr_connect_start(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); /** - * wlan_process_connect_complete() - connect complete event handler - * - * Interface manager connect complete event handler - * + * if_mgr_connect_complete() - connect complete event handler * @vdev: vdev object * @event_data: Interface manager complete event data * + * Interface manager connect complete event handler + * + * Context: It should run in thread context + * * Return: QDF_STATUS */ -QDF_STATUS wlan_process_connect_complete(struct wlan_objmgr_vdev *vdev, - struct if_mgr_event_data *event_data); +QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev, + struct if_mgr_event_data *event_data); #endif diff --git a/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c b/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c index ca648404ae..3ab48b520b 100644 --- a/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c +++ b/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c @@ -21,12 +21,14 @@ #include "wlan_if_mgr_api.h" #include "wlan_if_mgr_sta.h" #include "wlan_if_mgr_ap.h" +#include "wlan_if_mgr_main.h" QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev, enum wlan_if_mgr_evt event, struct if_mgr_event_data *event_data) { struct wlan_objmgr_psoc *psoc; + QDF_STATUS status; psoc = wlan_vdev_get_psoc(vdev); if (!psoc) @@ -34,20 +36,27 @@ QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev, switch (event) { case WLAN_IF_MGR_EV_CONNECT_START: - wlan_process_connect_start(vdev, event_data); + status = if_mgr_connect_start(vdev, event_data); break; - case WLAN_IF_MGR_EV_CONNECT_COMPLETE: - wlan_process_connect_complete(vdev, event_data); + status = if_mgr_connect_complete(vdev, event_data); break; - case WLAN_IF_MGR_EV_AP_START_BSS: - wlan_process_ap_start_bss(vdev, event_data); + status = if_mgr_ap_start_bss(vdev, event_data); break; - + case WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE: + status = if_mgr_ap_start_bss_complete(vdev, event_data); + break; + case WLAN_IF_MGR_EV_AP_STOP_BSS: + status = if_mgr_ap_stop_bss(vdev, event_data); + break; + case WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE: + status = if_mgr_ap_stop_bss_complete(vdev, event_data); default: + status = QDF_STATUS_E_INVAL; + ifmgr_err("Invalid event"); break; } - return QDF_STATUS_SUCCESS; + return status; }