qcacmn: Notify HMWDS ast add status to upper layers
Notification is sent in following two scenarios. - After call to dp_peer_add_ast() if we are not expecting any peer map event. - When HTT peer map event is received. Change-Id: Id926d1cec1ee64520b0368fcc5000988c24e0513 CRs-Fixed: 2745542
This commit is contained in:

committed by
snandini

parent
66c83b2fbe
commit
94c430da4a
@@ -29,6 +29,9 @@
|
||||
#include <hal_reo.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
#include <wlan_cfg.h>
|
||||
#ifdef FEATURE_WDS
|
||||
#include "dp_txrx_wds.h"
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_TX_PKT_CAPTURE_ENH
|
||||
#include "dp_tx_capture.h"
|
||||
@@ -593,6 +596,7 @@ static inline QDF_STATUS dp_peer_map_ast(struct dp_soc *soc,
|
||||
|
||||
cb = ast_entry->callback;
|
||||
cookie = ast_entry->cookie;
|
||||
peer_type = ast_entry->type;
|
||||
|
||||
dp_peer_unlink_ast_entry(soc, ast_entry);
|
||||
dp_peer_free_ast_entry(soc, ast_entry);
|
||||
@@ -613,6 +617,10 @@ static inline QDF_STATUS dp_peer_map_ast(struct dp_soc *soc,
|
||||
vdev_id, is_wds);
|
||||
}
|
||||
err = QDF_STATUS_E_INVAL;
|
||||
|
||||
dp_hmwds_ast_add_notify(peer, mac_addr,
|
||||
peer_type, err, true);
|
||||
|
||||
return err;
|
||||
}
|
||||
}
|
||||
@@ -640,6 +648,10 @@ static inline QDF_STATUS dp_peer_map_ast(struct dp_soc *soc,
|
||||
}
|
||||
|
||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||
|
||||
dp_hmwds_ast_add_notify(peer, mac_addr,
|
||||
peer_type, err, true);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -652,6 +664,7 @@ void dp_peer_free_hmwds_cb(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||
(struct dp_ast_free_cb_params *)cookie;
|
||||
struct dp_soc *soc = (struct dp_soc *)dp_soc;
|
||||
struct dp_peer *peer = NULL;
|
||||
QDF_STATUS err = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (status != CDP_TXRX_AST_DELETED) {
|
||||
qdf_mem_free(cookie);
|
||||
@@ -661,10 +674,14 @@ void dp_peer_free_hmwds_cb(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||
peer = dp_peer_find_hash_find(soc, ¶m->peer_mac_addr.raw[0],
|
||||
0, param->vdev_id);
|
||||
if (peer) {
|
||||
dp_peer_add_ast(soc, peer,
|
||||
¶m->mac_addr.raw[0],
|
||||
param->type,
|
||||
param->flags);
|
||||
err = dp_peer_add_ast(soc, peer,
|
||||
¶m->mac_addr.raw[0],
|
||||
param->type,
|
||||
param->flags);
|
||||
|
||||
dp_hmwds_ast_add_notify(peer, ¶m->mac_addr.raw[0],
|
||||
param->type, err, false);
|
||||
|
||||
dp_peer_unref_delete(peer);
|
||||
}
|
||||
qdf_mem_free(cookie);
|
||||
|
Reference in New Issue
Block a user