fw-api: CL 28524940 - update fw common interface files

Change-Id: Ic3cc32f729c4e20f22126bf7fd6fedced6dd6ebe
CRs-Fixed: 3830439
This commit is contained in:
spuligil 2025-02-05 01:43:05 -08:00 • committed by Ravindra Konda
commit 4255f08ff5
2 changed files with 135 additions and 1 deletions

View file

@ -840,6 +840,10 @@ typedef enum {
HTT_STATS_PDEV_RTT_DELAY_TAG = 205, /* htt_stats_pdev_rtt_delay_tlv */
HTT_STATS_PDEV_AOA_TAG = 206, /* htt_stats_pdev_aoa_tlv */
HTT_STATS_PDEV_FTM_TPCCAL_TAG = 207, /* htt_stats_pdev_ftm_tpccal_tlv */
HTT_STATS_PDEV_UL_MUMIMO_GRP_STATS_TAG = 208, /* htt_stats_pdev_ulmumimo_grp_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_DENYLIST_STATS_TAG = 209, /* htt_stats_pdev_ulmumimo_denylist_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_SEQ_TERM_STATS_TAG = 210, /* htt_stats_pdev_ulmumimo_seq_term_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_HIST_INELIGIBILITY_TAG = 211, /* htt_stats_pdev_ulmumimo_hist_ineligibility_tlv */
HTT_STATS_MAX_TAG,
} htt_stats_tlv_tag_t;

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -818,6 +818,17 @@ enum htt_dbg_ext_stats_type {
*/
HTT_DBG_EXT_STATS_PDEV_FTM_TPCCAL = 73,
/** HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_ELIGIBLE
* PARAMS:
* - No Params
* RESP MSG:
* - htt_stats_pdev_ul_mumimo_grp_stats_tlv
* - htt_stats_pdev_ul_mumimo_denylist_stats_tlv
* - htt_stats_pdev_ul_mumimo_seq_term_stats_tlv
* - htt_stats_pdev_ul_mumimo_hist_ineligibility_tlv
*/
HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_ELIGIBLE = 74,
/* keep this last */
HTT_DBG_NUM_EXT_STATS = 256,
@ -2858,6 +2869,11 @@ typedef enum {
HTT_TX_MUMIMO_GRP_INVALID_GROUP_INELIGIBLE,
HTT_TX_MUMIMO_GRP_INVALID,
HTT_TX_MUMIMO_GRP_INVALID_GROUP_EFF_MU_TPUT_OMBPS,
HTT_TX_MUMIMO_GRP_INVALID_GRP,
HTT_TX_MUMIMO_GRP_INVALID_TOTAL_NSS_LESS_THAN_GROUP_SIZE,
HTT_TX_MUMIMO_GRP_INSUFFICIENT_CANDIDATES_UL_MU_1SS_RATE,
HTT_TX_MUMIMO_GRP_MU_GRP_NOT_NEEDED,
HTT_TX_MUMIMO_GRP_INVALID_MAX_REASON_CODE,
} htt_tx_mumimo_grp_invalid_reason_code_stats;
@ -7561,6 +7577,15 @@ typedef struct {
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];
/** Total number of times lookahead sounding done for DL MU */
A_UINT32 lookahead_sounding_dl_cnt;
/** Total number of times lookahead sounding done for DL MU based on number of users */
A_UINT32 lookahead_snd_dl_num_users[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
/** Total number of times lookahead sounding done for UL MU */
A_UINT32 lookahead_sounding_ul_cnt;
/** Total number of times lookahead sounding done for UL MU based on number of users */
A_UINT32 lookahead_snd_ul_num_users[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
} htt_stats_tx_sounding_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_sounding_stats_tlv htt_tx_sounding_stats_tlv;
@ -9063,6 +9088,111 @@ typedef struct {
A_INT32 phase_in_degree[HTT_STATS_PDEV_AOA_MAX_HISTOGRAM][HTT_STATS_PDEV_AOA_MAX_CHAINS];
} htt_stats_pdev_aoa_tlv;
/* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_ULMUMIMO_ELIGIBLE
* TLV_TAGS:
* HTT_STATS_PDEV_UL_MUMIMO_GRP_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_DENYLIST_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_SEQ_TERM_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_HIST_INELIGIBILITY_TAG
*/
typedef enum {
HTT_STATS_CANDIDATE_MU_NOT_COMPATIBLE = 1,
HTT_STATS_CANDIDATE_SKIP_NR_INDEX,
HTT_STATS_CANDIDATE_SKIP_BASIC_CHECKS_INELIGIBLE,
HTT_STATS_CANDIDATE_SKIP_ZERO_NSS,
HTT_STATS_CANDIDATE_SKIP_MCS_THRESHOLD_LIMIT,
HTT_STATS_CANDIDATE_SKIP_POWER_IMBALANCED,
HTT_STATS_CANDIDATE_SKIP_NULL_MU_RC,
HTT_STATS_CANDIDATE_SKIP_CV_CORR_SKIP_PEER,
HTT_STATS_CANDIDATE_SKIP_SEND_BAR_SET_FOR_AC_MUMIMO,
HTT_STATS_CANDIDATE_SKIP_REASON_MAX
} htt_stats_candidate_sched_compatible_code;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Current Pdev id */
A_UINT32 pdev_id;
/* Group eligibility count */
A_UINT32 mu_grp_eligible[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group ineligibility */
A_UINT32 mu_grp_ineligible[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group Invalid reason */
A_UINT32 mu_grp_invalid[HTT_TX_NUM_MUMIMO_GRP_INVALID_WORDS];
/* mu_grp_candidate_skip:
* Sched_compatibility reason codes as listed by
* htt_stats_candidate_sched_compatible code
*/
A_UINT32 mu_grp_candidate_skip
[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS]
[HTT_STATS_CANDIDATE_SKIP_REASON_MAX];
/* Group eligibility count for 1SS grouping */
A_UINT32 mu_grp_eligible_1ss[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group ineligibility fpr 1SS grouping */
A_UINT32 mu_grp_ineligible_1ss[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group Invalid reason for 1SS grouping */
A_UINT32 mu_grp_invalid_1ss[HTT_TX_NUM_MUMIMO_GRP_INVALID_WORDS];
/* Sched_compatibility reason code for 1SS grouping */
A_UINT32 mu_grp_candidate_skip_1ss
[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS]
[HTT_STATS_CANDIDATE_SKIP_REASON_MAX];
} htt_stats_pdev_ulmumimo_grp_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Num of times peer denylisted for MU-MIMO transmission */
A_UINT32 num_peer_denylist_cnt;
/* Num of times peer denylisted due to trigger bitmap failure */
A_UINT32 trig_bitmap_fail_cnt;
/* Num of times peer denylisted due to trigger consecutive failure */
A_UINT32 trig_consecutive_fail_cnt;
} htt_stats_pdev_ulmumimo_denylist_stats_tlv;
#define HTT_STATS_SEQ_EFFICIENCY_HISTOGRAM 10
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Num of times seq terminated for MU-MIMO transmission */
A_UINT32 num_terminate_seq;
/* Num of sequences terminated due to low qdepth */
A_UINT32 num_terminate_low_qdepth;
/* Number of sequences terminated due to sequence inefficient */
A_UINT32 num_terminate_seq_inefficient;
/* Histogram of sequence inefficiency */
A_UINT32 hist_seq_efficiency[HTT_STATS_SEQ_EFFICIENCY_HISTOGRAM];
} htt_stats_pdev_ulmumimo_seq_term_stats_tlv;
#define HTT_STATS_MAX_ULMUMIMO_TRIGGERS 6
#define HTT_STATS_TXOP_HISTOGRAM_BINS 24
#define HTT_STATS_ULMUMIMO_DUR_INTERVAL_US 500
#define HTT_STATS_ULMUMIMO_MIN_PPDU_DUR_US 1000
#define HTT_STATS_MAX_PPDU_DURATION_BINS 10
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Number of ULMUMIMO triggers */
A_UINT32 num_triggers[HTT_STATS_MAX_ULMUMIMO_TRIGGERS];
/* Txop duration history from 0 to 12 ms with interval of 500us */
A_UINT32 txop_history [HTT_STATS_TXOP_HISTOGRAM_BINS];
/* ppdu_duration_hist:
* PPDU Duration History (histogram)
* Num PPDUs from 1 to 6
* 0 to 6 ms with interval of 500us
*/
A_UINT32 ppdu_duration_hist
[HTT_STATS_MAX_ULMUMIMO_TRIGGERS][HTT_STATS_MAX_PPDU_DURATION_BINS];
/* Ineligible Count for ULMUMIMO based on avg qdepth and txtime criteria */
A_UINT32 ineligible_count;
/* history_ineligibility:
* History based ineligibility counter for ULMUMIMO.
* Checks for 8 eligible instances of ULMUMIMO in the past 32 instances.
*/
A_UINT32 history_ineligibility;
} htt_stats_pdev_ulmumimo_hist_ineligibility_tlv;
/* RTT VREG MASK */
#define HTT_STATS_RTT_CHAN_CAPTURE_MASK 0x00000001
#define HTT_STATS_RTT_HW_FAC_MASK 0x00000002