Browse Source

qcacmn: Add support for peer map handler

Call ol_peer_map handler when AST_OFFLOAD_SUPPORT
is enable, so that client_connect_ex event can be
sent to IPA.

Change-Id: I688cb95dec43180133a8948573fbd45af3cb9f33
CRs-Fixed: 3419264
Devender Kumar 2 years ago
parent
commit
610e19cab2
1 changed files with 35 additions and 0 deletions
  1. 35 0
      dp/wifi3.0/dp_peer.c

+ 35 - 0
dp/wifi3.0/dp_peer.c

@@ -1306,6 +1306,39 @@ struct dp_ast_entry *dp_peer_ast_hash_find_soc(struct dp_soc *soc,
 	return NULL;
 }
 
+/**
+ * dp_peer_map_ipa_evt() - Send peer map event to IPA
+ * @soc: SoC handle
+ * @peer: peer to which ast node belongs
+ * @ast_entry: AST entry
+ * @mac_addr: MAC address of ast node
+ *
+ * Return: None
+ */
+#if defined(IPA_OFFLOAD) && defined(QCA_IPA_LL_TX_FLOW_CONTROL)
+static inline
+void dp_peer_map_ipa_evt(struct dp_soc *soc, struct dp_peer *peer,
+			 struct dp_ast_entry *ast_entry, uint8_t *mac_addr)
+{
+	if (ast_entry || (peer->vdev && peer->vdev->proxysta_vdev)) {
+		if (soc->cdp_soc.ol_ops->peer_map_event) {
+			soc->cdp_soc.ol_ops->peer_map_event(
+			soc->ctrl_psoc, ast_entry->peer_id,
+			ast_entry->ast_idx, ast_entry->vdev_id,
+			mac_addr, ast_entry->type, ast_entry->ast_hash_value);
+		}
+	} else {
+		dp_peer_info("%pK: AST entry not found", soc);
+	}
+}
+#else
+static inline
+void dp_peer_map_ipa_evt(struct dp_soc *soc, struct dp_peer *peer,
+			 struct dp_ast_entry *ast_entry, uint8_t *mac_addr)
+{
+}
+#endif
+
 /**
  * dp_peer_host_add_map_ast() - Add ast entry with HW AST Index
  * @soc: SoC handle
@@ -1440,6 +1473,8 @@ QDF_STATUS dp_peer_host_add_map_ast(struct dp_soc *soc, uint16_t peer_id,
 	TAILQ_INSERT_TAIL(&peer->ast_entry_list, ast_entry,
 			  ase_list_elem);
 
+	dp_peer_map_ipa_evt(soc, peer, ast_entry, mac_addr);
+
 	qdf_spin_unlock_bh(&soc->ast_lock);
 fail:
 	dp_peer_unref_delete(peer, DP_MOD_ID_HTT);