diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index c610db718e..fa82771ac8 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -6832,6 +6832,7 @@ static QDF_STATUS dp_txrx_peer_detach(struct dp_soc *soc, struct dp_peer *peer) dp_peer_delay_stats_ctx_dealloc(soc, txrx_peer); dp_peer_rx_bufq_resources_deinit(txrx_peer); dp_peer_jitter_stats_ctx_dealloc(pdev, txrx_peer); + dp_peer_sawf_stats_ctx_free(soc, txrx_peer); qdf_mem_free(txrx_peer); } @@ -6880,6 +6881,10 @@ static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer) dp_set_peer_isolation(txrx_peer, false); dp_peer_defrag_rx_tids_init(txrx_peer); + + if (dp_peer_sawf_stats_ctx_alloc(soc, txrx_peer) != QDF_STATUS_SUCCESS) + dp_warn("peer sawf stats alloc failed"); + dp_txrx_peer_attach_add(soc, peer, txrx_peer); return QDF_STATUS_SUCCESS; diff --git a/dp/wifi3.0/dp_peer.h b/dp/wifi3.0/dp_peer.h index 24bdc74982..55d4e823cc 100644 --- a/dp/wifi3.0/dp_peer.h +++ b/dp/wifi3.0/dp_peer.h @@ -959,6 +959,23 @@ static inline QDF_STATUS dp_peer_sawf_ctx_free(struct dp_soc *soc, } #endif + +#ifndef CONFIG_SAWF +static inline +QDF_STATUS dp_peer_sawf_stats_ctx_alloc(struct dp_soc *soc, + struct dp_txrx_peer *txrx_peer) +{ + return QDF_STATUS_SUCCESS; +} + +static inline +QDF_STATUS dp_peer_sawf_stats_ctx_free(struct dp_soc *soc, + struct dp_txrx_peer *txrx_peer) +{ + return QDF_STATUS_SUCCESS; +} +#endif + struct dp_peer *dp_vdev_bss_peer_ref_n_get(struct dp_soc *soc, struct dp_vdev *vdev, enum dp_mod_id mod_id); diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 8d66aea264..371c04eb7d 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -3776,6 +3776,9 @@ struct dp_txrx_peer { ol_txrx_rx_fp osif_rx; #endif struct dp_rx_tid_defrag rx_tid[DP_MAX_TIDS]; +#ifdef CONFIG_SAWF + struct dp_peer_sawf_stats *sawf_stats; +#endif }; /* Peer structure for data path state */