diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 800ee6e9d56d..7296a29db63f 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -6507,12 +6507,15 @@ typedef enum { } htt_txbf_sound_steer_modes; typedef enum { - HTT_TX_AC_SOUNDING_MODE = 0, - HTT_TX_AX_SOUNDING_MODE = 1, - HTT_TX_BE_SOUNDING_MODE = 2, + HTT_TX_AC_SOUNDING_MODE = 0, + HTT_TX_AX_SOUNDING_MODE = 1, + HTT_TX_BE_SOUNDING_MODE = 2, HTT_TX_CMN_SOUNDING_MODE = 3, + HTT_TX_CV_CORR_MODE = 4, } htt_stats_sounding_tx_mode; +#define HTT_TX_CV_CORR_MAX_NUM_COLUMNS 8 + typedef struct { htt_tlv_hdr_t tlv_hdr; A_UINT32 tx_sounding_mode; /* HTT_TX_XX_SOUNDING_MODE */ @@ -6625,6 +6628,65 @@ typedef struct { A_UINT32 adaptive_snd_kicked_in; /** Total number of times we switched back to normal sounding interval */ A_UINT32 adaptive_snd_back_to_default; + + /** + * Below are CV correlation feature related stats. + * This feature is used for DL MU MIMO, but is not available + * from certain legacy targets. + */ + + /** number of CV Correlation triggers for online mode */ + A_UINT32 cv_corr_trigger_online_mode; + /** number of CV Correlation triggers for offline mode */ + A_UINT32 cv_corr_trigger_offline_mode; + /** number of CV Correlation triggers for hybrid mode */ + A_UINT32 cv_corr_trigger_hybrid_mode; + /** number of CV Correlation triggers with computation level 0 */ + A_UINT32 cv_corr_trigger_computation_level_0; + /** number of CV Correlation triggers with computation level 1 */ + A_UINT32 cv_corr_trigger_computation_level_1; + /** number of CV Correlation triggers with computation level 2 */ + A_UINT32 cv_corr_trigger_computation_level_2; + /** number of users for which CV Correlation was triggered */ + A_UINT32 cv_corr_trigger_num_users[HTT_TX_CV_CORR_MAX_NUM_COLUMNS]; + /** number of streams for which CV Correlation was triggered */ + A_UINT32 cv_corr_trigger_num_streams[HTT_TX_CV_CORR_MAX_NUM_COLUMNS]; + /** number of CV Correlation buffers received through IPC tickle */ + A_UINT32 cv_corr_upload_total_buf_received; + /** number of CV Correlation buffers fed back to the IPC ring */ + A_UINT32 cv_corr_upload_total_buf_fed_back; + /** number of CV Correlation buffers for which processing failed */ + A_UINT32 cv_corr_upload_total_processing_failed; + /** + * number of CV Correlation buffers for which processing failed, + * due to no users being present in parsed buffer + */ + A_UINT32 cv_corr_upload_failed_total_users_zero; + /** + * number of CV Correlation buffers for which processing failed, + * due to number of users present in parsed buffer exceeded + * CV_CORR_MAX_NUM_COLUMNS + */ + A_UINT32 cv_corr_upload_failed_total_users_exceeded; + /** + * number of CV Correlation buffers for which processing failed, + * due to peer pointer for parsed peer not available + */ + A_UINT32 cv_corr_upload_failed_peer_not_found; + /** + * number of CV Correlation buffers for which processing encountered, + * Nss of peer exceeding SCHED_ALGO_MAX_SUPPORTED_MUMIMO_NSS + */ + A_UINT32 cv_corr_upload_user_nss_exceeded; + /** + * number of CV Correlation buffers for which processing encountered, + * invalid reverse look up index for fetching CV correlation results + */ + A_UINT32 cv_corr_upload_invalid_lookup_index; + /** number of users present in uploaded CV Correlation results buffer */ + A_UINT32 cv_corr_upload_total_num_users[HTT_TX_CV_CORR_MAX_NUM_COLUMNS]; + /** number of streams present in uploaded CV Correlation results buffer */ + A_UINT32 cv_corr_upload_total_num_streams[HTT_TX_CV_CORR_MAX_NUM_COLUMNS]; } htt_tx_sounding_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO