From 3e97faa4522f44e100a4080b79d2510831ae39bc Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 4 Jan 2024 12:02:39 -0800 Subject: [PATCH] fw-api: CL 25734374 - update fw common interface files HTT stats: modify latency_prof_cal_stats struct Change-Id: Id5df11299388b367101eb38bd52b2941c87fc348 CRs-Fixed: 2262693 --- fw/htt.h | 3 +- fw/htt_stats.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 76 insertions(+), 5 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 3aeba5a656..96c8f1e7e6 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -790,7 +790,7 @@ typedef enum { HTT_STATS_PDEV_SCHED_ALGO_OFDMA_STATS_TAG = 165, /* htt_pdev_sched_algo_ofdma_stats_tlv, PUBLISH_FUNC=create_json_response_for_htt_pdev_sched_algo_ofdma_stats */ HTT_DBG_ODD_MANDATORY_MUMIMO_TAG = 166, /* htt_odd_mandatory_mumimo_pdev_stats_tlv */ HTT_DBG_ODD_MANDATORY_MUOFDMA_TAG = 167, /* htt_odd_mandatory_muofdma_pdev_stats_tlv */ - HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */ + HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv - DEPRECATED */ HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v - DEPRECATED */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v, TOPIC=advanced */ @@ -815,6 +815,7 @@ typedef enum { HTT_STATS_MLO_SCHED_STATS_TAG = 190, /* htt_mlo_sched_stats_tlv */ HTT_STATS_PDEV_MLO_IPC_STATS_TAG = 191, /* htt_pdev_mlo_ipc_stats_tlv */ HTT_STATS_WHAL_WSI_TAG = 192, /* htt_stats_whal_wsi_tlv */ + HTT_STATS_LATENCY_PROF_CAL_DATA_TAG = 193, /* htt_stats_latency_prof_cal_data_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 5018aa88b8..eda2748aa6 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -500,7 +500,7 @@ enum htt_dbg_ext_stats_type { * params: * None * Response MSG: - * htt_latency_prof_cal_stats_tlv + * htt_stats_latency_prof_cal_data_tlv */ HTT_DBG_EXT_PHY_PROF_CAL_STATS = 52, @@ -8726,7 +8726,7 @@ enum { }; #define HTT_STATS_MAX_CAL_IDX_CNT 8 -typedef struct { +typedef struct { /* DEPRECATED */ htt_tlv_hdr_t tlv_hdr; @@ -8781,9 +8781,77 @@ typedef struct { /** No of indices invoked per each cal profile */ A_UINT32 CalCnt[HTT_STATS_MAX_PROF_CAL]; -} htt_stats_latency_prof_cal_stats_tlv; +} htt_stats_latency_prof_cal_stats_tlv; /* DEPRECATED */ /* preserve old name alias for new name consistent with the tag name */ -typedef htt_stats_latency_prof_cal_stats_tlv htt_latency_prof_cal_stats_tlv; +typedef htt_stats_latency_prof_cal_stats_tlv htt_latency_prof_cal_stats_tlv; /* DEPRECATED */ + +typedef struct { + /** The cnt is incremented when each time the calindex takes place */ + A_UINT32 cnt; + + /** Minimum time taken to complete the calibration - in us */ + A_UINT32 min; + + /** Maximum time taken to complete the calibration -in us */ + A_UINT32 max; + + /** Time taken by the cal for its final time execution - in us */ + A_UINT32 last; + + /** Total time taken - in us */ + A_UINT32 tot; + + /** hist_intvl - in us, by default will be set to 2000 us */ + A_UINT32 hist_intvl; + + /** + * If last is less than hist_intvl, then hist[0]++, + * If last is less than hist_intvl << 1, then hist[1]++, + * otherwise hist[2]++. + */ + A_UINT32 hist[HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST]; + + /** pf_last will log the current no of page faults */ + A_UINT32 pf_last; + + /** Sum of all page faults happened */ + A_UINT32 pf_tot; + + /** If pf_last > pf_max then pf_max = pf_last */ + A_UINT32 pf_max; + + /** + * For each cal profile, only certain no of cal indices were invoked, + * this member will store what all the indices got invoked per each + * cal profile + */ + A_UINT32 enabled_cal_idx; + +/* + * NOTE: due to backwards-compatibility requirements, + * no fields can be added to this struct. + */ +} htt_stats_latency_prof_cal_data; + +typedef struct { + + htt_tlv_hdr_t tlv_hdr; + + /** To verify whether prof cal is enabled or not */ + A_UINT32 enable; + + /** current pdev_id */ + A_UINT32 pdev_id; + + /** No of indices invoked per each cal profile */ + A_UINT32 cal_cnt[HTT_STATS_MAX_PROF_CAL]; + + /** Latency Cal Profile name */ + A_UINT8 latency_prof_name[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_PROF_STATS_NAME_LEN]; + + /** Latency Cal data */ + htt_stats_latency_prof_cal_data latency_data[HTT_STATS_MAX_PROF_CAL][HTT_STATS_MAX_CAL_IDX_CNT]; +} htt_stats_latency_prof_cal_data_tlv; #define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_M 0x0000003F #define HTT_ML_PEER_EXT_DETAILS_PEER_ASSOC_IPC_RECVD_S 0 @@ -10508,6 +10576,7 @@ typedef enum { HTT_CTRL_PATH_STATS_CAL_TYPE_PEF = 0x16, HTT_CTRL_PATH_STATS_CAL_TYPE_PADROOP = 0x17, HTT_CTRL_PATH_STATS_CAL_TYPE_SELFCALTPC = 0x18, + HTT_CTRL_PATH_STATS_CAL_TYPE_RXSPUR = 0x19, /* add new cal types above this line */ HTT_CTRL_PATH_STATS_CAL_TYPE_INVALID = 0xFF @@ -10556,6 +10625,7 @@ static INLINE A_UINT8 *htt_ctrl_path_cal_type_id_to_name(A_UINT32 cal_type_id) HTT_RETURN_STRING(HTT_CTRL_PATH_STATS_CAL_TYPE_PEF); HTT_RETURN_STRING(HTT_CTRL_PATH_STATS_CAL_TYPE_PADROOP); HTT_RETURN_STRING(HTT_CTRL_PATH_STATS_CAL_TYPE_SELFCALTPC); + HTT_RETURN_STRING(HTT_CTRL_PATH_STATS_CAL_TYPE_RXSPUR); } return (A_UINT8 *) "HTT_CTRL_PATH_STATS_CAL_TYPE_UNKNOWN";