Kaynağa Gözat

qcacmn: Remove AST dependency for sawf

To eliminate the use of AST, using net dev to
find the peer related information, which helps
in avoiding the iterations of psoc list.
Passing the peer id as addition parameter to DP

Change-Id: I68e4ad8d5d62b2350ed0c2df66279de3fa9c0d83
CRs-Fixed: 3526799
Gaurav Saini 2 yıl önce
ebeveyn
işleme
1630288f30

+ 3 - 2
dp/inc/cdp_txrx_ops.h

@@ -2442,7 +2442,7 @@ struct cdp_sawf_ops {
 	(*peer_config_ul)(struct cdp_soc_t *hdl, uint8_t *mac_addr, uint8_t tid,
 			  uint32_t service_interval, uint32_t burst_size,
 			  uint32_t min_tput, uint32_t max_latency,
-			  uint8_t add_or_sub);
+			  uint8_t add_or_sub, uint16_t peer_id);
 	QDF_STATUS
 	(*swaf_peer_sla_configuration)(struct cdp_soc_t *soc,
 				       uint8_t *mac_addr, uint16_t *sla_mask);
@@ -2450,7 +2450,8 @@ struct cdp_sawf_ops {
 	QDF_STATUS
 	(*sawf_peer_flow_count)(struct cdp_soc_t *hdl, uint8_t *mac_addr,
 				uint8_t svc_id, uint8_t direction,
-				uint8_t start_or_stop, uint8_t *peer_mac);
+				uint8_t start_or_stop, uint8_t *peer_mac,
+				uint16_t peer_id);
 #endif
 };
 #endif

+ 8 - 4
dp/inc/cdp_txrx_sawf.h

@@ -342,6 +342,7 @@ cdp_get_drop_stats(ol_txrx_soc_handle soc, void *arg,
  * @min_tput: Min throughput
  * @max_latency: Max latency
  * @add_or_sub: Add or Sub parameters
+ * @peer_id: peer id
  *
  * Return: QDF_STATUS
  */
@@ -349,7 +350,7 @@ static inline QDF_STATUS
 cdp_sawf_peer_config_ul(ol_txrx_soc_handle soc, uint8_t *mac_addr, uint8_t tid,
 			uint32_t service_interval, uint32_t burst_size,
 			uint32_t min_tput, uint32_t max_latency,
-			uint8_t add_or_sub)
+			uint8_t add_or_sub, uint16_t peer_id)
 {
 	if (!soc || !soc->ops || !soc->ops->sawf_ops ||
 	    !soc->ops->sawf_ops->peer_config_ul) {
@@ -361,7 +362,7 @@ cdp_sawf_peer_config_ul(ol_txrx_soc_handle soc, uint8_t *mac_addr, uint8_t tid,
 	return soc->ops->sawf_ops->peer_config_ul(soc, mac_addr, tid,
 						  service_interval, burst_size,
 						  min_tput, max_latency,
-						  add_or_sub);
+						  add_or_sub, peer_id);
 }
 
 /**
@@ -372,13 +373,15 @@ cdp_sawf_peer_config_ul(ol_txrx_soc_handle soc, uint8_t *mac_addr, uint8_t tid,
  * @direction: Indication of forward or reverse service class match
  * @start_or_stop: Indication of start or stop
  * @peer_mac: Peer MAC address
+ * @peer_id: peer id
  *
  * Return: QDF_STATUS
  */
 static inline QDF_STATUS
 cdp_sawf_peer_flow_count(ol_txrx_soc_handle soc, uint8_t *mac_addr,
 			 uint8_t svc_id, uint8_t direction,
-			 uint8_t start_or_stop, uint8_t *peer_mac)
+			 uint8_t start_or_stop, uint8_t *peer_mac,
+			 uint16_t peer_id)
 {
 	if (!soc || !soc->ops || !soc->ops->sawf_ops ||
 	    !soc->ops->sawf_ops->sawf_peer_flow_count) {
@@ -388,7 +391,8 @@ cdp_sawf_peer_flow_count(ol_txrx_soc_handle soc, uint8_t *mac_addr,
 	}
 
 	return soc->ops->sawf_ops->sawf_peer_flow_count
-		(soc, mac_addr, svc_id, direction, start_or_stop, peer_mac);
+		(soc, mac_addr, svc_id, direction, start_or_stop, peer_mac,
+								peer_id);
 }
 
 /**

+ 0 - 42
dp/wifi3.0/be/dp_be.c

@@ -2653,47 +2653,6 @@ static QDF_STATUS dp_peer_map_attach_be(struct dp_soc *soc)
 	return QDF_STATUS_SUCCESS;
 }
 
-static struct dp_peer *dp_find_peer_by_destmac_be(struct dp_soc *soc,
-						  uint8_t *dest_mac,
-						  uint8_t vdev_id)
-{
-	struct dp_peer *peer = NULL;
-	struct dp_peer *tgt_peer = NULL;
-	struct dp_ast_entry *ast_entry = NULL;
-	uint16_t peer_id;
-
-	qdf_spin_lock_bh(&soc->ast_lock);
-	ast_entry = dp_peer_ast_hash_find_soc(soc, dest_mac);
-	if (!ast_entry) {
-		qdf_spin_unlock_bh(&soc->ast_lock);
-		dp_err("NULL ast entry");
-		return NULL;
-	}
-
-	peer_id = ast_entry->peer_id;
-	qdf_spin_unlock_bh(&soc->ast_lock);
-
-	if (peer_id == HTT_INVALID_PEER)
-		return NULL;
-
-	peer = dp_peer_get_ref_by_id(soc, peer_id, DP_MOD_ID_SAWF);
-	if (!peer) {
-		dp_err("NULL peer for peer_id:%d", peer_id);
-		return NULL;
-	}
-
-	tgt_peer = dp_get_tgt_peer_from_peer(peer);
-
-	/*
-	 * Once tgt_peer is obtained,
-	 * release the ref taken for original peer.
-	 */
-	dp_peer_get_ref(NULL, tgt_peer, DP_MOD_ID_SAWF);
-	dp_peer_unref_delete(peer, DP_MOD_ID_SAWF);
-
-	return tgt_peer;
-}
-
 #ifdef WLAN_FEATURE_11BE_MLO
 #ifdef WLAN_MCAST_MLO
 static inline void
@@ -2935,7 +2894,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
 					dp_peer_rx_reorder_queue_setup_be;
 	arch_ops->dp_rx_peer_set_link_id = dp_rx_set_link_id_be;
 	arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_be;
-	arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_be;
 #if defined(DP_UMAC_HW_HARD_RESET) && defined(DP_UMAC_HW_RESET_SUPPORT)
 	arch_ops->dp_bank_reconfig = dp_bank_reconfig_be;
 	arch_ops->dp_reconfig_tx_vdev_mcast_ctrl =

+ 0 - 4
dp/wifi3.0/dp_types.h

@@ -2205,7 +2205,6 @@ enum dp_context_type {
  * @dp_rx_fst_ref:
  * @txrx_print_peer_stats:
  * @dp_peer_rx_reorder_queue_setup: Dp peer reorder queue setup
- * @dp_find_peer_by_destmac:
  * @dp_bank_reconfig:
  * @dp_get_soc_by_chip_id: Get soc by chip id
  * @dp_soc_get_num_soc:
@@ -2416,9 +2415,6 @@ struct dp_arch_ops {
 						     struct dp_peer *peer,
 						     int tid,
 						     uint32_t ba_window_size);
-	struct dp_peer *(*dp_find_peer_by_destmac)(struct dp_soc *soc,
-						   uint8_t *dest_mac_addr,
-						   uint8_t vdev_id);
 	void (*dp_bank_reconfig)(struct dp_soc *soc, struct dp_vdev *vdev);
 
 	struct dp_soc * (*dp_get_soc_by_chip_id)(struct dp_soc *soc,

+ 0 - 29
dp/wifi3.0/li/dp_li.c

@@ -561,34 +561,6 @@ static void dp_rx_word_mask_subscribe_li(struct dp_soc *soc,
 {
 }
 
-static struct dp_peer *dp_find_peer_by_destmac_li(struct dp_soc *soc,
-						  uint8_t *dest_mac,
-						  uint8_t vdev_id)
-{
-	struct dp_peer *peer = NULL;
-	struct dp_ast_entry *ast_entry = NULL;
-	uint16_t peer_id;
-
-	qdf_spin_lock_bh(&soc->ast_lock);
-	ast_entry = dp_peer_ast_hash_find_by_vdevid(soc, dest_mac, vdev_id);
-
-	if (!ast_entry) {
-		qdf_spin_unlock_bh(&soc->ast_lock);
-		dp_err("NULL ast entry");
-		return NULL;
-	}
-
-	peer_id = ast_entry->peer_id;
-	qdf_spin_unlock_bh(&soc->ast_lock);
-
-	if (peer_id == HTT_INVALID_PEER)
-		return NULL;
-
-	peer = dp_peer_get_ref_by_id(soc, peer_id,
-				     DP_MOD_ID_SAWF);
-	return peer;
-}
-
 static void dp_get_rx_hash_key_li(struct dp_soc *soc,
 				  struct cdp_lro_hash_config *lro_hash)
 {
@@ -707,7 +679,6 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
 	arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_li;
 	arch_ops->dp_peer_rx_reorder_queue_setup =
 					dp_peer_rx_reorder_queue_setup_li;
-	arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_li;
 	arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
 	arch_ops->reo_remap_config = dp_reo_remap_config_li;
 	arch_ops->dp_get_soc_by_chip_id = dp_get_soc_by_chip_id_li;

+ 0 - 29
dp/wifi3.0/rh/dp_rh.c

@@ -736,34 +736,6 @@ static QDF_STATUS dp_txrx_set_vdev_param_rh(struct dp_soc *soc,
 	return QDF_STATUS_SUCCESS;
 }
 
-static struct dp_peer *dp_find_peer_by_destmac_rh(struct dp_soc *soc,
-						  uint8_t *dest_mac,
-						  uint8_t vdev_id)
-{
-	struct dp_peer *peer = NULL;
-	struct dp_ast_entry *ast_entry = NULL;
-	uint16_t peer_id;
-
-	qdf_spin_lock_bh(&soc->ast_lock);
-	ast_entry = dp_peer_ast_hash_find_by_vdevid(soc, dest_mac, vdev_id);
-
-	if (!ast_entry) {
-		qdf_spin_unlock_bh(&soc->ast_lock);
-		dp_err("NULL ast entry");
-		return NULL;
-	}
-
-	peer_id = ast_entry->peer_id;
-	qdf_spin_unlock_bh(&soc->ast_lock);
-
-	if (peer_id == HTT_INVALID_PEER)
-		return NULL;
-
-	peer = dp_peer_get_ref_by_id(soc, peer_id,
-				     DP_MOD_ID_SAWF);
-	return peer;
-}
-
 static void dp_get_rx_hash_key_rh(struct dp_soc *soc,
 				  struct cdp_lro_hash_config *lro_hash)
 {
@@ -828,7 +800,6 @@ void dp_initialize_arch_ops_rh(struct dp_arch_ops *arch_ops)
 	arch_ops->txrx_print_peer_stats = dp_print_peer_txrx_stats_rh;
 	arch_ops->dp_peer_rx_reorder_queue_setup =
 					dp_peer_rx_reorder_queue_setup_rh;
-	arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_rh;
 	arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_rh;
 	arch_ops->reo_remap_config = dp_reo_remap_config_rh;
 	arch_ops->txrx_peer_setup = dp_peer_setup_rh;