qcacld-3.0: Data path changes to use converged APIs (Part 5)

Changes in the data path to use the converged MCL specific APIs.

Change-Id: Iaedc5e7e175d6b8eb905a04178fe9772dc7bb797
CRs-Fixed: 994638
diff --git a/core/dp/ol/inc/ol_txrx_ctrl_api.h b/core/dp/ol/inc/ol_txrx_ctrl_api.h
index 5e426e9..203eb69 100644
--- a/core/dp/ol/inc/ol_txrx_ctrl_api.h
+++ b/core/dp/ol/inc/ol_txrx_ctrl_api.h
@@ -397,26 +397,6 @@
 ol_txrx_peer_handle
 ol_txrx_peer_find_by_addr(ol_txrx_pdev_handle pdev, uint8_t *peer_mac_addr);
 
-/**
- * @brief Find a txrx peer handle from a peer's local ID
- * @details
- *  The control SW typically uses the txrx peer handle to refer to the peer.
- *  In unusual circumstances, if it is infeasible for the control SW maintain
- *  the txrx peer handle but it can maintain a small integer local peer ID,
- *  this function allows the peer handled to be retrieved, based on the local
- *  peer ID.
- *
- * @param pdev - the data physical device object
- * @param local_peer_id - the ID txrx assigned locally to the peer in question
- * @return handle to the txrx peer object
- */
-#if QCA_SUPPORT_TXRX_LOCAL_PEER_ID
-ol_txrx_peer_handle
-ol_txrx_peer_find_by_local_id(ol_txrx_pdev_handle pdev, uint8_t local_peer_id);
-#else
-#define ol_txrx_peer_find_by_local_id(pdev, local_peer_id) NULL
-#endif
-
 struct ol_txrx_peer_stats_t {
 	struct {
 		struct {
@@ -468,7 +448,6 @@
 
 void *ol_txrx_get_vdev_by_sta_id(uint8_t sta_id);
 
-
 #define OL_TXRX_INVALID_LOCAL_PEER_ID 0xffff
 
 #define OL_TXRX_RSSI_INVALID 0xffff
@@ -498,67 +477,6 @@
 #define ol_txrx_peer_rssi(peer) OL_TXRX_RSSI_INVALID
 #endif /* QCA_SUPPORT_PEER_DATA_RX_RSSI */
 
-#if QCA_SUPPORT_TXRX_LOCAL_PEER_ID
-#else
-#endif
-
-#ifdef QCA_COMPUTE_TX_DELAY
-/**
- * @brief updates the compute interval period for TSM stats.
- * @details
- * @param interval - interval for stats computation
- */
-void ol_tx_set_compute_interval(ol_txrx_pdev_handle pdev, uint32_t interval);
-
-/**
- * @brief Return the uplink (transmitted) packet count and loss count.
- * @details
- *  This function will be called for getting uplink packet count and
- *  loss count for given stream (access category) a regular interval.
- *  This also resets the counters hence, the value returned is packets
- *  counted in last 5(default) second interval. These counter are
- *  incremented per access category in ol_tx_completion_handler()
- *
- * @param category - access category of interest
- * @param out_packet_count - number of packets transmitted
- * @param out_packet_loss_count - number of packets lost
- */
-void
-ol_tx_packet_count(ol_txrx_pdev_handle pdev,
-		   uint16_t *out_packet_count,
-		   uint16_t *out_packet_loss_count, int category);
-#endif
-
-/**
- * @brief Return the average delays for tx frames.
- * @details
- *  Return the average of the total time tx frames spend within the driver
- *  and the average time tx frames take to be transmitted.
- *  These averages are computed over a 5 second time interval.
- *  These averages are computed separately for separate access categories,
- *  if the QCA_COMPUTE_TX_DELAY_PER_AC flag is set.
- *
- * @param pdev - the data physical device instance
- * @param queue_delay_microsec - average time tx frms spend in the WLAN driver
- * @param tx_delay_microsec - average time for frames to be transmitted
- * @param category - category (TID) of interest
- */
-#ifdef QCA_COMPUTE_TX_DELAY
-void
-ol_tx_delay(ol_txrx_pdev_handle pdev,
-	    uint32_t *queue_delay_microsec,
-	    uint32_t *tx_delay_microsec, int category);
-#else
-static inline void
-ol_tx_delay(ol_txrx_pdev_handle pdev,
-	    uint32_t *queue_delay_microsec,
-	    uint32_t *tx_delay_microsec, int category)
-{
-	/* no-op version if QCA_COMPUTE_TX_DELAY is not set */
-	*queue_delay_microsec = *tx_delay_microsec = 0;
-}
-#endif
-
 /*
  * Bins used for reporting delay histogram:
  * bin 0:  0 - 10  ms delay
@@ -569,77 +487,6 @@
  * bin 5: > 160 ms delay
  */
 #define QCA_TX_DELAY_HIST_REPORT_BINS 6
-/**
- * @brief Provide a histogram of tx queuing delays.
- * @details
- *  Return a histogram showing the number of tx frames of the specified
- *  category for each of the delay levels in the histogram bin spacings
- *  listed above.
- *  These histograms are computed over a 5 second time interval.
- *  These histograms are computed separately for separate access categories,
- *  if the QCA_COMPUTE_TX_DELAY_PER_AC flag is set.
- *
- * @param pdev - the data physical device instance
- * @param bin_values - an array of QCA_TX_DELAY_HIST_REPORT_BINS elements
- *      This array gets filled in with the histogram bin counts.
- * @param category - category (TID) of interest
- */
-#ifdef QCA_COMPUTE_TX_DELAY
-void
-ol_tx_delay_hist(ol_txrx_pdev_handle pdev, uint16_t *bin_values, int category);
-#else
-static inline void
-ol_tx_delay_hist(ol_txrx_pdev_handle pdev, uint16_t *bin_values, int category)
-{
-	/* no-op version if QCA_COMPUTE_TX_DELAY is not set */
-	qdf_assert(bin_values);
-	qdf_mem_zero(bin_values,
-		     QCA_TX_DELAY_HIST_REPORT_BINS * sizeof(*bin_values));
-}
-#endif
-
-#if defined(QCA_SUPPORT_TX_THROTTLE)
-/**
- * @brief Set the thermal mitgation throttling level.
- * @details
- *  This function applies only to LL systems. This function is used set the
- *  tx throttle level used for thermal mitigation
- *
- * @param pdev - the physics device being throttled
- */
-void ol_tx_throttle_set_level(struct ol_txrx_pdev_t *pdev, int level);
-#else
-static inline void ol_tx_throttle_set_level(struct ol_txrx_pdev_t *pdev,
-					    int level)
-{
-	/* no-op */
-}
-#endif /* QCA_SUPPORT_TX_THROTTLE */
-
-#if defined(QCA_SUPPORT_TX_THROTTLE)
-/**
- * @brief Configure the thermal mitgation throttling period.
- * @details
- *  This function applies only to LL systems. This function is used set the
- *  period over which data will be throttled
- *
- * @param pdev - the physics device being throttled
- */
-void ol_tx_throttle_init_period(struct ol_txrx_pdev_t *pdev, int period);
-#else
-static inline void ol_tx_throttle_init_period(struct ol_txrx_pdev_t *pdev,
-					      int period)
-{
-	/* no-op */
-}
-#endif /* QCA_SUPPORT_TX_THROTTLE */
-
-void ol_txrx_display_stats(uint16_t bitmap);
-void ol_txrx_clear_stats(uint16_t bitmap);
-int ol_txrx_stats(uint8_t vdev_id, char *buffer, unsigned buf_len);
-
-QDF_STATUS ol_txrx_register_ocb_peer(void *cds_ctx, uint8_t *mac_addr,
-				     uint8_t *peer_id);
 
 void ol_txrx_set_ocb_peer(struct ol_txrx_pdev_t *pdev,
 			  struct ol_txrx_peer_t *peer);
diff --git a/core/dp/ol/inc/ol_txrx_osif_api.h b/core/dp/ol/inc/ol_txrx_osif_api.h
index 54da414..007e1c4 100644
--- a/core/dp/ol/inc/ol_txrx_osif_api.h
+++ b/core/dp/ol/inc/ol_txrx_osif_api.h
@@ -35,6 +35,7 @@
 #include <qdf_nbuf.h>           /* qdf_nbuf_t */
 #include "cds_sched.h"
 #include "ol_txrx_ctrl_api.h"
+#include <cdp_txrx_peer_ops.h>
 
 /**
  * struct ol_rx_cached_buf - rx cached buffer
diff --git a/core/dp/txrx/ol_tx.c b/core/dp/txrx/ol_tx.c
index 1c9219c..3b324ab 100644
--- a/core/dp/txrx/ol_tx.c
+++ b/core/dp/txrx/ol_tx.c
@@ -52,6 +52,7 @@
 #include <htc_api.h>    /* Layering violation, but required for fast path */
 #include <htt_internal.h>
 #include <htt_types.h>        /* htc_endpoint */
+#include <cdp_txrx_peer_ops.h>
 
 int ce_send_fast(struct CE_handle *copyeng, qdf_nbuf_t *msdus,
 		 unsigned int num_msdus, unsigned int transfer_id);
diff --git a/core/dp/txrx/ol_tx_queue.c b/core/dp/txrx/ol_tx_queue.c
index 6aa2cd7..b0cfe07 100644
--- a/core/dp/txrx/ol_tx_queue.c
+++ b/core/dp/txrx/ol_tx_queue.c
@@ -30,6 +30,9 @@
 #include <ol_cfg.h>             /* ol_cfg_addba_retry */
 #include <htt.h>                /* HTT_TX_EXT_TID_MGMT */
 #include <ol_htt_tx_api.h>      /* htt_tx_desc_tid */
+#include <ol_txrx_api.h>        /* ol_txrx_vdev_handle */
+#include <ol_txrx_ctrl_api.h>   /* ol_txrx_sync, ol_tx_addba_conf */
+#include <cdp_txrx_tx_throttle.h>
 #include <ol_ctrl_txrx_api.h>   /* ol_ctrl_addba_req */
 #include <ol_txrx_internal.h>   /* TXRX_ASSERT1, etc. */
 #include <ol_tx_desc.h>         /* ol_tx_desc, ol_tx_desc_frame_list_free */
diff --git a/core/dp/txrx/ol_tx_send.c b/core/dp/txrx/ol_tx_send.c
index cd3cd88..c09d109 100644
--- a/core/dp/txrx/ol_tx_send.c
+++ b/core/dp/txrx/ol_tx_send.c
@@ -43,6 +43,8 @@
 #include <ol_txrx_htt_api.h>    /* htt_tx_status */
 
 #include <ol_ctrl_txrx_api.h>
+#include <cdp_txrx_tx_delay.h>
+#include <ol_txrx_types.h>      /* ol_txrx_vdev_t, etc */
 #include <ol_tx_desc.h>         /* ol_tx_desc_find, ol_tx_desc_frame_free */
 #ifdef QCA_COMPUTE_TX_DELAY
 #endif
@@ -651,12 +653,29 @@
 }
 
 #ifdef QCA_COMPUTE_TX_DELAY
-
+/**
+ * @brief updates the compute interval period for TSM stats.
+ * @details
+ * @param interval - interval for stats computation
+ */
 void ol_tx_set_compute_interval(ol_txrx_pdev_handle pdev, uint32_t interval)
 {
 	pdev->tx_delay.avg_period_ticks = qdf_system_msecs_to_ticks(interval);
 }
 
+/**
+ * @brief Return the uplink (transmitted) packet count and loss count.
+ * @details
+ *  This function will be called for getting uplink packet count and
+ *  loss count for given stream (access category) a regular interval.
+ *  This also resets the counters hence, the value returned is packets
+ *  counted in last 5(default) second interval. These counter are
+ *  incremented per access category in ol_tx_completion_handler()
+ *
+ * @param category - access category of interest
+ * @param out_packet_count - number of packets transmitted
+ * @param out_packet_loss_count - number of packets lost
+ */
 void
 ol_tx_packet_count(ol_txrx_pdev_handle pdev,
 		   uint16_t *out_packet_count,
diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c
index a4a7b66..77c48f3 100644
--- a/core/dp/txrx/ol_txrx.c
+++ b/core/dp/txrx/ol_txrx.c
@@ -50,6 +50,9 @@
 #include <ol_txrx_api.h>
 #include <ol_txrx_dbg.h>
 #include <cdp_txrx_ocb.h>
+#include <ol_txrx_ctrl_api.h>
+#include <cdp_txrx_stats.h>
+#include <ol_txrx_osif_api.h>
 /* header files for our internal definitions */
 #include <ol_txrx_internal.h>   /* TXRX_ASSERT, etc. */
 #include <wdi_event.h>          /* WDI events */
@@ -67,6 +70,7 @@
 #include <cdp_txrx_flow_ctrl_legacy.h>
 #include <cdp_txrx_ipa.h>
 #include "wma.h"
+#include <cdp_txrx_peer_ops.h>
 #ifndef REMOVE_PKT_LOG
 #include "pktlog_ac.h"
 #endif
@@ -185,6 +189,19 @@
 	return peer->local_id;
 }
 
+/**
+ * @brief Find a txrx peer handle from a peer's local ID
+ * @details
+ *  The control SW typically uses the txrx peer handle to refer to the peer.
+ *  In unusual circumstances, if it is infeasible for the control SW maintain
+ *  the txrx peer handle but it can maintain a small integer local peer ID,
+ *  this function allows the peer handled to be retrieved, based on the local
+ *  peer ID.
+ *
+ * @param pdev - the data physical device object
+ * @param local_peer_id - the ID txrx assigned locally to the peer in question
+ * @return handle to the txrx peer object
+ */
 ol_txrx_peer_handle
 ol_txrx_peer_find_by_local_id(struct ol_txrx_pdev_t *pdev,
 			      uint8_t local_peer_id)
@@ -1860,9 +1877,25 @@
 	return vdev->ocb_channel_info;
 }
 
-QDF_STATUS
-ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev, uint8_t *peer_mac,
-			  enum ol_txrx_peer_state state)
+/**
+ * @brief specify the peer's authentication state
+ * @details
+ *  Specify the peer's authentication state (none, connected, authenticated)
+ *  to allow the data SW to determine whether to filter out invalid data frames.
+ *  (In the "connected" state, where security is enabled, but authentication
+ *  has not completed, tx and rx data frames other than EAPOL or WAPI should
+ *  be discarded.)
+ *  This function is only relevant for systems in which the tx and rx filtering
+ *  are done in the host rather than in the target.
+ *
+ * @param data_peer - which peer has changed its state
+ * @param state - the new state of the peer
+ *
+ * Return: CDF Status
+ */
+QDF_STATUS ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev,
+				     uint8_t *peer_mac,
+				     enum ol_txrx_peer_state state)
 {
 	struct ol_txrx_peer_t *peer;