diff options
| author | Deepak Dhamdhere <ddhamdhe@qca.qualcomm.com> | 2016-01-31 00:27:12 -0800 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-03-18 15:39:25 +0530 |
| commit | c28f0776cc2e2daa0e33c79db0c0685374067a6a (patch) | |
| tree | 24c6dfea9aff805a1f98e32af8a69493e55a6d37 | |
| parent | a6d5a73dfa4d285c34b3fe46898a8848e7875f98 (diff) | |
qcacld-2.0: Un/Register NAN data path WMI event handlers
Add routines to register and unregister all WMI event handlers
for NAN data path.
CRs-Fixed: 962367
Change-Id: Ie2230e55ca15f03d76b4b8fc441370335743f87e
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma_nan_datapath.c | 138 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma_nan_datapath.h | 7 |
3 files changed, 119 insertions, 29 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 17c1394ad8eb..87c871d71939 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -7268,6 +7268,7 @@ VOS_STATUS WDA_open(v_VOID_t *vos_context, v_VOID_t *os_ctx, wma_rssi_breached_event_handler); wma_register_debug_callback(); + wma_ndp_register_all_event_handlers(wma_handle); return VOS_STATUS_SUCCESS; @@ -31742,6 +31743,8 @@ VOS_STATUS wma_close(v_VOID_t *vos_ctx) wma_handle->pGetRssiReq = NULL; } + wma_ndp_unregister_all_event_handlers(wma_handle); + WMA_LOGD("%s: Exit", __func__); return VOS_STATUS_SUCCESS; } diff --git a/CORE/SERVICES/WMA/wma_nan_datapath.c b/CORE/SERVICES/WMA/wma_nan_datapath.c index 68e52dc09f98..5fb33e71a540 100644 --- a/CORE/SERVICES/WMA/wma_nan_datapath.c +++ b/CORE/SERVICES/WMA/wma_nan_datapath.c @@ -89,26 +89,28 @@ VOS_STATUS wma_handle_ndp_sched_update_req(tp_wma_handle wma_handle, * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_INDICATION_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_indication_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_indication_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; } /** - * wma_ndp_responder_resp_event_handler() - NDP responder response event handler + * wma_ndp_responder_rsp_event_handler() - NDP responder response event handler * @handle: wma handle * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_RESPONDER_RSP_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_responder_resp_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_responder_rsp_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; } /** @@ -117,12 +119,13 @@ VOS_STATUS wma_ndp_responder_resp_event_handler(void *handle, * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_CONFIRM_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_confirm_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_confirm_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; } /** @@ -131,12 +134,13 @@ VOS_STATUS wma_ndp_confirm_event_handler(void *handle, * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_END_RSP_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_end_response_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_end_response_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; } /** @@ -145,26 +149,104 @@ VOS_STATUS wma_ndp_end_response_event_handler(void *handle, * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_END_INDICATION_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_end_indication_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_end_indication_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; } /** - * wma_ndp_sched_update_rsp_event_handler() -NDP sched update rsp event handler + * wma_ndp_initiator_rsp_event_handler() -NDP initiator rsp event handler * @handle: wma handle * @event_info: event handler data * @len: length of event_info * - * Return: VOS_STATUS_SUCCESS on success; error number otherwise + * Handler for WMI_NDP_INITIATOR_RSP_EVENTID + * Return: 0 on success, negative errno on failure */ -VOS_STATUS wma_ndp_sched_update_rsp_event_handler(void *handle, - uint8_t *event_info, uint32_t len) +static int wma_ndp_initiator_rsp_event_handler(void *handle, + uint8_t *event_info, uint32_t len) { - return VOS_STATUS_SUCCESS; + return 0; +} + +/** + * wma_ndp_register_all_event_handlers() - Register all NDP event handlers + * @wma_handle: WMA context + * + * Register the event handlers for NAN data path events from firmware. + * + * Return: None + */ +void wma_ndp_register_all_event_handlers(tp_wma_handle wma_handle) +{ + WMA_LOGD(FL("Register WMI_NDP_INITIATOR_RSP_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_INITIATOR_RSP_EVENTID, + wma_ndp_initiator_rsp_event_handler); + + WMA_LOGD(FL("Register WMI_NDP_RESPONDER_RSP_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_RESPONDER_RSP_EVENTID, + wma_ndp_responder_rsp_event_handler); + + WMA_LOGD(FL("Register WMI_NDP_END_RSP_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_END_RSP_EVENTID, + wma_ndp_end_response_event_handler); + + WMA_LOGD(FL("Register WMI_NDP_INDICATION_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_INDICATION_EVENTID, + wma_ndp_indication_event_handler); + + WMA_LOGD(FL("Register WMI_NDP_CONFIRM_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_CONFIRM_EVENTID, + wma_ndp_confirm_event_handler); + + WMA_LOGD(FL("Register WMI_NDP_END_INDICATION_EVENTID")); + wmi_unified_register_event_handler(wma_handle->wmi_handle, + WMI_NDP_END_INDICATION_EVENTID, + wma_ndp_end_indication_event_handler); +} + +/** + * wma_ndp_unregister_all_event_handlers() - Unregister all NDP event handlers + * @wma_handle: WMA context + * + * Register the event handlers for NAN data path events from firmware. + * + * Return: None + */ +void wma_ndp_unregister_all_event_handlers(tp_wma_handle wma_handle) +{ + WMA_LOGD(FL("Unregister WMI_NDP_INITIATOR_RSP_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_INITIATOR_RSP_EVENTID); + + WMA_LOGD(FL("Unregister WMI_NDP_RESPONDER_RSP_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_RESPONDER_RSP_EVENTID); + + WMA_LOGD(FL("Unregister WMI_NDP_END_RSP_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_END_RSP_EVENTID); + + WMA_LOGD(FL("Unregister WMI_NDP_INDICATION_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_INDICATION_EVENTID); + + WMA_LOGD(FL("Unregister WMI_NDP_CONFIRM_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_CONFIRM_EVENTID); + + WMA_LOGD(FL("Unregister WMI_NDP_END_INDICATION_EVENTID")); + wmi_unified_unregister_event_handler(wma_handle->wmi_handle, + WMI_NDP_END_INDICATION_EVENTID); } /** @@ -182,9 +264,9 @@ void wma_add_bss_ndi_mode(tp_wma_handle wma, tpAddBssParams add_bss) struct wma_vdev_start_req req; ol_txrx_peer_handle peer = NULL; struct wma_target_req *msg; - u_int8_t vdev_id, peer_id; + uint8_t vdev_id, peer_id; VOS_STATUS status; - u_int8_t nss_2g, nss_5g; + uint8_t nss_2g, nss_5g; WMA_LOGE("%s: enter", __func__); if (NULL == wma_find_vdev_by_addr(wma, add_bss->bssId, &vdev_id)) { diff --git a/CORE/SERVICES/WMA/wma_nan_datapath.h b/CORE/SERVICES/WMA/wma_nan_datapath.h index 1c0df30a2143..4030f4afc82f 100644 --- a/CORE/SERVICES/WMA/wma_nan_datapath.h +++ b/CORE/SERVICES/WMA/wma_nan_datapath.h @@ -50,11 +50,16 @@ static inline void wma_update_hdd_cfg_ndp(tp_wma_handle wma_handle, } void wma_delete_all_nan_remote_peers(tp_wma_handle wma, uint32_t vdev_id); +void wma_ndp_register_all_event_handlers(tp_wma_handle wma_handle); +void wma_ndp_unregister_all_event_handlers(tp_wma_handle wma_handle); #else - #define wma_add_bss_ndi_mode(x, y) ((void)0) static inline void wma_update_hdd_cfg_ndp(tp_wma_handle wma_handle, struct hdd_tgt_cfg *tgt_cfg) {} +static inline void wma_ndp_register_all_event_handlers( + tp_wma_handle wma_handle) {} +static inline void wma_ndp_unregister_all_event_handlers( + tp_wma_handle wma_handle) {} #define WMA_IS_VDEV_IN_NDI_MODE(intf, vdev_id) (false) #define wma_delete_all_nan_remote_peers(x, y) ((void)0) |
