qcacmn: Add support to delete AST on BE platforms

Add change to support deletion/cleanup of AST entries on host
for BE platforms(Waikiki) based on peer map and unmap event received
from FW.

Change-Id: I494f7beb572e81cf68cc1cf90864eea0d8125369
CRs-Fixed: 3237943
This commit is contained in:
Santosh Anbu
2022-06-29 01:44:02 +05:30
committed by Madan Koyyalamudi
parent d08af7b6f7
commit 82fd1e58e2

View File

@@ -1301,7 +1301,7 @@ void dp_peer_ast_hash_remove(struct dp_soc *soc,
struct dp_ast_entry *tmpase; struct dp_ast_entry *tmpase;
int found = 0; int found = 0;
if (soc->ast_offload_support) if (soc->ast_offload_support && !soc->host_ast_db_enable)
return; return;
index = dp_peer_ast_hash_index(soc, &ase->mac_addr); index = dp_peer_ast_hash_index(soc, &ase->mac_addr);
@@ -2433,7 +2433,7 @@ dp_peer_clean_wds_entries(struct dp_soc *soc, struct dp_peer *peer,
{ {
uint32_t wds_deleted = 0; uint32_t wds_deleted = 0;
if (soc->ast_offload_support) if (soc->ast_offload_support && !soc->host_ast_db_enable)
return; return;
wds_deleted = dp_peer_ast_free_wds_entries(soc, peer); wds_deleted = dp_peer_ast_free_wds_entries(soc, peer);
@@ -3157,8 +3157,14 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
struct dp_peer *peer; struct dp_peer *peer;
struct dp_vdev *vdev = NULL; struct dp_vdev *vdev = NULL;
if (soc->ast_offload_support && is_wds) /*
* If FW AST offload is enabled and host AST DB is enabled,
* the AST entries are created during peer map from FW.
*/
if (soc->ast_offload_support && is_wds) {
if (!soc->host_ast_db_enable)
return; return;
}
peer = __dp_peer_get_ref_by_id(soc, peer_id, DP_MOD_ID_HTT); peer = __dp_peer_get_ref_by_id(soc, peer_id, DP_MOD_ID_HTT);