From 610e19cab21e320ca73bf808aa528e816c647825 Mon Sep 17 00:00:00 2001 From: Devender Kumar Date: Tue, 14 Feb 2023 14:46:04 +0530 Subject: [PATCH] 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 --- dp/wifi3.0/dp_peer.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index 6d4451330b..b034b63a42 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/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);