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

Commit 9481e99c authored by spuligil's avatar spuligil
Browse files

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

Change-Id: Ie5d216c76b6399483af9cfa206ceab92447a21b5
WMI: allow sched modes to be disabled per pdev, vdev, peer, or svc class
CRs-Fixed: 2262693
parent ec38a67b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -608,6 +608,7 @@ typedef enum {
    WMI_SERVICE_SLO_SUPPORTED = 355, /* Support for Single Link 11BE */
    WMI_SERVICE_RTT_11AZ_TB_RSTA_SUPPORT = 356, /* FW support for 11AZ trigger based ranging Responder (RSTA) role */
    WMI_SERVICE_SUPPORT_11D_FOR_HOST_SCAN = 357,
    WMI_SERVICE_DETERMINISTIC_SCHEDULER_LEVEL0 = 358, /* FW supports 12.2 level scheduler mode disable commands and stats */


    WMI_MAX_EXT2_SERVICE
+8 −0
Original line number Diff line number Diff line
@@ -1330,6 +1330,8 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_ctrl_path_pmlo_stats_struct,
    WMITLV_TAG_STRUC_wmi_ctrl_path_cfr_stats_struct,
    WMITLV_TAG_STRUC_WMI_COEX_FIX_CHANNEL_CAPABILITIES,
    WMITLV_TAG_STRUC_wmi_peer_sched_mode_disable_fixed_param,
    WMITLV_TAG_STRUC_wmi_per_peer_sched_mode_disable,
} WMITLV_TAG_ID;

/*
@@ -1844,6 +1846,7 @@ typedef enum {
    OP(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID) \
    OP(WMI_VDEV_SET_TWT_EDCA_PARAMS_CMDID) \
    OP(WMI_TAS_POWER_HISTORY_CMDID) \
    OP(WMI_PEER_SCHED_MODE_DISABLE_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -5240,6 +5243,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, odd_livedump_id_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_REQUEST_CMDID);

#define WMITLV_TABLE_WMI_PEER_SCHED_MODE_DISABLE_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_sched_mode_disable_fixed_param, wmi_peer_sched_mode_disable_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_per_peer_sched_mode_disable, peer_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SCHED_MODE_DISABLE_CMDID);



/************************** TLV definitions of WMI events *******************************/
+123 −1
Original line number Diff line number Diff line
@@ -739,6 +739,9 @@ typedef enum {
    /** flush specific tid queues of a peer */
    WMI_PEER_FLUSH_POLICY_CMDID,
    /* Set disabled scheduler modes for one or more peers */
    WMI_PEER_SCHED_MODE_DISABLE_CMDID,
    /* beacon/management specific commands */
@@ -7927,6 +7930,21 @@ typedef enum {
#define WMI_PDEV_PARAM_IS_HIGHER_MCS_XRETRY_RESTRICTION_SET(word32) WMI_F_MS(word32, WMI_PDEV_PARAM_HIGHER_MCS_XRETRY_RESTRICTION)
#define WMI_PDEV_PARAM_GET_XRETRY_THRESHOLD(word32)                 WMI_F_MS(word32, WMI_PDEV_PARAM_XRETRY_THRESHOLD)
/*
 * The WMI_SCHED_MODE_FLAGS enum is used by the following WMI commands:
 *
 *     WMI_VDEV_PARAM_SET_DISABLED_SCHED_MODES
 *     WMI_PDEV_PARAM_SET_DISABLED_SCHED_MODES
 *     WMI_PEER_SCHED_MODE_DISABLE_CMDID
 *     WMI_SAWF_SVC_CLASS_CFG_CMDID
 */
typedef enum {
    WMI_SCHED_MODE_DL_MU_MIMO = 0x00000001,
    WMI_SCHED_MODE_UL_MU_MIMO = 0x00000002,
    WMI_SCHED_MODE_DL_OFDMA   = 0x00000004,
    WMI_SCHED_MODE_UL_OFDMA   = 0x00000008,
} WMI_SCHED_MODE_FLAGS;
typedef enum {
    /** TX chain mask */
    WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
@@ -8932,6 +8950,34 @@ typedef enum {
     * based ranging.
     */
    WMI_PDEV_PARAM_RTT_11AZ_RSID_RANGE,
    /*
     * Disable the indicated DL and UL scheduler for the PDEV.
     *
     * This command is not supported in STA mode.
     *
     * A value of 1 in a given bit position disables the corresponding mode,
     * and a value of 0 enables the mode. The WMI_SCHED_MODE_FLAGS enum defines
     * the bit positions for each mode.
     *
     * A single 32 bit value is used to store the following configuration
     * bitmap.
     *
     * This command differs from WMI_VDEV_PARAM_SET_HEMU_MODE and
     * WMI_VDEV_PARAM_SET_EHT_MU_MODE in that it is intended for use during
     * normal AP operation, and will never cause a VAP restart or other
     * capability bit modification. It simply controls the scheduler
     * behavior.
     *
     * bit   | sched mode
     * ---------------
     *   0   | DL MU-MIMO
     *   1   | UL MU-MIMO
     *   2   | DL OFDMA
     *   3   | UL OFDMA
     * 4..31 | RESERVED
     */
    WMI_PDEV_PARAM_SET_DISABLED_SCHED_MODES,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@@ -15137,6 +15183,34 @@ typedef enum {
         */
        WMI_VDEV_PARAM_EXTRA_EHT_LTF,                  /* 0x8011 */
        /*
         * Disable the indicated DL and UL scheduler for the VDEV.
         *
         * This command is not supported in STA mode.
         *
         * A value of 1 in a given bit position disables the corresponding
         * mode, and a value of 0 enables the mode. The WMI_SCHED_MODE_FLAGS
         * enum defines the bit positions for each mode.
         *
         * A single 32 bit value is used to store the following configuration
         * bitmap.
         *
         * This command differs from WMI_VDEV_PARAM_SET_HEMU_MODE and
         * WMI_VDEV_PARAM_SET_EHT_MU_MODE in that it is intended for use during
         * normal AP operation, and will never cause a VAP restart or other
         * capability bit modification. It simply controls the scheduler
         * behavior.
         *
         * bit   | sched mode
         * ---------------
         *   0   | DL MU-MIMO
         *   1   | UL MU-MIMO
         *   2   | DL OFDMA
         *   3   | UL OFDMA
         * 4..31 | RESERVED
         */
        WMI_VDEV_PARAM_SET_DISABLED_SCHED_MODES,       /* 0x8012 */
    /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/
} WMI_VDEV_PARAM;
@@ -40782,6 +40856,7 @@ typedef enum {
    WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_PRIORITY       = 0,
    WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_TID            = 0xffffffff,
    WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MSDU_LOSS_RATE = 0,
    WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_DISABLED_SCHED_MODE = 0,
} WMI_SAWF_SVC_CLASS_PARAM_DEFAULTS;
typedef struct {
@@ -40863,6 +40938,17 @@ typedef struct {
     * since 100 / 1000000 = 1 / 10000.
     */
    A_UINT32 msdu_loss_rate_ppm;
    /*
     * The disabled DL and UL scheduler modes bitmap.
     *
     * Each bit in the "disabled_sched_modes" bitmap indicates whether a
     * specific scheduler mode may be selected by the fast loop scheduler. A
     * "1" bit indicates that mode is disabled, and a "0" bit indicates the
     * mode is enabled.
     *
     * The WMI_SCHED_MODE_FLAGS enum defines the bit positions for each mode.
     */
    A_UINT32 disabled_sched_modes;
} wmi_sawf_svc_class_cfg_cmd_fixed_param;
typedef struct {
@@ -41167,6 +41253,42 @@ typedef struct {
    */
} wmi_mlo_link_removal_cmd_fixed_param;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_per_peer_sched_mode_disable */
    /* Peer MAC Address */
    wmi_mac_addr peer_macaddr;
    /*
     * The disabled DL and UL scheduler modes bitmap.
     *
     * This command is not supported in STA mode.
     *
     * A value of 1 in a given bit position disables the corresponding mode,
     * and a value of 0 enables the mode. The WMI_SCHED_MODE_FLAGS enum defines
     * the bit positions for each mode.
     *
     * A single 32 bit value is used to store the following configuration
     * bitmap.
     *
     * bit   | sched mode
     * ---------------
     *   0   | DL MU-MIMO
     *   1   | UL MU-MIMO
     *   2   | DL OFDMA
     *   3   | UL OFDMA
     * 4..31 | RESERVED
     */
    A_UINT32 disabled_sched_modes;
} wmi_per_peer_sched_mode_disable;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_sched_mode_disable_fixed_param */
    A_UINT32 pdev_id;
    /* The TLVs for each peer follows:
     *     wmi_per_peer_sched_mode_disable per_peer_sched_mode_disable[];
     */
} wmi_peer_sched_mode_disable_fixed_param;
+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_ 1253
#define __WMI_REVISION_ 1254

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