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

Commit ca1d3b8d authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 43ce3ede on remote branch

Change-Id: I1d3f3e14e99a6e463da534d8d56587aa86a1250f
parents 0de206a1 43ce3ede
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -814,6 +814,7 @@ typedef enum {
    HTT_STATS_CODEL_MSDUQ_TAG                      = 189, /* htt_codel_msduq_stats_tlv */
    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_MAX_TAG,
+108 −12
Original line number Diff line number Diff line
@@ -1353,6 +1353,17 @@ typedef struct {
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_whal_tx_tlv htt_hw_stats_whal_tx_tlv;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;

    A_UINT32 wsib_event_watchdog_timeout;
    A_UINT32 wsib_event_slave_tlv_length_error;
    A_UINT32 wsib_event_slave_parity_error;
    A_UINT32 wsib_event_slave_direct_message;
    A_UINT32 wsib_event_slave_backpressure_error;
    A_UINT32 wsib_event_master_tlv_length_error;
} htt_stats_whal_wsi_tlv;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /**
@@ -5482,7 +5493,10 @@ typedef htt_stats_tx_pdev_rate_stats_be_ofdma_tlv

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /** Tx PPDU duration histogram **/
    /** tx_ppdu_dur_hist:
     * Tx PPDU duration histogram, which holds the tx duration of PPDUs
     * under histogram bins of interval 250us
     */
    A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
    A_UINT32 tx_success_time_us_low;
    A_UINT32 tx_success_time_us_high;
@@ -5490,6 +5504,11 @@ typedef struct {
    A_UINT32 tx_fail_time_us_high;
    A_UINT32 pdev_up_time_us_low;
    A_UINT32 pdev_up_time_us_high;
    /** tx_ofdma_ppdu_dur_hist:
     * Tx OFDMA PPDU duration histogram, which holds the tx duration of
     * OFDMA PPDUs under histogram bins of interval 250us
     */
    A_UINT32 tx_ofdma_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS];
} htt_stats_tx_pdev_ppdu_dur_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_pdev_ppdu_dur_tlv htt_tx_pdev_ppdu_dur_stats_tlv;
@@ -8179,6 +8198,41 @@ typedef struct {
    A_UINT32 fw_run_time;
    /** per chain runtime noise floor values in dBm */
    A_INT32 runTime_nf_chain[HTT_STATS_MAX_CHAINS];

    /** DFS SW based progressive stats - start **/

    /* current AP operating bandwidth (refer to WLAN_PHY_MODE) */
    A_UINT32 current_OBW;
    /* current AP device bandwidth (refer to WLAN_PHY_MODE) */
    A_UINT32 current_DBW;
    /* last_radar_type: last detected radar type
     * This last_radar_type field contains a value whose meaning is not
     * exposed to the host; this field is only provided for debug purposes.
     */
    A_UINT32 last_radar_type;
    /* dfs_reg_domain: curent DFS regulatory domain
     * This dfs_reg_domain field contains a value whose meaning is not
     * exposed to the host; this field is only provided for debug purposes.
     */
    A_UINT32 dfs_reg_domain;
    /* radar_mask_bit: Radar mask setting programmed in HW registers.
     * Each bit represents a 20 MHz portion of the channel.
     * Bit 0 represents the highest 20 MHz portion within the channel.
     * For example...
     * For a 80 MHz channel, bit0 = highest 20 MHz, bit3 = lowest 20 MHz
     * For a 320 MHz channel, bit0 = highest 20 MHz, bit15 = lowest 20 MHz
     */
    A_UINT32 radar_mask_bit;
    /* DFS radar rssi threshold (units = dBm) */
    A_INT32 radar_rssi;
    /* DFS global flags (refer to IEEE80211_CHAN_* defines) */
    A_UINT32 radar_dfs_flags;
    /* band center frequency of operating bandwidth (units = MHz) */
    A_UINT32 band_center_frequency_OBW;
    /* band center frequency of device bandwidth (units = MHz) */
    A_UINT32 band_center_frequency_DBW;

    /** DFS SW based progressive stats - end **/
} htt_stats_phy_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_phy_stats_tlv htt_phy_stats_tlv;
@@ -8993,14 +9047,19 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
#define HTT_ML_PEER_DETAILS_LINK_INIT_COUNT_S               19
#define HTT_ML_PEER_DETAILS_NON_STR_M                       0x00400000
#define HTT_ML_PEER_DETAILS_NON_STR_S                       22
#define HTT_ML_PEER_DETAILS_EMLSR_M                         0x00800000
#define HTT_ML_PEER_DETAILS_EMLSR_S                         23
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M               0x00800000
#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S               23
  /* for backwards compatibility, retain the old EMLSR name of the bitfield */
  #define HTT_ML_PEER_DETAILS_EMLSR_M HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M
  #define HTT_ML_PEER_DETAILS_EMLSR_S HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S
#define HTT_ML_PEER_DETAILS_IS_STA_KO_M                     0x01000000
#define HTT_ML_PEER_DETAILS_IS_STA_KO_S                     24
#define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_M               0x06000000
#define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_S               25
#define HTT_ML_PEER_DETAILS_ALLOCATED_M                     0x08000000
#define HTT_ML_PEER_DETAILS_ALLOCATED_S                     27
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M                 0x10000000
#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S                 28

#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M    0x000000ff
#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S    0
@@ -9071,16 +9130,31 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
        ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_NON_STR_S)); \
    } while (0)

#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_GET(_var) \
    (((_var) & HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M) >> \
     HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S)

#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE, _val); \
        ((_var) &= ~(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M)); \
        ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S)); \
    } while (0)

    /* start deprecated:
     * For backwards compatibility, retain a macro definition that uses
     * the old EMLSR name of the bitfield
     */
    #define HTT_ML_PEER_DETAILS_EMLSR_GET(_var) \
        (((_var) & HTT_ML_PEER_DETAILS_EMLSR_M) >> \
         HTT_ML_PEER_DETAILS_EMLSR_S)

    #define HTT_ML_PEER_DETAILS_EMLSR_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR, _val); \
            ((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_M)); \
            ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_S)); \
        } while (0)
    /* end deprecated */

#define HTT_ML_PEER_DETAILS_IS_STA_KO_GET(_var) \
    (((_var) & HTT_ML_PEER_DETAILS_IS_STA_KO_M) >> \
@@ -9115,6 +9189,18 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv;
        ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_ALLOCATED_S)); \
    } while (0)

#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_GET(_var) \
    (((_var) & HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M) >> \
     HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S)

#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT, _val); \
        ((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M)); \
        ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S)); \
    } while (0)


#define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_GET(_var) \
    (((_var) & HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M) >> \
     HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S)
@@ -9137,11 +9223,21 @@ typedef struct {
                     primary_chip_id   : 2,
                     link_init_count   : 3,
                     non_str           : 1,
                     emlsr             : 1,
                     is_emlsr_active   : 1,
                     is_sta_ko         : 1,
                     num_local_links   : 2,
                     allocated         : 1,
                     reserved          : 4;
                     emlsr_support     : 1,
                     reserved          : 3;
        };
        struct {
            /*
             * For backwards compatibility, use a dummy union element to
             * retain the old "emlsr" name for the "is_emlsr_active" bitfield.
             */
            A_UINT32 dummy1 : 23,
                     emlsr  : 1,
                     dummy2 : 8;
        };
        A_UINT32 msg_dword_1;
    };
+1 −0
Original line number Diff line number Diff line
@@ -647,6 +647,7 @@ typedef enum {
    WMI_SERVICE_PDEV_PARAM_IN_UTF_WMI = 394, /* FW supports receiving and sending pdev_id parameter in WMI_PDEV_UTF_(CMD/EVENT) */
    WMI_SERVICE_SW_PROG_DFS_SUPPORT = 395, /* Indicate FW support SW progressive DFS */
    WMI_SERVICE_MULTIPLE_REORDER_QUEUE_SETUP_SUPPORT = 396, /* Indicate FW supports multiple TID reorder queues setup in one cmd */
    WMI_SERVICE_MULTIPLE_COEX_CONFIG_SUPPORT = 397, /* FW supports mutiple coex configs in one cmd */

    WMI_MAX_EXT2_SERVICE

+20 −1
Original line number Diff line number Diff line
@@ -1417,6 +1417,10 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_dbw_chan_info,
    WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t,
    WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param,
    WMITLV_TAG_STRUC_wmi_led_blink_rate_table,
    WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param,
} WMITLV_TAG_ID;
/*
 * IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -1957,6 +1961,8 @@ typedef enum {
    OP(WMI_VDEV_OOB_CONNECTION_REQ_CMDID) \
    OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \
    OP(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID) \
    OP(WMI_COEX_MULTIPLE_CONFIG_CMDID) \
    OP(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -5192,7 +5198,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_DURATION_BASED_TX_MODE_SELECTION_CMDID
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap2, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_disallowed_mlo_mode_bitmap_param, disallow_mode_param,  WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID);

/* Request DPD Status */
@@ -5518,6 +5525,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);
        WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, wmi_pdev_wsi_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WSI_STATS_INFO_CMDID);

/* Data Rate based GPIO LED blink and Rate Table Download command */
#define WMITLV_TABLE_WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param, wmi_enable_led_blink_download_rate_table_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC,wmi_led_blink_rate_table, led_blink_rate_table, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID);

/* CSA status indication  command to inform FW about host accepting or rejecting csa event*/
#define WMITLV_TABLE_WMI_CSA_EVENT_STATUS_INDICATION_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param ,  wmi_csa_event_status_ind_fixed_param,fixed_param, WMITLV_SIZE_FIX)
@@ -5531,6 +5544,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CSA_EVENT_STATUS_INDICATION_CMDID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_oob_connection_req_cmd_fixed_param, wmi_vdev_oob_connection_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_OOB_CONNECTION_REQ_CMDID);

/* Multiple BTCOEX config commands. */
#define WMITLV_TABLE_WMI_COEX_MULTIPLE_CONFIG_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, wmi_coex_multiple_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_CONFIG_CMD_fixed_param, config_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_COEX_MULTIPLE_CONFIG_CMDID);



/************************** TLV definitions of WMI events *******************************/
+180 −2
Original line number Diff line number Diff line
@@ -516,6 +516,11 @@ typedef enum {
    WMI_PDEV_SET_RF_PATH_CMDID,
    /** WSI stats info WMI command */
    WMI_PDEV_WSI_STATS_INFO_CMDID,
    /*
     * WMI cmd to Enable LED blink based on Tx+Rx Data Rate
     * and download LED ON/OFF Rate table
     */
    WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID,
    /* VDEV (virtual device) specific commands */
@@ -1379,6 +1384,7 @@ typedef enum {
    WMI_COEX_DBAM_CMDID,
    WMI_TAS_POWER_HISTORY_CMDID,
    WMI_ESL_EGID_CMDID,
    WMI_COEX_MULTIPLE_CONFIG_CMDID,
    /**
     *  OBSS scan offload enable/disable commands
@@ -4626,7 +4632,12 @@ typedef struct {
     *      Refer to the below definitions of the
     *      WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_GET
     *      and _SET macros.
     *  Bits 31:15 - Reserved
     *  Bit 15
     *      This bit will be set if the has qms_dlkm support enabled.
     *      Refer to the below definitions of the
     *      WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET
     *      and _SET macros.
     *  Bits 31:16 - Reserved
     */
    A_UINT32 host_service_flags;
@@ -5074,6 +5085,11 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 14, 1, val)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET(host_service_flags) \
    WMI_GET_BITS(host_service_flags, 15, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 15, 1, val)
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \
    WMI_GET_BITS(carrier_config, 0, 1)
@@ -9338,6 +9354,21 @@ typedef enum {
    /** Parameter to enable/disable tid0 and tid3 mapping to work 3 Link MLO */
    WMI_PDEV_PARAM_TID_MAPPING_3LINK_MLO,
    /** Parameter to enable/disable small OFDMA M-RUs **/
    WMI_PDEV_PARAM_ENABLE_SMALL_MRU,
    /** Parameter to enable/disable large OFDMA M-RUs **/
    WMI_PDEV_PARAM_ENABLE_LARGE_MRU,
    /** Parameter to enable/disable delayed LMR feedback.
     * Note: Delayed LMR feedback is supported only up to two ranging peers to
     * enable Location certification
     * 0 - Immediate LMR feedback is enabled for all ranging peers.
     * 1 (non zero) - delayed LMR feedback is enabled. Third peer onward will
     *     default to immediate LMR feedback.
     **/
    WMI_PDEV_PARAM_ENABLE_DELAYED_LMR_FEEDBACK,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@@ -31273,8 +31304,16 @@ typedef enum {
    TSF_TSTAMP_QTIMER_CAPTURE_REQ = 4,
    TSF_TSTAMP_AUTO_REPORT_ENABLE = 5,
    TSF_TSTAMP_AUTO_REPORT_DISABLE = 6,
    TSF_TSTAMP_PERIODIC_REPORT_REQ = 5,
} wmi_tsf_tstamp_action;
typedef enum {
    TSF_TSTAMP_REPORT_TTIMER = 0x1, /* bit 0: TSF Timer */
    TSF_TSTAMP_REPORT_QTIMER = 0x2, /* bit 1: H/T common Timer */
} wmi_tsf_tstamp_report_flags;
#define TSF_TSTAMP_REPORT_PERIOD_MIN   1000    /* ms units */
typedef struct {
    /** TLV tag and len; tag equals
     * WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param */
@@ -31283,6 +31322,12 @@ typedef struct {
    A_UINT32 vdev_id;
    /* action type, refer to wmi_tsf_tstamp_action */
    A_UINT32 tsf_action;
    /*
     * The below fields are valid only when tsf_action is
     * TSF_TSTAMP_PERIODIC_REPORT_REQ.
     */
    A_UINT32 period; /* the period of report timestamp, ms units */
    A_UINT32 flags;  /* wmi_tsf_tstamp_report_flags */
} wmi_vdev_tsf_tstamp_action_cmd_fixed_param;
typedef struct {
@@ -34694,7 +34739,7 @@ typedef enum wmi_coex_config_type {
} WMI_COEX_CONFIG_TYPE;
typedef struct {
    A_UINT32 tlv_header;
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param */
    A_UINT32 vdev_id;
    A_UINT32 config_type; /* wmi_coex_config_type enum */
    A_UINT32 config_arg1;
@@ -34705,6 +34750,14 @@ typedef struct {
    A_UINT32 config_arg6;
} WMI_COEX_CONFIG_CMD_fixed_param;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param */
    /*
     * This struct is followed by other TLVs:
     *   WMI_COEX_CONFIG_CMD_fixed_param config_list[num_config];
     */
} wmi_coex_multiple_config_cmd_fixed_param;
typedef enum wmi_coex_dbam_mode_type {
    WMI_COEX_DBAM_DISABLE = 0,
    WMI_COEX_DBAM_ENABLE = 1,
@@ -37054,6 +37107,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
        WMI_RETURN_STRING(WMI_VDEV_OOB_CONNECTION_REQ_CMDID);
        WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID);
        WMI_RETURN_STRING(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID);
        WMI_RETURN_STRING(WMI_COEX_MULTIPLE_CONFIG_CMDID);
        WMI_RETURN_STRING(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID);
    }
    return (A_UINT8 *) "Invalid WMI cmd";
@@ -40320,6 +40375,14 @@ typedef struct {
    A_UINT32 scoring_capability_bitmap;
} wmi_roam_capability_report_event_fixed_param;
/*
 * Definition of disallow connection modes.
 */
typedef enum {
    /* Bit 0: roam to 5GL+5GH MLSR is not allowed if the bit is set. */
    WMI_ROAM_MLO_CONNECTION_MODE_5GL_5GH_MLSR = 0x1,
} WMI_ROAM_MLO_CONNECTION_MODES;
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param */
    wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */
@@ -40339,6 +40402,13 @@ typedef struct {
     */
    A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */
    A_UINT32 max_active_links; /* Max active links supported for STA */
    /*
     * Disallow the specified connection mode(s) when roaming to MLD AP.
     * Refer to the WMI_ROAM_MLO_CONNECTION_MODES enum for the connection mode
     * each bit represents.
     */
    A_UINT32 disallow_connect_modes;
} wmi_roam_mlo_config_cmd_fixed_param;
typedef struct {
@@ -43828,6 +43898,7 @@ enum wmi_oem_data_evt_cause {
    WMI_OEM_DATA_EVT_CAUSE_UNSPECIFIED = 0,
    WMI_OEM_DATA_EVT_CAUSE_CMD_REQ = 1,
    WMI_OEM_DATA_EVT_CAUSE_ASYNC = 2,
    WMI_OEM_DATA_EVT_CAUSE_QMS = 3,
};
typedef struct {
@@ -44655,6 +44726,7 @@ typedef enum {
    WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM      = 4, /* Force inactive a number of links, firmware to decide which links to inactive */
    WMI_MLO_LINK_NO_FORCE                     = 5, /* Cancel the force operation of specific links, allow firmware to decide */
    WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE        = 6, /* combination of force specific links active & force specific links inactive */
    WMI_MLO_LINK_NON_FORCE_UPDATE             = 7, /* Used when host wants to update other fields like disallow_mlo_mode_bmap */
} WMI_MLO_LINK_FORCE_MODE;
typedef enum {
@@ -44748,6 +44820,8 @@ typedef struct wmi_mlo_link_set_active_cmd
 *     For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE ieee_link_id_bitmap2[]
 *     carry the inactive linkid bitmap.
 *     In other cases the length of the array should be 0.
 *---
 * wmi_disallowed_mlo_mode_bitmap_param_t disallow_mlo_mode_bmap[];
 */
} wmi_mlo_link_set_active_cmd_fixed_param;
@@ -44769,6 +44843,77 @@ typedef struct wmi_mlo_set_active_link_number_param
} wmi_mlo_set_active_link_number_param;
#define WMI_MLO_MODE_MLMR  0x1;
#define WMI_MLO_MODE_EMLSR 0x2;
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID1(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 0, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 0, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID2(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 8, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 8, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID3(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 16, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID3(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 16, 8, value)
#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID4(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 24, 8)
#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID4(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 24, 8, value)
typedef struct wmi_disallowed_mlo_mode_bitmap_param
{
    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param */
    A_UINT32 tlv_header;
    /** disallowed_mode_bitmap:
     * Bitmap of MLO Modes like MLMR, eMLSR which are not allowed.
     * Refer to WMI_MLO_MODE_*
     * disallowed_mode_bitmap          Meaning
     * ======================          =================
     *   0x0                           No restriction
     *   0x1                           MLMR is not allowed
     *   0x2                           EMLSR is not allowed
     *   0x3                           MLMR and EMLSR are not allowed
     */
    A_UINT32 disallowed_mode_bitmap;
    /** ieee_link_id_comb:
     * Give combination of IEEE link IDs for which above disallowed_mode_bitmap
     * is applicable.
     * Each 8-bits in ieee_link_id_comb represents one link ID.
     * Use WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID* and _SET_LINK_ID* to get/set
     * link IDs in this field.
     */
    A_UINT32 ieee_link_id_comb;
    /** Example:
     * Say there are 3 MLO links with ieee link IDs as 1,2 and 32.
     * Say host wants to disallow MLMR between links with IDs 1 and 2,
     *                   disallow eMLSR between links with IDs 1 and 32,
     *                   disallow MLMR and eMLSR for links with IDs 2 and 32.
     * There will be 3 TLVs of type wmi_disallowed_mlo_mode_bitmap_param
     * like below.
     *
     *  wmi_disallowed_mlo_mode_bitmap_param[0]:
     *       disallowed_mode_bitmap = 0x1,
     *       ieee_link_id_comb = 0x00000201
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1)
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x2)
     *
     *  wmi_disallowed_mlo_mode_bitmap_param[1]
     *       disallowed_mode_bitmap = 0x2,
     *       ieee_link_id_comb = 0x00002001
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1)
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20)
     *
     *  wmi_disallowed_mlo_mode_bitmap_param[2]
     *       disallowed_mode_bitmap = 0x3,
     *       ieee_link_id_comb = 0x00002002
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x2)
     *          WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20)
     */
} wmi_disallowed_mlo_mode_bitmap_param;
typedef enum {
    WMI_MLO_LINK_SET_ACTIVE_STATUS_SUCCESS     = 0,
    WMI_MLO_LINK_SET_ACTIVE_STATUS_HOST_REJECT = 1,
@@ -47115,6 +47260,39 @@ typedef struct {
    A_UINT32 pdev_id;
} wmi_pdev_utf_event_fixed_param;
typedef struct {
    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_led_blink_rate_table */
    A_UINT32 tlv_header;
    A_UINT32 on_time;  /* units = milliseconds */
    A_UINT32 off_time; /* units = milliseconds */
} wmi_led_blink_rate_table;
typedef struct {
    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param */
    A_UINT32 tlv_header;
    /* Pdev Id 0 or 1 based on split phy */
    A_UINT32 pdev_id;
    /* Feature enable or disable flag 0-disable 1-enable  */
    A_UINT32 blink_enable_flag;
    /* Bandwidth (Mbps) of each index in the blink rate table.
     * This quantum specification tells the FW which of the blink rate table
     * elements to use; the FW will divide the data rate by this bw_per_index
     * and round down, to obtain the index into the rate table for the blink
     * rate corresponding to the data rate.
     */
    A_UINT32 bw_per_index;
    /**
     * Following this fixed_param TLV are the following additional TLVs:
     *   - wmi_led_blink_rate_table led_blink_rate_table[]
     *     The led_blink_rate_table[] elements need to be ordered by
     *     increasing data rate, so that by dividing the data rate by
     *     bw_per_index, the FW can find which index/element of the
     *     led_blink_rate_table[] array to use.
     */
} wmi_enable_led_blink_download_rate_table_fixed_param;
typedef enum {
    /* Used when peer attempts connection with vdev */
    VDEV_OOB_CONNECT_REQUEST = 0,
Loading