Browse Source

qcacmn: Add NAN changes in target_if and lmac common files

1) Invoke register tx and rx ops APIs for NAN component.
2) Define tx and rx ops in lmac common header.

Change-Id: I2b06b31f6e9cd4eec5732567da635b9989cc6dd7
CRs-Fixed: 2014795
Naveen Rawat 8 years ago
parent
commit
1024ce0045

+ 20 - 0
target_if/core/src/target_if_main.c

@@ -37,6 +37,10 @@
 #include "target_if_wifi_pos.h"
 #endif
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+#include "target_if_nan.h"
+#endif /* WLAN_FEATURE_NAN_CONVERGENCE */
+
 static struct target_if_ctx *g_target_if_ctx;
 
 struct target_if_ctx *target_if_get_ctx()
@@ -117,6 +121,19 @@ static void target_if_wifi_pos_tx_ops_register(
 }
 #endif
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+static void target_if_nan_tx_ops_register(
+				struct wlan_lmac_if_tx_ops *tx_ops)
+{
+	target_if_nan_register_tx_ops(tx_ops);
+}
+#else
+static void target_if_nan_tx_ops_register(
+				struct wlan_lmac_if_tx_ops *tx_ops)
+{
+}
+#endif /* WLAN_FEATURE_NAN_CONVERGENCE */
+
 static
 QDF_STATUS target_if_register_umac_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops)
 {
@@ -126,6 +143,9 @@ QDF_STATUS target_if_register_umac_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops)
 	target_if_atf_tx_ops_register(tx_ops);
 
 	target_if_wifi_pos_tx_ops_register(tx_ops);
+
+	target_if_nan_tx_ops_register(tx_ops);
+
 	/* Converged UMAC components to register their TX-ops here */
 	return QDF_STATUS_SUCCESS;
 }

+ 28 - 0
umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h

@@ -330,6 +330,17 @@ struct wlan_lmac_if_wifi_pos_tx_ops {
 };
 #endif
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+/**
+ * struct wlan_lmac_if_nan_tx_ops - structure of firwware tx function
+ * pointers for nan component
+ * @data_req_tx: function pointer to send nan req to firmware
+ */
+struct wlan_lmac_if_nan_tx_ops {
+	QDF_STATUS (*nan_req_tx)(struct wlan_objmgr_vdev *vdev, void *req);
+};
+#endif
+
 /**
  * struct wlan_lmac_if_tx_ops - south bound tx function pointers
  * @mgmt_txrx_tx_ops: mgmt txrx tx ops
@@ -360,6 +371,9 @@ struct wlan_lmac_if_tx_ops {
 #ifdef WIFI_POS_CONVERGED
 	struct wlan_lmac_if_wifi_pos_tx_ops wifi_pos_tx_ops;
 #endif
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+	struct wlan_lmac_if_nan_tx_ops nan_tx_ops;
+#endif
 };
 
 /**
@@ -539,6 +553,17 @@ struct wlan_lmac_if_wifi_pos_rx_ops {
 };
 #endif
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+/**
+ * struct wlan_lmac_if_nan_rx_ops - structure of rx function
+ * pointers for nan component
+ * @oem_rsp_event_rx: callback for WMI_OEM_RESPONSE_EVENTID
+ */
+struct wlan_lmac_if_nan_rx_ops {
+	int (*nan_event_rx)(struct wlan_objmgr_vdev *vdev, void *ev);
+};
+#endif
+
 /**
  * struct wlan_lmac_if_rx_ops - south bound rx function pointers
  * @arg1
@@ -567,6 +592,9 @@ struct wlan_lmac_if_rx_ops {
 #ifdef WIFI_POS_CONVERGED
 	struct wlan_lmac_if_wifi_pos_rx_ops wifi_pos_rx_ops;
 #endif
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+	struct wlan_lmac_if_nan_rx_ops nan_rx_ops;
+#endif
 };
 
 /* Function pointer to call legacy tx_ops registration in OL/WMA.

+ 16 - 0
umac/global_umac_dispatcher/lmac_if/src/wlan_lmac_if.c

@@ -28,6 +28,9 @@
 #ifdef WIFI_POS_CONVERGED
 #include "target_if_wifi_pos.h"
 #endif /* WIFI_POS_CONVERGED */
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+#include "target_if_nan.h"
+#endif /* WLAN_FEATURE_NAN_CONVERGENCE */
 
 /* Function pointer for OL/WMA specific UMAC tx_ops
  * registration.
@@ -106,6 +109,17 @@ static void wlan_lmac_if_umac_rx_ops_register_wifi_pos(
 }
 #endif /* WIFI_POS_CONVERGED */
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+static void wlan_lmac_if_register_nan_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
+{
+	target_if_nan_register_rx_ops(rx_ops);
+}
+#else
+static void wlan_lmac_if_register_nan_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
+{
+}
+#endif /* WLAN_FEATURE_NAN_CONVERGENCE */
+
 /**
  * wlan_lmac_if_umac_rx_ops_register() - UMAC rx handler register
  * @rx_ops: Pointer to rx_ops structure to be populated
@@ -148,6 +162,8 @@ wlan_lmac_if_umac_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
 	/* wifi_pos rx ops */
 	wlan_lmac_if_umac_rx_ops_register_wifi_pos(rx_ops);
 
+	wlan_lmac_if_register_nan_rx_ops(rx_ops);
+
 	return QDF_STATUS_SUCCESS;
 }