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

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

Merge 9ab4df60 on remote branch

Change-Id: Ic066714877ca71876ee0d235ceba8456ec38e9dd
parents 13df6026 9ab4df60
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012, 2014-2017, 2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
@@ -61,7 +61,10 @@ typedef enum {
#define WMI_CONTROL_SVC_WMAC2  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,6)
#define WMI_CONTROL_DIAG_SVC   MAKE_SERVICE_ID(WMI_SERVICE_GROUP,7)
#define WMI_CONTROL_DBR_SVC    MAKE_SERVICE_ID(WMI_SERVICE_GROUP,8)
#define WMI_MAX_SERVICES  9
/* WMI_CONTROL_SVC_WMAC3,4: WMI service for MACs 3 and 4 (where applicable) */
#define WMI_CONTROL_SVC_WMAC3  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,9)
#define WMI_CONTROL_SVC_WMAC4  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,10)
#define WMI_MAX_SERVICES  11

#define NMI_CONTROL_SVC   MAKE_SERVICE_ID(NMI_SERVICE_GROUP,0)
#define NMI_DATA_SVC      MAKE_SERVICE_ID(NMI_SERVICE_GROUP,1)
+2 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
@@ -152,6 +153,7 @@ typedef enum {
  WLAN_MODULE_BAR,                      /* 0x70 */
  WLAN_MODULE_SMART_TX,                 /* 0x71 */
  WLAN_MODULE_BRIDGE_PEER,              /* 0x72 */
  WLAN_MODULE_AUX_MAC_MGR,              /* 0x73 */


  WLAN_MODULE_ID_MAX,
+3 −0
Original line number Diff line number Diff line
@@ -629,6 +629,9 @@ typedef enum {
    WMI_SERVICE_RESTRICTED_TWT_RESPONDER = 376, /* Indicates FW supports Restricted TWT RESPONDER */
    WMI_SERVICE_AUX_MAC_SUPPORT = 377,
    WMI_SERVICE_NAN_PAIRING_PEER_CREATE_BY_HOST = 378, /* Indicate FW supports creation of PASN Peer by Host for NAN pairing usecase */
    WMI_SERVICE_MLO_TID_TO_LINK_MAPPING_SUPPORT = 379, /* Indicates FW supports TID-TO-LINK mapping */
    WMI_SERVICE_PER_LINK_STATS_SUPPORT = 380, /* Indicates FW supports per link stats for MLO */
    WMI_SERVICE_N_LINK_MLO_SUPPORT = 381,  /* Indicate FW supports N MLO link & vdev re-purpose between links */

    WMI_MAX_EXT2_SERVICE

+33 −2
Original line number Diff line number Diff line
@@ -1376,6 +1376,11 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_gpio_state_req_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_gpio_state_res_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_stats_struct,
    WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_link_bss_param,
    WMITLV_TAG_STRUC_wmi_mlo_set_link_bss_params_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param,
} WMITLV_TAG_ID;
/*
 * IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -2215,6 +2220,7 @@ typedef enum {
    OP(WMI_VENDOR_PDEV_EVENTID) \
    OP(WMI_VENDOR_VDEV_EVENTID) \
    OP(WMI_VENDOR_PEER_EVENTID) \
    OP(WMI_PDEV_SET_RF_PATH_RESP_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -5103,7 +5109,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_DURATION_BASED_TX_MODE_SELECTION_CMDID
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_set_active_cmd_fixed_param, wmi_mlo_link_set_active_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_set_active_link_number_param, link_number_param,  WMITLV_SIZE_VAR) \
    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, 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_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID);

/* Request DPD Status */
@@ -5395,6 +5403,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_CMDID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_CMDID);

/* SET MLO link BSS param */
#define WMITLV_TABLE_WMI_MLO_LINK_SET_BSS_PARAMS_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_set_link_bss_params_cmd_fixed_param, wmi_mlo_set_link_bss_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_bss_param, link_bss_params, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID);

/* MLO link switch confirmation command to inform FW about host side status and reason code */
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_CONF_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param, wmi_mlo_link_switch_cnf_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);



/************************** TLV definitions of WMI events *******************************/
@@ -5818,6 +5837,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_INPUT_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_state_res_event_fixed_param, wmi_gpio_state_res_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_STATE_RES_EVENTID);

/* RF Path Res Event */
#define WMITLV_TABLE_WMI_PDEV_SET_RF_PATH_RESP_EVENTID(id,op,buf,len)  \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param, wmi_pdev_set_rf_path_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_RF_PATH_RESP_EVENTID);

/* CSA Handling Event */
#define WMITLV_TABLE_WMI_CSA_HANDLING_EVENTID(id,op,buf,len)\
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, wmi_csa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -7147,7 +7171,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_SESSION_STATS_EVENTID);
#define WMITLV_TABLE_WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_set_active_resp_event_fixed_param, wmi_mlo_link_set_active_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_vdev_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_vdev_bitmap, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_vdev_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_ieee_link_id_bitmap, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID);

/* Get DPD status Event */
@@ -7334,6 +7360,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID);

/* link switch event */
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_REQUEST_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param, wmi_mlo_link_switch_req_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID);


#ifdef __cplusplus
}
+242 −2
Original line number Diff line number Diff line
@@ -1563,6 +1563,10 @@ typedef enum {
    WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID,
    /** WMI cmd used to get mlo link information */
    WMI_MLO_VDEV_GET_LINK_INFO_CMDID,
    /** WMI cmd used to set link BSS parameters */
    WMI_MLO_LINK_SET_BSS_PARAMS_CMDID,
    /** WMI cmd to confirm the status of link switch request handling */
    WMI_MLO_LINK_SWITCH_CONF_CMDID,
    /** WMI commands specific to Service Aware WiFi (SAWF) */
    /** configure or reconfigure the parameters for a service class */
@@ -1743,6 +1747,9 @@ typedef enum {
    /* Event to send target rate to power table update status */
    WMI_PDEV_SET_TGTR2P_TABLE_EVENTID,
    /* Event to indicate completion on RF path */
    WMI_PDEV_SET_RF_PATH_RESP_EVENTID,
    /* VDEV specific events */
    /** VDEV started event in response to VDEV_START request */
@@ -2395,6 +2402,8 @@ typedef enum {
    WMI_MLO_VDEV_LINK_INFO_EVENTID,
    /** request host to do T2LM neg to the un-disabled link */
    WMI_MLO_LINK_DISABLE_REQUEST_EVENTID,
    /** request host to switch to new link for specified vdev */
    WMI_MLO_LINK_SWITCH_REQUEST_EVENTID,
    /* WMI event specific to Quiet handling */
    WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL),
@@ -3533,6 +3542,11 @@ typedef struct {
     */
    A_UINT32 rx_aggr_ba_win_size_max;
    /*
     * max link number per MLD FW supports.
     */
    A_UINT32 num_max_mlo_link_per_ml_bss_supp;
    /* Followed by next TLVs:
     *     WMI_DMA_RING_CAPABILITIES          dma_ring_caps[];
     *     wmi_spectral_bin_scaling_params    wmi_bin_scaling_params[];
@@ -4644,6 +4658,18 @@ typedef struct {
     * number of max active virtual devices (VAPs) to support
     */
    A_UINT32 num_max_active_vdevs;
    /**
     * @brief num_max_mlo_link_per_ml_bss
     * number of max partner links of a ML BSS
     */
    A_UINT32 num_max_mlo_link_per_ml_bss;
    /**
     * @brief num_max_active_mlo_link_per_ml_bss
     * number of max active partner links of a ML BSS
     */
    A_UINT32 num_max_active_mlo_link_per_ml_bss;
} wmi_resource_config;
#define WMI_MSDU_FLOW_AST_ENABLE_GET(msdu_flow_config0, ast_x) \
@@ -7978,6 +8004,18 @@ typedef struct {
     * contain valid data, versus how many are only for alignment padding.
     */
    A_UINT32 num_bytes_valid_in_cswrap_ie_ext_ver2;
    /*
     * Add link id, mld address and link address
     * fields for N link CSA support
     */
    A_UINT32 link_id; /* Link id associated with AP */
    wmi_mac_addr mld_mac_address; /* AP mld mac address */
    wmi_mac_addr link_mac_address; /* AP link mac address */
    A_UINT32 mld_mac_address_present :1,
             link_mac_address_present :1,
             link_id_present :1,
             reserved :29;
/*
 * This initial fixed_param TLV may be followed by the below TLVs:
 *   - cs_wrap_ie variable-length byte-array TLV
@@ -9138,6 +9176,14 @@ typedef enum {
    /** Set Probe Resp retry limit */
    WMI_PDEV_PARAM_PROBE_RESP_RETRY_LIMIT,
    /*
     * Parameter for configure PCIE
     *
     *  0 - Default Value(FW Control).
     *  1 - Force PCIE Gen Speed and Lane Width to maximum supported value.
     */
    WMI_PDEV_PARAM_PCIE_CONFIG,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@@ -14375,6 +14421,7 @@ typedef struct {
     * Refer to WMI_VDEV_STATS_FLAGS_ defs.
     */
    A_UINT32 flags;
    A_INT32 vdev_tx_power; /* dBm units */
} wmi_vdev_extd_stats;
/**
@@ -15855,6 +15902,12 @@ typedef struct {
#define WMI_MLO_FLAGS_SET_LINK_DEL(mlo_flags, value)        WMI_SET_BITS(mlo_flags, 9, 1, value)
#define WMI_MLO_FLAGS_GET_BRIDGE_PEER(mlo_flags)            WMI_GET_BITS(mlo_flags, 10, 1)
#define WMI_MLO_FLAGS_SET_BRIDGE_PEER(mlo_flags, value)     WMI_SET_BITS(mlo_flags, 10, 1, value)
#define WMI_MLO_FLAGS_GET_NSTR_BITMAP_PRESENT(mlo_flags)    WMI_GET_BITS(mlo_flags, 11, 1)
#define WMI_MLO_FLAGS_SET_NSTR_BITMAP_PRESENT(mlo_flags, value) WMI_SET_BITS(mlo_flags, 11, 1, value)
#define WMI_MLO_FLAGS_GET_NSTR_BITMAP_SIZE(mlo_flags)       WMI_GET_BITS(mlo_flags, 12, 1)
#define WMI_MLO_FLAGS_SET_NSTR_BITMAP_SIZE(mlo_flags, value) WMI_SET_BITS(mlo_flags, 12, 1, value)
#define WMI_MLO_FLAGS_GET_MLO_LINK_SWITCH(mlo_flags)        WMI_GET_BITS(mlo_flags, 13, 1)
#define WMI_MLO_FLAGS_SET_MLO_LINK_SWITCH(mlo_flags, value) WMI_SET_BITS(mlo_flags, 13, 1, value)
/* this structure used for pass mlo flags*/
typedef struct {
@@ -15871,7 +15924,16 @@ typedef struct {
                     mlo_link_add:1, /* Indicate dynamic link addition in an MLD VAP */
                     mlo_link_del:1, /* Indicate dynamic link deletion in an MLD VAP */
                     mlo_bridge_peer:1, /* Indicate if this link has bridge_peer */
                     unused: 21;
                     nstr_bitmap_present:1, /* Indicate if at least one NSTR link pair is present in the MLD */
                     /* nstr_bitmap_size:
                      * Set to 1 if the length of the corresponding NSTR
                      * Indication Bitmap subfield is equal to 2 octets.
                      * Set to 0 if the length of the corresponding NSTR
                      * Indication Bitmap subfield is equal to 1 octet.
                      */
                     nstr_bitmap_size:1,
                     mlo_link_switch: 1, /* indicate the command is a part of link switch procedure */
                     unused: 18;
        };
        A_UINT32 mlo_flags;
    };
@@ -18534,6 +18596,11 @@ typedef struct {
     * data is in TLV data[]
     */
    A_UINT32 buf_len;
    /** bw:
     * Bandwidth to use for the injected frame, of type wmi_channel_width.
     * This bw spec shall be ignored unless the bw_valid flag is set.
     */
    A_UINT32 bw;
    /*
     * The TLVs follows:
     * A_UINT8  data[]; <-- Variable length data
@@ -20244,10 +20311,14 @@ enum WMI_PEER_STA_TYPE {
typedef struct {
    A_UINT32 tlv_header; /** TLV tag (MITLV_TAG_STRUC_wmi_peer_assoc_mlo_partner_link_params) and len */
    A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller */
    A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller. Set to 0xFFFFFFFF if no vdev is allocated. */
    A_UINT32 hw_mld_link_id; /** Unique link id across SOCs, got as part of QMI handshake. */
    wmi_mlo_flags mlo_flags;  /** MLO flags */
    A_UINT32 logical_link_index; /** Unique index for links of the mlo. Starts with Zero */
    A_UINT32 ieee_link_id;  /*link id in the 802.11 frames*/
    wmi_mac_addr bss_id;
    wmi_channel wmi_chan;
    wmi_mac_addr self_mac;
} wmi_peer_assoc_mlo_partner_link_params;
/* This TLV structure used to pass mlo Parameters on peer assoc, only apply for mlo-peers */
@@ -20283,6 +20354,13 @@ typedef struct {
    A_UINT32 msd_ofdm_ed_thr;
    /** Medium Synchronization Max Num of TXOPs */
    A_UINT32 msd_max_num_txops;
    /** max_num_simultaneous_links:
     * The maximum number of affiliated STAs in the non-AP MLD that
     * support simultaneous transmission or reception of frames.
     */
    A_UINT32 max_num_simultaneous_links;
    /** NSTR indication bitmap received in assoc req */
    A_UINT32 nstr_indication_bitmap;
} wmi_peer_assoc_mlo_params;
typedef struct {
@@ -20495,6 +20573,8 @@ typedef struct {
/* deprecated but maintained as aliases: old names containing typo */
#define WMI_CHAN_InFO_START_RESP WMI_CHAN_INFO_START_RESP
#define WMI_CHAN_InFO_END_RESP   WMI_CHAN_INFO_END_RESP
/* end deprecated */
#define WMI_CHAN_INFO_ENTRY_RESP 2
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */
@@ -34711,6 +34791,18 @@ typedef enum wmi_hw_mode_config_type {
#define WMI_EXT_MLD_OPERATION_PARAMETER_UPDATE_SUPP_GET(ext_mld_capability) WMI_GET_BITS(ext_mld_capability, 0, 1)
#define WMI_EXT_MLD_OPERATION_PARAMETER_UPDATE_SUPP_SET(ext_mld_capability, value) WMI_SET_BITS(ext_mld_capability, 0, 1, value)
/*
 * 11BE MSD Capability Set and Get macros
 */
#define WMI_MEDIUM_SYNC_DURATION_GET(msd_capability) WMI_GET_BITS(msd_capability, 0, 8)
#define WMI_MEDIUM_SYNC_DURATION_SET(msd_capability,value) WMI_SET_BITS(msd_capability, 0, 8, value)
#define WMI_MEDIUM_SYNC_OFDM_ED_THRESHOLD_GET(msd_capability) WMI_GET_BITS(msd_capability, 8, 4)
#define WMI_MEDIUM_SYNC_OFDM_ED_THRESHOLD_SET(msd_capability, value) WMI_SET_BITS(msd_capability, 8, 4, value)
#define WMI_MEDIUM_SYNC_MAX_NO_TXOPS_GET(msd_capability) WMI_GET_BITS(msd_capability, 12, 4)
#define WMI_MEDIUM_SYNC_MAX_NO_TXOPS_SET(msd_capability, value) WMI_SET_BITS(msd_capability, 12, 4, value)
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES */
    /* hw_mode_id - identify a particular set of HW characteristics, as specified
@@ -34994,6 +35086,15 @@ typedef struct {
        };
        A_UINT32 ext_mld_capability;
    };
    union {
        struct {
            A_UINT32 medium_sync_duration:8,
                     medium_sync_ofdm_ed_threshold:4,
                     medium_sync_max_no_txops:4,
                     reserved4: 16;
        };
        A_UINT32 msd_capability;
    };
} WMI_MAC_PHY_CAPABILITIES_EXT;
typedef struct {
@@ -43523,6 +43624,28 @@ typedef enum {
    WMI_MLO_LINK_FORCE_REASON_TDLS             = 4, /* Set force specific links because of 11BE MLO TDLS setup/teardown */
} WMI_MLO_LINK_FORCE_REASON;
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags)                WMI_GET_BITS(control_flags, 0, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value)         WMI_SET_BITS(control_flags, 0, 1, value)
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags)              WMI_GET_BITS(control_flags, 1, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value)       WMI_SET_BITS(control_flags, 1, 1, value)
/*
 * This structure is used for passing wmi_mlo_control_flags.
 * When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or WMI_MLO_LINK_FORCE_INACTIVE
 * host can pass below control flags, to indicate if FW need to clear earlier
 * force bitmap config.
 */
typedef struct {
    union {
        struct {
            A_UINT32 overwrite_force_active_bitmap:1, /* indicate overwrite all earlier force_active bitmaps */
                     overwrite_force_inactive_bitmap:1, /* indicate overwrite all earlier force_inactive bitmaps */
                     unused: 30;
        };
        A_UINT32 control_flags;
    };
} wmi_mlo_control_flags;
typedef struct wmi_mlo_link_set_active_cmd
{
    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_link_set_active_cmd_fixed_param; */
@@ -43531,12 +43654,21 @@ typedef struct wmi_mlo_link_set_active_cmd
    A_UINT32 force_mode;
    /** reason of force link active / inactive, enum WMI_MLO_LINK_FORCE_REASON */
    A_UINT32 reason;
    /* indicate use vdev_id bitmap or link_id_bitmap */
    A_UINT32 use_ieee_link_id_bitmap;
    wmi_mac_addr ap_mld_mac_addr;
    wmi_mlo_control_flags ctrl_flags;
/* The TLVs follows this structure:
 * wmi_mlo_set_active_link_number_param link_number_param[];
 *     Link number parameters, optional TLV.
 *     Present when force type is WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
 *     WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM.
 *     In other cases the length of array should be 0.
 *---
 * If use_ieee_link_id_bitmap equals 0 vdev_id_bitmap[] & vdev_id_bitmap2[]
 * are valid.
 * A_UINT32 vdev_id_bitmap[];
 *     Optional TLV, present when force type is WMI_MLO_LINK_FORCE_ACTIVE
 *     or WMI_MLO_LINK_FORCE_INACTIVE or WMI_MLO_LINK_NO_FORCE,
@@ -43548,6 +43680,18 @@ typedef struct wmi_mlo_link_set_active_cmd
 *     For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE vdev_id_bitmap2[]
 *     carry the inactive vdev bitmap.
 *     In other cases the length of the array should be 0.
 *---
 * If use_ieee_link_id_bitmap equals 1 ieee_link_id_bitmap[] &
 * ieee_link_id_bitmap2[] are valid.
 * A_UINT32 ieee_link_id_bitmap[];
 *     present for  WMI_MLO_LINK_FORCE_ACTIVE
 *     or WMI_MLO_LINK_FORCE_INACTIVE or WMI_MLO_LINK_NO_FORCE
 *     or WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
 *     WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM
 * A_UINT32 ieee_link_id_bitmap2[];
 *     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_mlo_link_set_active_cmd_fixed_param;
@@ -43577,9 +43721,20 @@ typedef struct wmi_mlo_link_set_active_resp_event
    /** Return status. 0 for success, non-zero otherwise */
    A_UINT32 status;
    /* indicate use vdev_id bitmap or link_id_bitmap */
    A_UINT32 use_ieee_link_id_bitmap;
    wmi_mac_addr ap_mld_mac_addr;
/* The TLVs follows this structure:
 *---
 * If use_ieee_link_id_bitmap equals 0, vdev_bitmap[] are valid.
 *     A_UINT32 force_active_vdev_bitmap[]; <-- current force active vdev.
 *     A_UINT32 force_inactive_vdev_bitmap[]; <-- current force inactive vdevs
 *---
 * If use_ieee_link_id_bitmap equals 1, ieee_link_id_bitmap[] are valid.
 *     A_UINT32 force_active_ieee_link_id_bitmap[];
 *     A_UINT32 force_inactive_ieee_link_id_bitmap[];
 */
} wmi_mlo_link_set_active_resp_event_fixed_param;
@@ -43774,6 +43929,12 @@ typedef struct {
    /** MLO Peer's current link MAC address */
    wmi_mac_addr link_macaddr;
    /** mapping_switch_time from the T2LM IE */
    A_UINT32 mapping_switch_time;
    /** expected_duration from the T2LM IE, in units of TUs */
    A_UINT32 expected_duration;
    /**
     * Following this structure is the TLV:
     *   - struct wmi_tid_to_link_map tid_to_link_map[];
@@ -45244,6 +45405,29 @@ typedef struct {
    A_UINT32 rf_path;
} wmi_pdev_set_rf_path_cmd_fixed_param;
typedef struct {
    /*
     * TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rf_path_event_fixed_param
     */
    A_UINT32 tlv_header;
    /* pdev_id for identifying the MAC */
    A_UINT32 pdev_id;
    /*
     * rf_path :
     * 0 - primary RF path
     * 1 - secondary RF path
     */
    A_UINT32 rf_path;
    /*
     * status :
     * TRUE (0) - for recieved and cache the value in FW
     * FALSE (1) :
     *      a. pdev_id for which secondary RF path is not available
     *      b. caching of the rf_path got failed in FW
     */
    A_UINT32 status;
} wmi_pdev_set_rf_path_event_fixed_param;
#define WMI_SET_RX_PEER_STATS_RESP_TYPE(rx_params, value) \
        WMI_SET_BITS(rx_params, 0, 1, value)
#define WMI_GET_RX_PEER_STATS_RESP_TYPE(rx_params) \
@@ -45350,6 +45534,62 @@ typedef struct {
    A_UINT32 pause_dur_ms;
} wmi_vdev_pause_cmd_fixed_param;
typedef struct {
    A_UINT32 tlv_header;
    A_UINT32 ieee_link_id; /* key to identify a link */
    wmi_channel wmi_chan;
} wmi_mlo_link_bss_param;
typedef struct {
    A_UINT32 tlv_header;
    wmi_mac_addr ap_mld_macaddr;
    /*
     * The TLVs listed below follow this fixed_param TLV:
     * wmi_mlo_link_bss_param link_bss_params[]:
     *     an array of links to be updated
     */
} wmi_mlo_set_link_bss_params_cmd_fixed_param;
typedef enum _WMI_LINK_SWITCH_REASON{
    WMI_MLO_LINK_SWITCH_REASON_RSSI_CHANGE = 1,
    WMI_MLO_LINK_SWITCH_REASON_LOW_QUALITY = 2,
    WMI_MLO_LINK_SWITCH_REASON_C2_CHANGE   = 3,
    WMI_MLO_LINK_SWITCH_REASON_HOST_FORCE  = 4,
    WMI_MLO_LINK_SWITCH_REASON_T2LM        = 5,
    WMI_MLO_LINK_SWITCH_REASON_MAX,
} WMI_LINK_SWITCH_REASON;
typedef struct {
    A_UINT32 tlv_header;
    A_UINT32 vdev_id;   /*the vdev id assigned to curr_ieee_link_id*/
    A_UINT32 curr_ieee_link_id; /*current link id on above vdev_id*/
    A_UINT32 new_ieee_link_id; /*new link id on above vdev_id*/
    A_UINT32 new_primary_freq; /*primay_freq for the new link on the vdev, in units of MHZ*/
    A_UINT32 new_phymode; /*phymode for the new link on the vdev, see WLAN_PHY_MODE for definitions*/
    A_UINT32 reason;      /*see WMI_LINK_SWITCH_REASON for definition*/
} wmi_mlo_link_switch_req_evt_fixed_param;
typedef enum _WMI_LINK_SWITCH_CNF_REASON{
    WMI_MLO_LINK_SWITCH_CNF_REASON_BSS_PARAMS_CHANGED = 1,
    WMI_MLO_LINK_SWITCH_CNF_REASON_CONCURRECNY_CONFLICT = 2,
    WMI_MLO_LINK_SWITCH_CNF_REASON_HOST_INTERNAL_ERROR = 3,
    WMI_MLO_LINK_SWITCH_CNF_REASON_MAX,
} WMI_LINK_SWITCH_CNF_REASON;
typedef enum _WMI_LINK_SWITCH_CNF_STATUS{
    WMI_MLO_LINK_SWITCH_CNF_STATUS_ACCEPT = 0,
    WMI_MLO_LINK_SWITCH_CNF_STATUS_REJECT = 1,
} WMI_LINK_SWITCH_CNF_STATUS;
typedef struct {
    A_UINT32 tlv_header;
    A_UINT32 vdev_id;
    A_UINT32 status;  /*see definition of WMI_LINK_SWITCH_CNF_STATUS*/
    A_UINT32 reason;  /*see definition of WMI_LINK_SWITCH_CNF_REASON*/
} wmi_mlo_link_switch_cnf_fixed_param;
/* ADD NEW DEFS HERE */
Loading