qcacmn: Map and umap MLO DP peer to partner soc
Maping and unmaping of the MLO DP peer to the partner soc will be initialized based on architecture. dp_mlo_partner_chips_map dp_mlo_partner_chips_unmap Change-Id: I918f6d552acd9d64086abf4c38f913348e13c381 CRs-Fixed: 3267904
This commit is contained in:

committed by
Madan Koyyalamudi

parent
af8acc5430
commit
383edf35d0
@@ -1832,10 +1832,25 @@ dp_initialize_arch_ops_be_mcast_mlo(struct dp_arch_ops *arch_ops)
|
||||
}
|
||||
#endif /* WLAN_MCAST_MLO */
|
||||
|
||||
#ifdef WLAN_MLO_MULTI_CHIP
|
||||
static inline void
|
||||
dp_initialize_arch_ops_be_mlo_ptnr_chip(struct dp_arch_ops *arch_ops)
|
||||
{
|
||||
arch_ops->dp_partner_chips_map = dp_mlo_partner_chips_map;
|
||||
arch_ops->dp_partner_chips_unmap = dp_mlo_partner_chips_unmap;
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
dp_initialize_arch_ops_be_mlo_ptnr_chip(struct dp_arch_ops *arch_ops)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
dp_initialize_arch_ops_be_mlo(struct dp_arch_ops *arch_ops)
|
||||
{
|
||||
dp_initialize_arch_ops_be_mcast_mlo(arch_ops);
|
||||
dp_initialize_arch_ops_be_mlo_ptnr_chip(arch_ops);
|
||||
arch_ops->mlo_peer_find_hash_detach =
|
||||
dp_mlo_peer_find_hash_detach_wrapper;
|
||||
arch_ops->mlo_peer_find_hash_attach =
|
||||
|
@@ -406,7 +406,28 @@ dp_mlo_get_peer_hash_obj(struct dp_soc *soc)
|
||||
|
||||
void dp_clr_mlo_ptnr_list(struct dp_soc *soc, struct dp_vdev *vdev);
|
||||
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MCAST_MLO)
|
||||
#if defined(WLAN_FEATURE_11BE_MLO)
|
||||
/**
|
||||
* dp_mlo_partner_chips_map() - Map MLO peers to partner SOCs
|
||||
* @soc: Soc handle
|
||||
* @peer: DP peer handle for ML peer
|
||||
* @peer_id: peer_id
|
||||
* Return: None
|
||||
*/
|
||||
void dp_mlo_partner_chips_map(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint16_t peer_id);
|
||||
|
||||
/**
|
||||
* dp_mlo_partner_chips_unmap() - Unmap MLO peers to partner SOCs
|
||||
* @soc: Soc handle
|
||||
* @peer_id: peer_id
|
||||
* Return: None
|
||||
*/
|
||||
void dp_mlo_partner_chips_unmap(struct dp_soc *soc,
|
||||
uint16_t peer_id);
|
||||
|
||||
#ifdef WLAN_MCAST_MLO
|
||||
typedef void dp_ptnr_vdev_iter_func(struct dp_vdev_be *be_vdev,
|
||||
struct dp_vdev *ptnr_vdev,
|
||||
void *arg);
|
||||
@@ -450,6 +471,7 @@ struct dp_vdev *dp_mlo_get_mcast_primary_vdev(struct dp_soc_be *be_soc,
|
||||
struct dp_vdev_be *be_vdev,
|
||||
enum dp_mod_id mod_id);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
typedef struct dp_soc_be *dp_mld_peer_hash_obj_t;
|
||||
|
@@ -2874,7 +2874,8 @@ static inline struct dp_peer *dp_peer_find_add_id(struct dp_soc *soc,
|
||||
return NULL;
|
||||
}
|
||||
dp_peer_find_id_to_obj_add(soc, peer, peer_id);
|
||||
dp_mlo_partner_chips_map(soc, peer, peer_id);
|
||||
if (soc->arch_ops.dp_partner_chips_map)
|
||||
soc->arch_ops.dp_partner_chips_map(soc, peer, peer_id);
|
||||
|
||||
dp_peer_update_state(soc, peer, DP_PEER_STATE_ACTIVE);
|
||||
return peer;
|
||||
@@ -3239,7 +3240,10 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id,
|
||||
dp_peer_rx_reo_shared_qaddr_delete(soc, peer);
|
||||
|
||||
dp_peer_find_id_to_obj_remove(soc, peer_id);
|
||||
dp_mlo_partner_chips_unmap(soc, peer_id);
|
||||
|
||||
if (soc->arch_ops.dp_partner_chips_unmap)
|
||||
soc->arch_ops.dp_partner_chips_unmap(soc, peer_id);
|
||||
|
||||
peer->peer_id = HTT_INVALID_PEER;
|
||||
|
||||
/*
|
||||
|
@@ -1907,39 +1907,6 @@ static inline void dp_print_mlo_ast_stats_be(struct dp_soc *soc)
|
||||
}
|
||||
#endif /* WLAN_FEATURE_11BE_MLO */
|
||||
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||
/**
|
||||
* dp_mlo_partner_chips_map() - Map MLO peers to partner SOCs
|
||||
* @soc: Soc handle
|
||||
* @peer: DP peer handle for ML peer
|
||||
* @peer_id: peer_id
|
||||
* Return: None
|
||||
*/
|
||||
void dp_mlo_partner_chips_map(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint16_t peer_id);
|
||||
|
||||
/**
|
||||
* dp_mlo_partner_chips_unmap() - Unmap MLO peers to partner SOCs
|
||||
* @soc: Soc handle
|
||||
* @peer_id: peer_id
|
||||
* Return: None
|
||||
*/
|
||||
void dp_mlo_partner_chips_unmap(struct dp_soc *soc,
|
||||
uint16_t peer_id);
|
||||
#else
|
||||
static inline void dp_mlo_partner_chips_map(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint16_t peer_id)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void dp_mlo_partner_chips_unmap(struct dp_soc *soc,
|
||||
uint16_t peer_id)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline
|
||||
QDF_STATUS dp_peer_rx_tids_create(struct dp_peer *peer)
|
||||
{
|
||||
|
@@ -1947,6 +1947,11 @@ struct dp_arch_ops {
|
||||
struct hal_tx_completion_status *ts,
|
||||
uint32_t *delay_us);
|
||||
void (*print_mlo_ast_stats)(struct dp_soc *soc);
|
||||
void (*dp_partner_chips_map)(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint16_t peer_id);
|
||||
void (*dp_partner_chips_unmap)(struct dp_soc *soc,
|
||||
uint16_t peer_id);
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user