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

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

Merge d01bd25d on remote branch

Change-Id: I34a562e8190dedbe8a642de311d0daa5812a2728
parents 10274275 d01bd25d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012, 2014-2017 The Linux Foundation. All rights reserved.
 * Copyright (c) 2012, 2014-2017, 2020 The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
@@ -57,7 +57,8 @@ typedef enum {
/* WMI_CONTROL_SVC_WMAC1,2: WMI service for MACs 1 and 2 (where applicable) */
#define WMI_CONTROL_SVC_WMAC1  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,5)
#define WMI_CONTROL_SVC_WMAC2  MAKE_SERVICE_ID(WMI_SERVICE_GROUP,6)
#define WMI_MAX_SERVICES  7
#define WMI_CONTROL_DIAG_SVC   MAKE_SERVICE_ID(WMI_SERVICE_GROUP,7)
#define WMI_MAX_SERVICES  8

#define NMI_CONTROL_SVC   MAKE_SERVICE_ID(NMI_SERVICE_GROUP,0)
#define NMI_DATA_SVC      MAKE_SERVICE_ID(NMI_SERVICE_GROUP,1)
+60 −1
Original line number Diff line number Diff line
@@ -207,9 +207,10 @@
 * 3.83 Shrink seq_idx field in HTT PPDU ID from 3 bits to 2.
 * 3.84 Add fisa_control_bits_v2 def.
 * 3.85 Add HTT_RX_PEER_META_DATA defs.
 * 3.86 Add HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND def.
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 85
#define HTT_CURRENT_VERSION_MINOR 86
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -6917,6 +6918,8 @@ enum htt_t2h_msg_type {
     */
    HTT_T2H_MSG_TYPE_TX_OFFLOAD_DELIVER_IND   = 0x25,
    HTT_T2H_MSG_TYPE_CHAN_CALDATA             = 0x26,
    HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND       = 0x27,
    HTT_T2H_MSG_TYPE_TEST,
    /* keep this last */
@@ -14028,6 +14031,62 @@ PREPACK struct htt_chan_caldata_msg {
    } while (0)
/**
 * @brief HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND Message
 *
 * @details
 *  HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND message is sent by the target when
 *  FSE placement in CMEM is enabled.
 *
 *  This message sends the non-secure CMEM base address.
 *  It will be sent to host in response to message
 *  HTT_H2T_MSG_TYPE_RX_FSE_SETUP_CFG.
 *  The message would appear as follows:
 *
 *     |31            24|23            16|15             8|7              0|
 *     |----------------+----------------+----------------+----------------|
 *     |             reserved            |  num_entries   |   msg_type     |
 *     |----------------+----------------+----------------+----------------|
 *     |                        base_address_lo                            |
 *     |----------------+----------------+----------------+----------------|
 *     |                        base_address_hi                            |
 *     |-------------------------------------------------------------------|
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type: This will be set to
 *                    HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND
 *          b'8:15  - number_entries: Indicated the number of entries
 *                    programmed.
 *          b'16:31 - reserved.
 * dword1 - b'0:31  - base_address_lo: Indicate lower 32 bits of
 *                    CMEM base address
 * dword2 - b'0:31 -  base_address_hi: Indicate upper 32 bits of
 *                    CMEM base address
 */
PREPACK struct htt_cmem_base_send_t {
    A_UINT32 msg_type:      8,
             num_entries:   8,
             reserved:      16;
    A_UINT32 base_address_lo;
    A_UINT32 base_address_hi;
} POSTPACK;
#define HTT_CMEM_BASE_SEND_SIZE  (sizeof(struct htt_cmem_base_send_t))
#define HTT_CMEM_BASE_SEND_NUM_ENTRIES_M                0x0000FF00
#define HTT_CMEM_BASE_SEND_NUM_ENTRIES_S                8
#define HTT_CMEM_BASE_SEND_NUM_ENTRIES_GET(_var) \
    (((_var) & HTT_CMEM_BASE_SEND_NUM_ENTRIES_M) >> \
            HTT_CMEM_BASE_SEND_NUM_ENTRIES_S)
#define HTT_CMEM_BASE_SEND_NUM_ENTRIES_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_CMEM_BASE_SEND_NUM_ENTRIES, _val); \
        ((_var) |= ((_val) << HTT_SRING_SETUP_DONE_PDEV_ID_S)); \
    } while (0)
/**
 *  @brief - HTT PPDU ID format
 *
+3 −0
Original line number Diff line number Diff line
@@ -479,6 +479,9 @@ typedef enum {
    WMI_SERVICE_THERMAL_MULTI_CLIENT_SUPPORT = 259, /* Indicates FW Thermal Mgr will support multiple clients for mitigation */
    WMI_SERVICE_NAN_SEND_NAN_ENABLE_RESPONSE_TO_HOST = 260, /* Indicates FW will include an additional TLV in nan enable response for Host driver to parse */
    WMI_SERVICE_UNIFIED_LL_GET_STA_CMD_SUPPORT = 261, /* Indicates that FW supports handling Link Layer and Get Station stats Commands together (WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID) */
    WMI_SERVICE_FSE_CMEM_ALLOC_SUPPORT = 262, /* Indicates that FW supports non-secure CMEM allocation for FSE table */
    WMI_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE = 263, /* Indicates FW support to not skip beacon if passive scan dwell time + channel switch delay is lesser than beacon interval */
    WMI_SERVICE_QOS_NULL_FRAME_TX_OVER_WMI = 264, /* Indicates that FW supports tx of QoS null frame downloaded through WMI interface */


    WMI_MAX_EXT2_SERVICE
+24 −0
Original line number Diff line number Diff line
@@ -1108,6 +1108,9 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_wfa_config_saquery,
    WMITLV_TAG_STRUC_wmi_roam_data_rssi_roaming_param,
    WMITLV_TAG_STRUC_wmi_request_unified_ll_get_sta_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_sscan_evt_message_fixed_param,
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_send_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_compl_event_fixed_param,
} WMITLV_TAG_ID;

/*
@@ -1558,6 +1561,7 @@ typedef enum {
    OP(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID) \
    OP(WMI_WFA_CONFIG_CMDID) \
    OP(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID) \
    OP(WMI_QOS_NULL_FRAME_TX_SEND_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -1814,6 +1818,8 @@ typedef enum {
    OP(WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID) \
    OP(WMI_VDEV_DISCONNECT_EVENTID) \
    OP(WMI_TWT_SESSION_STATS_EVENTID) \
    OP(WMI_SSCAN_EVT_MESSAGE_EVENTID) \
    OP(WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -2660,6 +2666,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_SEND_CMDID);

WMITLV_CREATE_PARAM_STRUC(WMI_OFFCHAN_DATA_TX_SEND_CMDID);

/* QoS null tx send cmd */
#define WMITLV_TABLE_WMI_QOS_NULL_FRAME_TX_SEND_CMDID(id,op,buf,len)  \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_send_cmd_fixed_param, wmi_qos_null_frame_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_send_params, wmi_tx_send_params, tx_send_params, WMITLV_SIZE_FIX)

WMITLV_CREATE_PARAM_STRUC(WMI_QOS_NULL_FRAME_TX_SEND_CMDID);

/** PDEV send FILS Discovery frame cmd */
#define WMITLV_TABLE_WMI_PDEV_SEND_FD_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_fd_send_from_host_cmd_fixed_param, wmi_fd_send_from_host_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -4701,6 +4715,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mgmt_hdr, mgmt_hdr, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID);

/* QoS null frame TX completion event */
#define WMITLV_TABLE_WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_compl_event_fixed_param, wmi_qos_null_frame_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID);

/* VDEV Start response Event */
#define WMITLV_TABLE_WMI_VDEV_START_RESP_EVENTID(id,op,buf,len)                                                         \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -6041,6 +6060,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_sscan_fft_bin_index, fft_bin_index, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SSCAN_FW_PARAM_EVENTID);

/* Send sscan related event start/stop trigger to host */
#define WMITLV_TABLE_WMI_SSCAN_EVT_MESSAGE_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sscan_evt_message_fixed_param, wmi_sscan_evt_message_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SSCAN_EVT_MESSAGE_EVENTID);

/* Roam capability report event */
#define WMITLV_TABLE_WMI_ROAM_CAPABILITY_REPORT_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param, wmi_roam_capability_report_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+185 −6
Original line number Diff line number Diff line
@@ -660,6 +660,8 @@ typedef enum {
    WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID,
    /** set FILS Discovery frame template for FW to generate FD frames */
    WMI_FD_TMPL_CMDID,
    /** Transmit QoS null Frame over wmi interface */
    WMI_QOS_NULL_FRAME_TX_SEND_CMDID,
    /** commands to directly control ba negotiation directly from host. only used in test mode */
@@ -1357,6 +1359,10 @@ typedef enum {
    /** Spectral scan FW params to host */
    WMI_PDEV_SSCAN_FW_PARAM_EVENTID,
    /** Spectral scan related event start/stop trigger to host  */
    WMI_SSCAN_EVT_MESSAGE_EVENTID,
    /* PDEV specific events */
    /** TPC config for the current operating channel */
    WMI_PDEV_TPC_CONFIG_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PDEV),
@@ -1634,6 +1640,10 @@ typedef enum {
     *   Used only in host beacon mode. */
    WMI_HOST_SWBA_V2_EVENTID,
    /** Event for QoS null frame TX completion  */
    WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID,
    /* ADDBA Related WMI Events*/
    /** Indication the completion of the prior
     WMI_PEER_TID_DELBA_CMDID(initiator) */
@@ -3730,7 +3740,18 @@ typedef struct {
     *
     *      Refer to WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET/SET
     *      macros defined below.
     *  Bits 31:1 - Reserved
     *  Bit 1
     *      The bit will be set when HOST is capable of processing multiple
     *      radio events per radio. More specifically whenever Firmware is
     *      sending multiple radio events (WMI_RADIO_LINK_STATS_EVENTID
     *      = 0x16004) for a single radio,
     *      Through this flag Firmware will know that HOST is able to support
     *      delivery of RADIO_LINK_STATS across multiple event messages,
     *      and Firmware can send multiple radio events.
     *
     *      Refer to WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_GET/SET
     *      macros defined below.
     *  Bits 31:2 - Reserved
     */
    A_UINT32 host_service_flags;
@@ -3989,6 +4010,11 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 0, 1, val)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_GET(host_service_flags) \
    WMI_GET_BITS(host_service_flags, 1, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_SET(host_service_flags, val) \
    WMI_SET_BITS(host_service_flags, 1, 1, val)
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -4436,6 +4462,15 @@ typedef enum {
/* Extend 6ghz channel measure time */
#define WMI_SCAN_FLAG_EXT_6GHZ_EXTEND_MEASURE_TIME    0x00000400
/**
 * Currently passive scan has higher priority than beacon and
 * beacon miss would happen irrespective of dwell time.
 * Below flag ensures there would not be beacon miss if the dwell
 * time is lesser than beacon interval - channel switch time combined.
 * For dwell time greater than beacon interval, bmiss is expected.
 */
#define WMI_SCAN_FLAG_EXT_PASSIVE_SCAN_START_TIME_ENHANCE   0x00000800
/**
 * new 6 GHz flags per chan (short ssid or bssid) in struct
 * wmi_hint_freq_short_ssid or wmi_hint_freq_bssid
@@ -5505,6 +5540,22 @@ typedef struct {
 */
} wmi_offchan_data_tx_send_cmd_fixed_param;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_send_cmd_fixed_param */
    A_UINT32 vdev_id;
    A_UINT32 desc_id;  /* echoed in tx_compl_event */
    A_UINT32 paddr_lo; /* paddr_lo and padd_hi will hold the address of remote/host buffer, which is physical address of frame */
    A_UINT32 paddr_hi;
    A_UINT32 frame_len; /* Actual length of frame in bytes*/
    A_UINT32 buf_len;  /** Buffer length in bytes, length of data DMA'ed to FW from host */
/* This fixed_param TLV is followed by the TLVs listed below:
 * 1.  ARRAY_BYTE TLV: First buf_len (expected to be 64) bytes of frame
 *     A_UINT8 bufp[];
 * 2.  wmi_tx_send_params tx_send_params;
 */
} wmi_qos_null_frame_tx_send_cmd_fixed_param;
typedef struct {
    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_event_fixed_param */
    A_UINT32 value;
@@ -5996,6 +6047,28 @@ typedef struct {
    A_UINT32 mid_5mhz_bins;
} wmi_pdev_sscan_fft_bin_index;
typedef enum {
    /** Enum to indicate bmsk of spectral scan stop evt on scan count max out */
    WMI_SSCAN_EVT_BMSK_SCAN_STOP_SCOUNT = 0X00000001,
    /** Add more event code bmsks above this */
    WMI_SSCAN_EVT_BMSK_MAX = 0Xffffffff,
} wmi_sscan_evt_message_code;
/**
 * The below structure is used to send the start/stop triggers
 * for events related to spectral scan activity from
 * FW to host
 */
typedef struct {
    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sscan_evt_message_fixed_param */
    A_UINT32 pdev_id;
    /** Refer Enum wmi_sscan_evt_message_code */
    A_UINT32 sscan_evt_code;
} wmi_sscan_evt_message_fixed_param;
#define WMI_BEACON_CTRL_TX_DISABLE  0
#define WMI_BEACON_CTRL_TX_ENABLE   1
#define WMI_BEACON_CTRL_SWBA_EVENT_DISABLE  2
@@ -7434,6 +7507,27 @@ typedef struct {
    A_UINT32    ppdu_id;
} wmi_offchan_data_tx_compl_event_fixed_param;
typedef struct {
    A_UINT32    tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_qos_null_frame_tx_compl_event_fixed_param */
    A_UINT32    desc_id; /* echoed from tx_send_cmd */
    A_UINT32    status;  /* same status as WMI_MGMT_TX_COMP_STATUS_TYPE */
    /** pdev_id for identifying the MAC that transmitted the QoS NULL frame
     * See macros starting with WMI_PDEV_ID_ for values.
     */
    A_UINT32    pdev_id;
    /* ppdu_id
     * Hardware PPDU ID for tracking the completion stats
     * A ppdu_id value of 0x0 is invalid, and should be ignored.
     */
    A_UINT32    ppdu_id;
    /* ack_rssi
     * TX mgmt ack RSSI report to host.
     * Only valid when status == COMPLETE_OK and the ACK_RSSI report is enabled
     * ack_rssi is reported in dBm.
     */
    A_INT32    ack_rssi;
} wmi_qos_null_frame_tx_compl_event_fixed_param;
typedef struct {
    A_UINT32    tlv_header;
    A_UINT32    num_reports;
@@ -8263,6 +8357,18 @@ typedef struct {
    A_UINT32 num_radio;
    /** more_data will be set depending on the number of radios */
    A_UINT32 more_radio_events;
    /*
     * For the event WMI_RADIO_LINK_STATS_EVENTID = 0x16004,
     * FW may not be able to send all the channels (2Ghz, 5Ghz & 6Ghz)
     * together in one event message, due to buffer size limitations.
     * To avoid this limitation, FW will send multiple events to HOST
     * depending upon the number of channels.
     * If more_channels is set to 0 means FW has indicated all the
     * channels for this radio.
     * If more_channels is set to 1, it indicates FW will send another
     * event having additional channels for the same radio.
     */
    A_UINT32 more_channels;
/*
 * This TLV is followed by another TLV of array of bytes
 *   size of(struct wmi_radio_link_stats);
@@ -11499,6 +11605,13 @@ typedef enum {
     */
    WMI_VDEV_PARAM_ENABLE_DISABLE_NAN_CONFIG_FEATURES,  /* 0xA3 */
    /* vdev param to enable the SAP HW offload
     *  Bit : 0     - enable/disable SHO
     *  Bit : 1     - enable for Sta connected state as well.
     *  Bit : 2-31  - reserved
     */
    WMI_VDEV_PARAM_SHO_CONFIG,          /* 0xA4  */
    /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
     * The below vdev param types are used for prototyping, and are
@@ -15720,6 +15833,11 @@ enum {
    WMI_WOW_FLAG_DO_HTC_WAKEUP              = 0x00000008,
    /* Enable L1SS sleep for PCIE DRV case */
    WMI_WOW_FLAG_ENABLE_DRV_PCIE_L1SS_SLEEP = 0x00000010,
    /*
     * To differentiate system suspend Vs RTPM BIT set -
     * Sytem Suspend WOW, BIT Reset- RTPM (DRV)
     */
    WMI_WOW_FLAG_SYSTEM_SUSPEND_WOW         = 0x00000020,
};
typedef struct {
@@ -16641,6 +16759,12 @@ typedef struct wmi_nlo_config {
    A_UINT32 num_vendor_oui;
    /** Number of connected NLO band preferences **/
    A_UINT32 num_cnlo_band_pref;
    /** dwell time in msec on active 2GHz channels */
    A_UINT32 active_dwell_time_2ghz;
    /** dwell time in msec when 6 GHz channel (PSC or non-PSC) is marked as an active channel */
    A_UINT32 active_dwell_time_6ghz;
    /** dwell time in msec when 6 GHz channel (PSC or non-PSC) is marked as a passive channel */
    A_UINT32 passive_dwell_time_6ghz;
/* The TLVs will follow.
 * nlo_configured_parameters nlo_list[];
 * A_UINT32 channel_list[num_of_channels]; // in MHz
@@ -16911,6 +17035,7 @@ typedef enum {
    WMI_STA_KEEPALIVE_METHOD_UNSOLICITED_ARP_RESPONSE = 2, /* ARP response */
    WMI_STA_KEEPALIVE_METHOD_ETHERNET_LOOPBACK = 3, /*ETHERNET LOOPBACK*/
    WMI_STA_KEEPALIVE_METHOD_GRATUITOUS_ARP_REQUEST = 4, /* gratuitous ARP req*/
    WMI_STA_KEEPALIVE_METHOD_MGMT_VENDOR_ACTION = 5, /* vendor action frame */
} WMI_STA_KEEPALIVE_METHOD;
typedef struct {
@@ -17286,9 +17411,26 @@ typedef struct {
/* WMI_GPIO_CONFIG_CMDID */
enum {
    WMI_GPIO_PULL_NONE,
    WMI_GPIO_PULL_UP,
    WMI_GPIO_PULL_DOWN,
    WMI_GPIO_PULL_NONE,   /** Do not specify a pull. */
    WMI_GPIO_PULL_UP,     /** Pull the GPIO up. */
    WMI_GPIO_PULL_DOWN,   /** Pull the GPIO down. */
    WMI_GPIO_PULL_KEEPER, /** Designate as a keeper. */
};
enum wmi_gpio_drive_strength {
    WMI_GPIO_2MA,  /** Specify a 2 mA drive. */
    WMI_GPIO_4MA,  /** Specify a 4 mA drive. */
    WMI_GPIO_6MA,  /** Specify a 6 mA drive. */
    WMI_GPIO_8MA,  /** Specify an 8 mA drive. */
    WMI_GPIO_10MA, /** Specify a 10 mA drive. */
    WMI_GPIO_12MA, /** Specify a 12 mA drive. */
    WMI_GPIO_14MA, /** Specify a 14 mA drive. */
    WMI_GPIO_16MA, /** Specify a 16 mA drive. */
};
enum wmi_tlmm_gpio_config {
  WMI_TLMM_GPIO_DISABLE, /** Use the internal inactive configuration. */
  WMI_TLMM_GPIO_ENABLE,  /** Use the configuration passed as parameter. */
};
enum {
@@ -17313,6 +17455,17 @@ typedef struct {
     *     0x4 - use the pin as GPIO (rather than UART)
     */
    A_UINT32 mux_config_val;
    /*
     * The drive strength to use in the configuration of a GPIO.
     * Refer to the wmi_gpio_drive_strength enum.
     */
    A_UINT32 drive;
    /*
     * Use the internal inactive configuration or configuration passed
     * as parameter.
     * Refer to the wmi_tlmm_gpio_config enum.
     */
    A_UINT32 init_enable;
} wmi_gpio_config_cmd_fixed_param;
/* WMI_GPIO_OUTPUT_CMDID */
@@ -26309,13 +26462,23 @@ typedef struct {
     */
} wmi_therm_throt_config_request_fixed_param;
typedef enum {
    /* no throttling */
    WMI_THERMAL_FULLPERF        = 0,
    /* throttling tx to do thermal mitigation */
    WMI_THERMAL_MITIGATION      = 1,
    /* shut down the tx completely */
    WMI_THERMAL_SHUTOFF         = 2,
} WMI_THERMAL_THROT_LEVEL;
/** FW response with the stats event id for every pdev and zones */
typedef struct {
    /*  TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_therm_throt_stats_event_fixed_param */
    A_UINT32 tlv_header;
    A_UINT32 pdev_id;            /* stats for corresponding pdev*/
    A_UINT32 temp;               /* Temperature reading in celsius */
    A_UINT32 level;              /* current thermal throttling level */
    A_UINT32 level;              /* Current thermal throttling level -
                                  * contains a WMI_THERMAL_THROT_LEVEL value. */
    A_UINT32 therm_throt_levels; /* number of levels in therm_throt_level_stats_info */
    /* This TLV is followed by another TLV of array of structs
     * wmi_therm_throt_level_stats_info therm_throt_level_stats_info[therm_throt_levels];
@@ -26323,7 +26486,6 @@ typedef struct {
} wmi_therm_throt_stats_event_fixed_param;
typedef struct {
    /** TLV tag and len; tag equals
     *  WMITLV_TAG_STRUC_wmi_therm_throt_level_stats_info */
@@ -27051,6 +27213,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
        WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID);
        WMI_RETURN_STRING(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID);
        WMI_RETURN_STRING(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID);
        WMI_RETURN_STRING(WMI_QOS_NULL_FRAME_TX_SEND_CMDID);
    }
    return "Invalid WMI cmd";
@@ -27938,6 +28101,7 @@ typedef enum _WMI_PAUSE_TWT_STATUS_T {
    WMI_PAUSE_TWT_STATUS_NO_RESOURCE,         /* FW resource exhausted */
    WMI_PAUSE_TWT_STATUS_NO_ACK,              /* peer AP/STA did not ACK the request/response frame */
    WMI_PAUSE_TWT_STATUS_UNKNOWN_ERROR,       /* pausing TWT dialog failed with an unknown reason */
    WMI_PAUSE_TWT_STATUS_ALREADY_PAUSED,      /* The TWT dialog is already paused */
} WMI_PAUSE_TWT_STATUS_T;
typedef struct {
@@ -30448,6 +30612,21 @@ typedef struct {
     * A band value of 0x80 (-128) is invalid.
     */
    A_UINT32 chain_rssi[WMI_MAX_CHAINS];
    /* Carrier frequency offset
       It is Difference between down conversion oscillator frequency at the receiver
       versus carrier frequency of the received signal. To convert to ppm, below
       equation needs to be used. Here, Fc is carrier frequency (primary 20 channel frequency) in Hz:
       PPM = cfo_measurement(13 bits)/((2^13)/(800e-9)/2/Fc*1e6)
       PPM ranges from -40 to +40
       Bits 0  : 0   Set to 1 to indicate cfo mesurement value is valid
       Bits 1  : 14  14 bits cfo measurement raw data. 14 bit is signed bit.
                     For the above ppm equation , use the first 13 bits to calculate.
     */
    A_UINT32 cfo_measurement_valid :1,
             cfo_measurement :14,
             reserved :17;
} wmi_peer_cfr_capture_event_fixed_param;
#define WMI_UNIFIED_CHAIN_PHASE_MASK 0x0000ffff
Loading