|
@@ -541,6 +541,34 @@ dp_rx_intrabss_handle_nawds_li(struct dp_soc *soc, struct dp_txrx_peer *ta_peer,
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+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);
|
|
|
|
+ qdf_warn("%s 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;
|
|
|
|
+}
|
|
|
|
+
|
|
void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|
void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|
{
|
|
{
|
|
#ifndef QCA_HOST_MODE_WIFI_DISABLED
|
|
#ifndef QCA_HOST_MODE_WIFI_DISABLED
|
|
@@ -590,6 +618,7 @@ 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->txrx_print_peer_stats = dp_print_peer_txrx_stats_li;
|
|
arch_ops->dp_peer_rx_reorder_queue_setup =
|
|
arch_ops->dp_peer_rx_reorder_queue_setup =
|
|
dp_peer_rx_reorder_queue_setup_li;
|
|
dp_peer_rx_reorder_queue_setup_li;
|
|
|
|
+ arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_li;
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef QCA_DP_TX_HW_SW_NBUF_DESC_PREFETCH
|
|
#ifdef QCA_DP_TX_HW_SW_NBUF_DESC_PREFETCH
|