summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@qca.qualcomm.com>2016-01-31 00:27:12 -0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-03-18 15:39:25 +0530
commitc28f0776cc2e2daa0e33c79db0c0685374067a6a (patch)
tree24c6dfea9aff805a1f98e32af8a69493e55a6d37
parenta6d5a73dfa4d285c34b3fe46898a8848e7875f98 (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.c3
-rw-r--r--CORE/SERVICES/WMA/wma_nan_datapath.c138
-rw-r--r--CORE/SERVICES/WMA/wma_nan_datapath.h7
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)