diff --git a/dp/wifi3.0/monitor/dp_mon.c b/dp/wifi3.0/monitor/dp_mon.c index 7e4ed18793..01fb019d54 100644 --- a/dp/wifi3.0/monitor/dp_mon.c +++ b/dp/wifi3.0/monitor/dp_mon.c @@ -4772,8 +4772,10 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev, } qdf_assert_always(ppdu_desc->num_users <= ppdu_desc->max_users); - dp_ppdu_desc_get_txmode(ppdu_desc); - dp_pdev_update_deter_stats(pdev, ppdu_desc); + if (wlan_cfg_get_sawf_stats_config(pdev->soc->wlan_cfg_ctx)) { + dp_ppdu_desc_get_txmode(ppdu_desc); + dp_pdev_update_deter_stats(pdev, ppdu_desc); + } for (i = 0; i < num_users; i++) { ppdu_desc->num_mpdu += ppdu_desc->user[i].num_mpdu; @@ -4796,8 +4798,12 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev, dp_tx_ctrl_stats_update(pdev, peer, &ppdu_desc->user[i]); - dp_ppdu_desc_user_deter_stats_update(pdev, peer, ppdu_desc, - &ppdu_desc->user[i]); + if (wlan_cfg_get_sawf_stats_config(pdev->soc->wlan_cfg_ctx)) { + dp_ppdu_desc_user_deter_stats_update(pdev, + peer, + ppdu_desc, + &ppdu_desc->user[i]); + } /* * different frame like DATA, BAR or CTRL has different diff --git a/dp/wifi3.0/monitor/dp_rx_mon.c b/dp/wifi3.0/monitor/dp_rx_mon.c index 1ea2d43067..29ce2de72b 100644 --- a/dp/wifi3.0/monitor/dp_rx_mon.c +++ b/dp/wifi3.0/monitor/dp_rx_mon.c @@ -1137,7 +1137,11 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, dp_send_stats_event(pdev, peer, ppdu_user->peer_id); dp_ppdu_desc_user_rx_time_update(pdev, peer, ppdu, ppdu_user); - dp_rx_mon_update_user_deter_stats(pdev, peer, ppdu, ppdu_user); + + if (wlan_cfg_get_sawf_stats_config(pdev->soc->wlan_cfg_ctx)) + dp_rx_mon_update_user_deter_stats(pdev, peer, + ppdu, ppdu_user); + dp_peer_unref_delete(peer, DP_MOD_ID_RX_PPDU_STATS); } } @@ -1224,8 +1228,12 @@ dp_rx_handle_ppdu_stats(struct dp_soc *soc, struct dp_pdev *pdev, if (!qdf_unlikely(qdf_nbuf_put_tail(ppdu_nbuf, sizeof(struct cdp_rx_indication_ppdu)))) return; - if (cdp_rx_ppdu->u.ppdu_type == HAL_RX_TYPE_SU) - dp_rx_mon_update_pdev_deter_stats(pdev, cdp_rx_ppdu); + + if (wlan_cfg_get_sawf_stats_config(pdev->soc->wlan_cfg_ctx)) { + if (cdp_rx_ppdu->u.ppdu_type == HAL_RX_TYPE_SU) + dp_rx_mon_update_pdev_deter_stats(pdev, + cdp_rx_ppdu); + } dp_rx_stats_update(pdev, cdp_rx_ppdu); diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index 263e7182c6..83d26be9e1 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -3813,6 +3813,8 @@ uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg) return cfg->sawf_stats; } +qdf_export_symbol(wlan_cfg_get_sawf_stats_config); + void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg, uint8_t val) { @@ -3830,6 +3832,8 @@ uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg) return 0; } +qdf_export_symbol(wlan_cfg_get_sawf_stats_config); + void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg, uint8_t val) {