From 4c942e661a7d5ef5840cc11cf1bf50609a7eb90f Mon Sep 17 00:00:00 2001 From: Narayan Subramhanyan Date: Mon, 27 Feb 2023 20:07:47 +0530 Subject: [PATCH] qcacmn: Add manual ulofdma trigger bit in rx ppdu user stats Extract manual ulofdma trigger bit as part of rx ppdu stats per user update process Change-Id: I2a697f91e572f88a36f96085d15c90c679deaf0c CRs-Fixed: 3418677 --- dp/inc/cdp_txrx_cmn_struct.h | 9 ++++++++- dp/wifi3.0/monitor/dp_rx_mon.c | 20 ++++++++++++++++++++ hal/wifi3.0/be/hal_be_api_mon.h | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index 2d661e6a27..739a37e138 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -2496,6 +2496,7 @@ struct cdp_tx_completion_msdu { * @ofdma_ru_width: size of RU in units of 1(26tone)RU * @nss: NSS 1,2, ...8 * @mcs: MCS index + * @is_manual_ulofdma_trig: manual ulofdma trig or not? * @user_index: user ID in multi-user case * @is_bss_peer: is bss peer check * @ast_index: ast index in multi-user case @@ -2534,7 +2535,13 @@ struct cdp_rx_stats_ppdu_user { ofdma_ru_start_index:7, ofdma_ru_width:7, nss:4, - mcs:4; + mcs:4, +#ifdef QCA_MANUAL_TRIGGERED_ULOFDMA + is_manual_ulofdma_trig:1, + reserved:8; +#else + reserved:9; +#endif /* user id */ uint8_t user_index; uint8_t is_bss_peer; diff --git a/dp/wifi3.0/monitor/dp_rx_mon.c b/dp/wifi3.0/monitor/dp_rx_mon.c index 55aa0ac16f..2a18ebb725 100644 --- a/dp/wifi3.0/monitor/dp_rx_mon.c +++ b/dp/wifi3.0/monitor/dp_rx_mon.c @@ -398,6 +398,23 @@ dp_rx_inc_rusize_cnt(struct dp_pdev *pdev, return is_data; } +#ifdef QCA_MANUAL_TRIGGERED_ULOFDMA +static inline void +dp_rx_update_manual_ulofdma_trig(struct mon_rx_user_status *rx_user_status, + struct cdp_rx_stats_ppdu_user *user) +{ + user->is_manual_ulofdma_trig = + HTT_UL_OFDMA_USER_INFO_V0_W0_MANUAL_ULOFDMA_TRIG_GET( + rx_user_status->mu_ul_user_v0_word0); +} +#else +static inline void +dp_rx_update_manual_ulofdma_trig(struct mon_rx_user_status *rx_user_status, + struct cdp_rx_stats_ppdu_user *user) +{ +} +#endif + /** * dp_rx_populate_cdp_indication_ppdu_user() - Populate per user cdp indication * @pdev: pdev ctx @@ -502,6 +519,9 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev, rx_stats_peruser->vdev_id = peer->vdev->vdev_id; rx_stats_peruser->mu_ul_info_valid = 0; + dp_rx_update_manual_ulofdma_trig(rx_user_status, + rx_stats_peruser); + mon_ops = dp_mon_ops_get(soc); if (mon_ops && mon_ops->mon_rx_populate_ppdu_usr_info) mon_ops->mon_rx_populate_ppdu_usr_info(rx_user_status, diff --git a/hal/wifi3.0/be/hal_be_api_mon.h b/hal/wifi3.0/be/hal_be_api_mon.h index 092a090a8e..1642aecad3 100644 --- a/hal/wifi3.0/be/hal_be_api_mon.h +++ b/hal/wifi3.0/be/hal_be_api_mon.h @@ -746,7 +746,7 @@ hal_be_get_mon_dest_status(hal_soc_handle_t hal_soc, } #endif -#if defined(RX_PPDU_END_USER_STATS_OFDMA_INFO_VALID_OFFSET) && \ +#if defined(RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET) && \ defined(RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET) static inline void