Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff230196 authored by spuligil's avatar spuligil Committed by Madan Koyyalamudi
Browse files

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

Change-Id: I0c48624fea92ed8874f5da49f0a230fd19ca5cb6
WMI: add per-AC + OBSS airtime use pct stats to pdev_telemetry_stats
CRs-Fixed: 2262693
parent 46734f8d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1327,6 +1327,7 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_pifs_params,
    WMITLV_TAG_STRUC_wmi_tas_power_history_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_tas_power_history_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_ctrl_path_pmlo_stats_struct,
} WMITLV_TAG_ID;

/*
@@ -6668,7 +6669,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_btcoex_stats_struct, ctrl_path_btcoex_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_bmiss_stats_struct, ctrl_path_bmiss_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_odd_addr_read_struct, ctrl_path_odd_addr_read, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_afc_stats_struct,  ctrl_path_afc_stats, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_afc_stats_struct,  ctrl_path_afc_stats, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pmlo_stats_struct,  ctrl_path_pmlo_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);

/*
+149 −5
Original line number Diff line number Diff line
@@ -12227,6 +12227,135 @@ typedef struct {
    A_UINT32 payload_clear_count;
} wmi_ctrl_path_afc_stats_struct;
/* AT - Airtime */
/* AA - Available Airtime */
#define WMI_PMLO_UL_DL_INBSS_AT_GET_BE(airtime)         WMI_GET_BITS(airtime, 0, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_BE(airtime, value)  WMI_SET_BITS(airtime, 0, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_BK(airtime)         WMI_GET_BITS(airtime, 8, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_BK(airtime, value)  WMI_SET_BITS(airtime, 8, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_VI(airtime)         WMI_GET_BITS(airtime, 16, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_VI(airtime, value)  WMI_SET_BITS(airtime, 16, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_VO(airtime)         WMI_GET_BITS(airtime, 24, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_VO(airtime, value)  WMI_SET_BITS(airtime, 24, 8, value)
#define WMI_PMLO_LINK_OBSS_AT_GET(airtime)              WMI_GET_BITS(airtime, 0, 8)
#define WMI_PMLO_LINK_OBSS_AT_SET(airtime, value)       WMI_SET_BITS(airtime, 0, 8, value)
#define WMI_PMLO_LINK_AA_GET(airtime)                   WMI_GET_BITS(airtime, 8, 8)
#define WMI_PMLO_LINK_AA_SET(airtime, value)            WMI_SET_BITS(airtime, 8, 8, value)
#define WMI_PMLO_UL_AIRTIME_NON_AC_GET(airtime)         WMI_GET_BITS(airtime, 16, 8)
#define WMI_PMLO_UL_AIRTIME_NON_AC_SET(airtime, value)  WMI_SET_BITS(airtime, 16, 8, value)
#define WMI_PMLO_DL_AIRTIME_NON_AC_GET(airtime)         WMI_GET_BITS(airtime, 24, 8)
#define WMI_PMLO_DL_AIRTIME_NON_AC_SET(airtime, value)  WMI_SET_BITS(airtime, 24, 8, value)
/*
 * The wmi_ctrl_path_pmlo_stats_struct is used to send Provisional MLO stats
 * the WMI_CTRL_PATH_STATS_EVENT message, in response to a
 * WMI_REQUEST_CTRL_PATH_STATS_CMD message for the stat type
 * WMI_REQUEST_CTRL_PATH_PMLO_STAT.
 */
typedef struct {
    /* TLV tag and len; tag equals
     *  WMITLV_TAG_STRUC_wmi_ctrl_path_pmlo_stats_struct */
    A_UINT32 tlv_header;
    /** pdev_id for identifying the PHY */
    A_UINT32 pdev_id;
    /*
     * Percentage of downlink air time used in each access category
     * calculated InBSS, units in percentage.
     * BIT[0-7]   : AC_BE
     * BIT[8-15]  : AC_BK
     * BIT[16-23] : AC_VI
     * BIT[24-31] : AC_VO
     * Please refer to WMI_PMLO_UL_DL_INBSS_AT_* macros
     * to retrieve values for each access category in dl_inbss_airtime_per_ac.
     */
    union {
        struct {
             A_UINT32
                 dl_inbss_airtime_ac_be: 8,
                 dl_inbss_airtime_ac_bk: 8,
                 dl_inbss_airtime_ac_vi: 8,
                 dl_inbss_airtime_ac_vo: 8;
        };
        A_UINT32 dl_inbss_airtime_per_ac;
    };
    /*
     * Percentage of uplink air time used in each access category
     * calculated InBSS, units in percentage.
     * BIT[0-7]   : AC_BE
     * BIT[8-15]  : AC_BK
     * BIT[16-23] : AC_VI
     * BIT[24-31] : AC_VO
     * Please refer to WMI_PMLO_UL_DL_INBSS_AT_* macros
     * to set/get values for each access category in ul_inbss_airtime_per_ac.
     */
    union {
        struct {
            A_UINT32
                ul_inbss_airtime_ac_be: 8,
                ul_inbss_airtime_ac_bk: 8,
                ul_inbss_airtime_ac_vi: 8,
                ul_inbss_airtime_ac_vo: 8;
        };
        A_UINT32 ul_inbss_airtime_per_ac;
    };
    /*
     * Percentage of air time available for each AC, units in percentage.
     * BIT[0-7]   : AC_BE
     * BIT[8-15]  : AC_BK
     * BIT[16-23] : AC_VI
     * BIT[24-31] : AC_VO
     * Please refer to WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
     * to retrieve values for each access category in estimated_air_time_per_ac.
     */
    union {
        struct {
             A_UINT32
                 estimated_air_time_ac_be: 8,
                 estimated_air_time_ac_bk: 8,
                 estimated_air_time_ac_vi: 8,
                 estimated_air_time_ac_vo: 8;
        };
        A_UINT32 estimated_air_time_per_ac;
    };
    /*
     * Average channel latency per AC, units in micro seconds.
     * avg_chan_lat_per_ac[0] : AC_VO
     * avg_chan_lat_per_ac[1] : AC_VI
     * avg_chan_lat_per_ac[2] : AC_BE
     * avg_chan_lat_per_ac[3] : AC_BK
     */
    A_UINT32 avg_chan_lat_per_ac[WMI_AC_MAX];
    /*
     * link_obss_airtime: Percentage of OBSS used air time per link,
     * units in percentage.
     * Refer to WMI_PMLO_LINK_OBSS_AT_* Macro to set/get values.
     * link_idle_airtime: Idle/free airtime per link, units in percentage.
     * Refer to WMI_PMLO_LINK_AA_* macro to set/get values.
     * ul_inbss_airtime_non_ac: ul inBSS airtime occupied by non-AC traffic,
     * units in percentage.
     * Refer to WMI_PMLO_UL_AIRTIME_NON_AC_* macro to set/get values.
     * dl_inbss_airtime_non_ac: dl inBSS airtime occupied by non-AC traffic,
     * units in percentage.
     * Refer to WMI_PMLO_DL_AIRTIME_NON_AC_* macro to set/get values.
     */
    union {
        struct {
            A_UINT32 link_obss_airtime:       8,
                     link_idle_airtime:       8,
                     ul_inbss_airtime_non_ac: 8,
                     dl_inbss_airtime_non_ac: 8;
        };
        A_UINT32 ul_dl_obss_free_aa_word32;
    };
} wmi_ctrl_path_pmlo_stats_struct;
typedef struct {
    /** TLV tag and len; tag equals
    *  WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */
@@ -12426,7 +12555,7 @@ typedef struct{
     * BIT[8-15]  : AC_BK
     * BIT[16-23] : AC_VI
     * BIT[24-31] : AC_VO
     * Please refer WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
     * Please refer to WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
     * to retrieve values for each access category in estimated_air_time_per_ac.
     */
    A_UINT32 estimated_air_time_per_ac;
@@ -30812,6 +30941,7 @@ typedef enum {
    WMI_REQUEST_CTRL_PATH_BMISS_STAT        = 9,
    WMI_REQUEST_CTRL_PATH_ODD_ADDR_READ     = 10,
    WMI_REQUEST_CTRL_PATH_AFC_STAT          = 11,
    WMI_REQUEST_CTRL_PATH_PMLO_STAT         = 12,
} wmi_ctrl_path_stats_id;
typedef enum {
@@ -30828,6 +30958,7 @@ typedef enum {
    WMI_REQUEST_CTRL_PATH_STAT_RESET            = 2,
    WMI_REQUEST_CTRL_PATH_STAT_START            = 3,
    WMI_REQUEST_CTRL_PATH_STAT_STOP             = 4,
    WMI_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH = 5,
} wmi_ctrl_path_stats_action;
typedef enum {
@@ -30853,6 +30984,19 @@ typedef struct {
     **/
    A_UINT32 action; /* refer to wmi_ctrl_path_stats_action */
    /**
     * The stat_periodicity field is relevant only when action is set to
     * WMI_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH.
     * The units of this periodicity are milliseconds.
     * Periodically send WMI ctrl-path stats event with the specified stats
     * periodicity for the stats whose IDs are set in stats_id_mask.
     * Periodic WMI ctrl-path stats events are enabled by setting value > 0,
     * Previously onngoing periodic WMI ctrl-path stats events become
     * disabled when action is WMI_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH
     * and stat_periodicity = 0.
     */
    A_UINT32 stat_periodicity;
    /** The below TLV arrays optionally follow this fixed_param TLV structure:
     *  1.  A_UINT32 pdev_ids[];
     *      If this array is present and non-zero length, stats should only
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
#define __WMI_VER_MINOR_    0
/** WMI revision number has to be incremented when there is a
 *  change that may or may not break compatibility. */
#define __WMI_REVISION_ 1240
#define __WMI_REVISION_ 1241

/** The Version Namespace should not be normally changed. Only
 *  host and firmware of the same WMI namespace will work