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
@@ -2280,4 +2280,15 @@ static inline bool dp_soc_is_full_mon_enable(struct dp_pdev *pdev)
|
||||
return (pdev->soc->full_mon_mode && pdev->monitor_configured) ?
|
||||
true : false;
|
||||
}
|
||||
|
||||
#ifndef FEATURE_WDS
|
||||
static inline void
|
||||
dp_hmwds_ast_add_notify(struct dp_peer *peer,
|
||||
uint8_t *mac_addr,
|
||||
enum cdp_txrx_ast_entry_type type,
|
||||
QDF_STATUS err,
|
||||
bool is_peer_map)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#endif /* #ifndef _DP_INTERNAL_H_ */
|
||||
|
@@ -652,6 +652,9 @@ static int dp_peer_add_ast_wifi3(struct cdp_soc_t *soc_hdl,
|
||||
(status == QDF_STATUS_E_ALREADY) ||
|
||||
(status == QDF_STATUS_E_AGAIN))
|
||||
ret = 0;
|
||||
|
||||
dp_hmwds_ast_add_notify(peer, mac_addr,
|
||||
type, status, false);
|
||||
fail:
|
||||
if (peer)
|
||||
dp_peer_unref_delete(peer);
|
||||
|
@@ -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,
|
||||
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