Commit 8a4fa214 authored by Ahmad Masri's avatar Ahmad Masri Committed by Kalle Valo
Browse files

wil6210: align to latest auto generated wmi.h



Align to latest version of the auto generated wmi file
describing the interface with FW

Signed-off-by: default avatarAhmad Masri <amasri@codeaurora.org>
Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 777b4690
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1554,7 +1554,9 @@ int wmi_pcp_start(struct wil6210_vif *vif,
		.pcp_max_assoc_sta = max_assoc_sta,
		.hidden_ssid = hidden_ssid,
		.is_go = is_go,
		.disable_ap_sme = disable_ap_sme,
		.ap_sme_offload_mode = disable_ap_sme ?
				       WMI_AP_SME_OFFLOAD_PARTIAL :
				       WMI_AP_SME_OFFLOAD_FULL,
		.abft_len = wil->abft_len,
	};
	struct {
@@ -1574,7 +1576,7 @@ int wmi_pcp_start(struct wil6210_vif *vif,
	}

	if (disable_ap_sme &&
	    !test_bit(WMI_FW_CAPABILITY_DISABLE_AP_SME,
	    !test_bit(WMI_FW_CAPABILITY_AP_SME_OFFLOAD_PARTIAL,
		      wil->fw_capabilities)) {
		wil_err(wil, "disable_ap_sme not supported by FW\n");
		return -EOPNOTSUPP;
+367 −20
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2017 Qualcomm Atheros, Inc.
 * Copyright (c) 2006-2012 Wilocity
 *
@@ -29,8 +30,6 @@
#ifndef __WILOCITY_WMI_H__
#define __WILOCITY_WMI_H__

/* General */
#define WMI_MAX_ASSOC_STA		(8)
#define WMI_DEFAULT_ASSOC_STA		(1)
#define WMI_MAC_LEN			(6)
#define WMI_PROX_RANGE_NUM		(3)
@@ -41,6 +40,19 @@
#define WMI_RF_ETYPE_LENGTH		(3)
#define WMI_RF_RX2TX_LENGTH		(3)
#define WMI_RF_ETYPE_VAL_PER_RANGE	(5)
/* DTYPE configuration array size
 * must always be kept equal to (WMI_RF_DTYPE_LENGTH+1)
 */
#define WMI_RF_DTYPE_CONF_LENGTH	(4)
/* ETYPE configuration array size
 * must always be kept equal to
 * (WMI_RF_ETYPE_LENGTH+WMI_RF_ETYPE_VAL_PER_RANGE)
 */
#define WMI_RF_ETYPE_CONF_LENGTH	(8)
/* RX2TX configuration array size
 * must always be kept equal to (WMI_RF_RX2TX_LENGTH+1)
 */
#define WMI_RF_RX2TX_CONF_LENGTH	(4)

/* Mailbox interface
 * used for commands and events
@@ -61,7 +73,7 @@ enum wmi_fw_capability {
	WMI_FW_CAPABILITY_PS_CONFIG			= 1,
	WMI_FW_CAPABILITY_RF_SECTORS			= 2,
	WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT		= 3,
	WMI_FW_CAPABILITY_DISABLE_AP_SME		= 4,
	WMI_FW_CAPABILITY_AP_SME_OFFLOAD_PARTIAL	= 4,
	WMI_FW_CAPABILITY_WMI_ONLY			= 5,
	WMI_FW_CAPABILITY_THERMAL_THROTTLING		= 7,
	WMI_FW_CAPABILITY_D3_SUSPEND			= 8,
@@ -73,6 +85,7 @@ enum wmi_fw_capability {
	WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP	= 14,
	WMI_FW_CAPABILITY_PNO				= 15,
	WMI_FW_CAPABILITY_REF_CLOCK_CONTROL		= 18,
	WMI_FW_CAPABILITY_AP_SME_OFFLOAD_NONE		= 19,
	WMI_FW_CAPABILITY_MAX,
};

@@ -164,12 +177,14 @@ enum wmi_command_id {
	WMI_SET_ACTIVE_SILENT_RSSI_TABLE_CMDID		= 0x85C,
	WMI_RF_PWR_ON_DELAY_CMDID			= 0x85D,
	WMI_SET_HIGH_POWER_TABLE_PARAMS_CMDID		= 0x85E,
	WMI_FIXED_SCHEDULING_UL_CONFIG_CMDID		= 0x85F,
	/* Performance monitoring commands */
	WMI_BF_CTRL_CMDID				= 0x862,
	WMI_NOTIFY_REQ_CMDID				= 0x863,
	WMI_GET_STATUS_CMDID				= 0x864,
	WMI_GET_RF_STATUS_CMDID				= 0x866,
	WMI_GET_BASEBAND_TYPE_CMDID			= 0x867,
	WMI_VRING_SWITCH_TIMING_CONFIG_CMDID		= 0x868,
	WMI_UNIT_TEST_CMDID				= 0x900,
	WMI_FLASH_READ_CMDID				= 0x902,
	WMI_FLASH_WRITE_CMDID				= 0x903,
@@ -202,6 +217,7 @@ enum wmi_command_id {
	WMI_GET_THERMAL_THROTTLING_CFG_CMDID		= 0x941,
	/* Read Power Save profile type */
	WMI_PS_DEV_PROFILE_CFG_READ_CMDID		= 0x942,
	WMI_TSF_SYNC_CMDID				= 0x973,
	WMI_TOF_SESSION_START_CMDID			= 0x991,
	WMI_TOF_GET_CAPABILITIES_CMDID			= 0x992,
	WMI_TOF_SET_LCR_CMDID				= 0x993,
@@ -218,11 +234,16 @@ enum wmi_command_id {
	WMI_PRIO_TX_SECTORS_ORDER_CMDID			= 0x9A5,
	WMI_PRIO_TX_SECTORS_NUMBER_CMDID		= 0x9A6,
	WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID	= 0x9A7,
	WMI_BF_CONTROL_CMDID				= 0x9AA,
	WMI_SCHEDULING_SCHEME_CMDID			= 0xA01,
	WMI_FIXED_SCHEDULING_CONFIG_CMDID		= 0xA02,
	WMI_ENABLE_FIXED_SCHEDULING_CMDID		= 0xA03,
	WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_CMDID	= 0xA04,
	WMI_SET_LONG_RANGE_CONFIG_CMDID			= 0xA05,
	WMI_GET_ASSOC_LIST_CMDID			= 0xA06,
	WMI_GET_CCA_INDICATIONS_CMDID			= 0xA07,
	WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_CMDID	= 0xA08,
	WMI_INTERNAL_FW_IOCTL_CMDID			= 0xA0B,
	WMI_SET_MAC_ADDRESS_CMDID			= 0xF003,
	WMI_ABORT_SCAN_CMDID				= 0xF007,
	WMI_SET_PROMISCUOUS_MODE_CMDID			= 0xF041,
@@ -484,6 +505,18 @@ enum wmi_rf_mgmt_type {
	WMI_RF_MGMT_GET_STATUS	= 0x02,
};

/* WMI_BF_CONTROL_CMDID */
enum wmi_bf_triggers {
	WMI_BF_TRIGGER_RS_MCS1_TH_FAILURE		= 0x01,
	WMI_BF_TRIGGER_RS_MCS1_NO_BACK_FAILURE		= 0x02,
	WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP		= 0x04,
	WMI_BF_TRIGGER_MAX_BACK_FAILURE			= 0x08,
	WMI_BF_TRIGGER_FW				= 0x10,
	WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_KEEP_ALIVE	= 0x20,
	WMI_BF_TRIGGER_AOA				= 0x40,
	WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_UPM		= 0x80,
};

/* WMI_RF_MGMT_CMDID */
struct wmi_rf_mgmt_cmd {
	__le32 rf_mgmt_type;
@@ -519,7 +552,9 @@ struct wmi_bcon_ctrl_cmd {
	u8 disable_sec;
	u8 hidden_ssid;
	u8 is_go;
	u8 reserved[2];
	/* A-BFT length override if non-0 */
	u8 abft_len;
	u8 reserved;
} __packed;

/* WMI_PORT_ALLOCATE_CMDID */
@@ -584,6 +619,16 @@ struct wmi_power_mgmt_cfg_cmd {
	u8 reserved[3];
} __packed;

/* WMI_PCP_START_CMDID */
enum wmi_ap_sme_offload_mode {
	/* Full AP SME in FW */
	WMI_AP_SME_OFFLOAD_FULL		= 0x00,
	/* Probe AP SME in FW */
	WMI_AP_SME_OFFLOAD_PARTIAL	= 0x01,
	/* AP SME in host */
	WMI_AP_SME_OFFLOAD_NONE		= 0x02,
};

/* WMI_PCP_START_CMDID */
struct wmi_pcp_start_cmd {
	__le16 bcon_interval;
@@ -593,7 +638,8 @@ struct wmi_pcp_start_cmd {
	u8 reserved0[5];
	/* A-BFT length override if non-0 */
	u8 abft_len;
	u8 disable_ap_sme;
	/* enum wmi_ap_sme_offload_mode_e */
	u8 ap_sme_offload_mode;
	u8 network_type;
	u8 channel;
	u8 disable_sec_offload;
@@ -607,6 +653,17 @@ struct wmi_sw_tx_req_cmd {
	u8 payload[0];
} __packed;

/* WMI_VRING_SWITCH_TIMING_CONFIG_CMDID */
struct wmi_vring_switch_timing_config_cmd {
	/* Set vring timing configuration:
	 *
	 * defined interval for vring switch
	 */
	__le32 interval_usec;
	/* vring inactivity threshold */
	__le32 idle_th_usec;
} __packed;

struct wmi_sw_ring_cfg {
	__le64 ring_mem_base;
	__le16 ring_size;
@@ -642,6 +699,7 @@ enum wmi_vring_cfg_schd_params_priority {
	WMI_SCH_PRIO_HIGH	= 0x01,
};

#define CIDXTID_EXTENDED_CID_TID		(0xFF)
#define CIDXTID_CID_POS				(0)
#define CIDXTID_CID_LEN				(4)
#define CIDXTID_CID_MSK				(0xF)
@@ -662,6 +720,9 @@ struct wmi_vring_cfg {
	struct wmi_sw_ring_cfg tx_sw_ring;
	/* 0-23 vrings */
	u8 ringid;
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 encap_trans_type;
	/* 802.3 DS cfg */
@@ -671,6 +732,11 @@ struct wmi_vring_cfg {
	u8 to_resolution;
	u8 agg_max_wsize;
	struct wmi_vring_cfg_schd schd_params;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
} __packed;

enum wmi_vring_cfg_cmd_action {
@@ -868,23 +934,42 @@ struct wmi_cfg_rx_chain_cmd {

/* WMI_RCP_ADDBA_RESP_CMDID */
struct wmi_rcp_addba_resp_cmd {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 dialog_token;
	__le16 status_code;
	/* ieee80211_ba_parameterset field to send */
	__le16 ba_param_set;
	__le16 ba_timeout;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
} __packed;

/* WMI_RCP_DELBA_CMDID */
struct wmi_rcp_delba_cmd {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 reserved;
	__le16 reason;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved2[2];
} __packed;

/* WMI_RCP_ADDBA_REQ_CMDID */
struct wmi_rcp_addba_req_cmd {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 dialog_token;
	/* ieee80211_ba_parameterset field as it received */
@@ -892,6 +977,11 @@ struct wmi_rcp_addba_req_cmd {
	__le16 ba_timeout;
	/* ieee80211_ba_seqstrl field as it received */
	__le16 ba_seq_ctrl;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
} __packed;

/* WMI_SET_MAC_ADDRESS_CMDID */
@@ -902,15 +992,20 @@ struct wmi_set_mac_address_cmd {

/* WMI_ECHO_CMDID
 * Check FW is alive
 * WMI_DEEP_ECHO_CMDID
 * Check FW and ucode are alive
 * Returned event: WMI_ECHO_RSP_EVENTID
 * same event for both commands
 */
struct wmi_echo_cmd {
	__le32 value;
} __packed;

/* WMI_DEEP_ECHO_CMDID
 * Check FW and ucode are alive
 * Returned event: WMI_ECHO_RSP_EVENTID
 */
struct wmi_deep_echo_cmd {
	__le32 value;
} __packed;

/* WMI_RF_PWR_ON_DELAY_CMDID
 * set FW time parameters used through RF resetting
 *  RF reset consists of bringing its power down for a period of time, then
@@ -928,7 +1023,7 @@ struct wmi_rf_pwr_on_delay_cmd {
	__le16 up_delay_usec;
} __packed;

/* \WMI_SET_HIGH_POWER_TABLE_PARAMS_CMDID
/* WMI_SET_HIGH_POWER_TABLE_PARAMS_CMDID
 * This API controls the Tx and Rx gain over temperature.
 * It controls the Tx D-type, Rx D-type and Rx E-type amplifiers.
 * It also controls the Tx gain index, by controlling the Rx to Tx gain index
@@ -942,25 +1037,46 @@ struct wmi_set_high_power_table_params_cmd {
	u8 tx_dtype_temp[WMI_RF_DTYPE_LENGTH];
	u8 reserved0;
	/* Tx D-type values to be used for each temperature range */
	__le32 tx_dtype_conf[WMI_RF_DTYPE_LENGTH + 1];
	__le32 tx_dtype_conf[WMI_RF_DTYPE_CONF_LENGTH];
	/* Temperature range for Tx E-type parameters */
	u8 tx_etype_temp[WMI_RF_ETYPE_LENGTH];
	u8 reserved1;
	/* Tx E-type values to be used for each temperature range.
	 * The last 4 values of any range are the first 4 values of the next
	 * range and so on
	 */
	__le32 tx_etype_conf[WMI_RF_ETYPE_CONF_LENGTH];
	/* Temperature range for Rx D-type parameters */
	u8 rx_dtype_temp[WMI_RF_DTYPE_LENGTH];
	u8 reserved1;
	u8 reserved2;
	/* Rx D-type values to be used for each temperature range */
	__le32 rx_dtype_conf[WMI_RF_DTYPE_LENGTH + 1];
	__le32 rx_dtype_conf[WMI_RF_DTYPE_CONF_LENGTH];
	/* Temperature range for Rx E-type parameters */
	u8 rx_etype_temp[WMI_RF_ETYPE_LENGTH];
	u8 reserved2;
	u8 reserved3;
	/* Rx E-type values to be used for each temperature range.
	 * The last 4 values of any range are the first 4 values of the next
	 * range and so on
	 */
	__le32 rx_etype_conf[WMI_RF_ETYPE_VAL_PER_RANGE + WMI_RF_ETYPE_LENGTH];
	__le32 rx_etype_conf[WMI_RF_ETYPE_CONF_LENGTH];
	/* Temperature range for rx_2_tx_offs parameters */
	u8 rx_2_tx_temp[WMI_RF_RX2TX_LENGTH];
	u8 reserved3;
	u8 reserved4;
	/* Rx to Tx gain index offset */
	s8 rx_2_tx_offs[WMI_RF_RX2TX_LENGTH + 1];
	s8 rx_2_tx_offs[WMI_RF_RX2TX_CONF_LENGTH];
} __packed;

/* WMI_FIXED_SCHEDULING_UL_CONFIG_CMDID
 * This API sets rd parameter per mcs.
 * Relevant only in Fixed Scheduling mode.
 * Returned event: WMI_FIXED_SCHEDULING_UL_CONFIG_EVENTID
 */
struct wmi_fixed_scheduling_ul_config_cmd {
	/* Use mcs -1 to set for every mcs */
	s8 mcs;
	/* Number of frames with rd bit set in a single virtual slot */
	u8 rd_count_per_slot;
	u8 reserved[2];
} __packed;

/* CMD: WMI_RF_XPM_READ_CMDID */
@@ -1267,6 +1383,93 @@ struct wmi_set_long_range_config_complete_event {
	u8 reserved[3];
} __packed;

/* payload max size is 236 bytes: max event buffer size (256) - WMI headers
 * (16) - prev struct field size (4)
 */
#define WMI_MAX_IOCTL_PAYLOAD_SIZE		(236)
#define WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE	(236)
#define WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE	(236)

enum wmi_internal_fw_ioctl_code {
	WMI_INTERNAL_FW_CODE_NONE	= 0x0,
	WMI_INTERNAL_FW_CODE_QCOM	= 0x1,
};

/* WMI_INTERNAL_FW_IOCTL_CMDID */
struct wmi_internal_fw_ioctl_cmd {
	/* enum wmi_internal_fw_ioctl_code */
	__le16 code;
	__le16 length;
	/* payload max size is WMI_MAX_IOCTL_PAYLOAD_SIZE
	 * Must be the last member of the struct
	 */
	__le32 payload[0];
} __packed;

/* WMI_INTERNAL_FW_IOCTL_EVENTID */
struct wmi_internal_fw_ioctl_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved;
	__le16 length;
	/* payload max size is WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE
	 * Must be the last member of the struct
	 */
	__le32 payload[0];
} __packed;

/* WMI_INTERNAL_FW_EVENT_EVENTID */
struct wmi_internal_fw_event_event {
	__le16 id;
	__le16 length;
	/* payload max size is WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE
	 * Must be the last member of the struct
	 */
	__le32 payload[0];
} __packed;

/* WMI_BF_CONTROL_CMDID */
struct wmi_bf_control_cmd {
	/* wmi_bf_triggers */
	__le32 triggers;
	u8 cid;
	/* DISABLED = 0, ENABLED = 1 , DRY_RUN = 2 */
	u8 txss_mode;
	/* DISABLED = 0, ENABLED = 1, DRY_RUN = 2 */
	u8 brp_mode;
	/* Max cts threshold (correspond to
	 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
	 */
	u8 bf_trigger_max_cts_failure_thr;
	/* Max cts threshold in dense (correspond to
	 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
	 */
	u8 bf_trigger_max_cts_failure_dense_thr;
	/* Max b-ack threshold (correspond to
	 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
	 */
	u8 bf_trigger_max_back_failure_thr;
	/* Max b-ack threshold in dense (correspond to
	 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
	 */
	u8 bf_trigger_max_back_failure_dense_thr;
	u8 reserved0;
	/* Wrong sectors threshold */
	__le32 wrong_sector_bis_thr;
	/* BOOL to enable/disable long term trigger */
	u8 long_term_enable;
	/* 1 = Update long term thresholds from the long_term_mbps_th_tbl and
	 * long_term_trig_timeout_per_mcs arrays, 0 = Ignore
	 */
	u8 long_term_update_thr;
	/* Long term throughput threshold [Mbps] */
	u8 long_term_mbps_th_tbl[WMI_NUM_MCS];
	u8 reserved1;
	/* Long term timeout threshold table [msec] */
	__le16 long_term_trig_timeout_per_mcs[WMI_NUM_MCS];
	u8 reserved2[2];
} __packed;

/* WMI Events
 * List of Events (target to host)
 */
@@ -1325,6 +1528,7 @@ enum wmi_event_id {
	WMI_SET_SILENT_RSSI_TABLE_DONE_EVENTID		= 0x185C,
	WMI_RF_PWR_ON_DELAY_RSP_EVENTID			= 0x185D,
	WMI_SET_HIGH_POWER_TABLE_PARAMS_EVENTID		= 0x185E,
	WMI_FIXED_SCHEDULING_UL_CONFIG_EVENTID		= 0x185F,
	/* Performance monitoring events */
	WMI_DATA_PORT_OPEN_EVENTID			= 0x1860,
	WMI_WBE_LINK_DOWN_EVENTID			= 0x1861,
@@ -1334,6 +1538,7 @@ enum wmi_event_id {
	WMI_VRING_EN_EVENTID				= 0x1865,
	WMI_GET_RF_STATUS_EVENTID			= 0x1866,
	WMI_GET_BASEBAND_TYPE_EVENTID			= 0x1867,
	WMI_VRING_SWITCH_TIMING_CONFIG_EVENTID		= 0x1868,
	WMI_UNIT_TEST_EVENTID				= 0x1900,
	WMI_FLASH_READ_DONE_EVENTID			= 0x1902,
	WMI_FLASH_WRITE_DONE_EVENTID			= 0x1903,
@@ -1363,6 +1568,7 @@ enum wmi_event_id {
	WMI_GET_THERMAL_THROTTLING_CFG_EVENTID		= 0x1941,
	/* return the Power Save profile */
	WMI_PS_DEV_PROFILE_CFG_READ_EVENTID		= 0x1942,
	WMI_TSF_SYNC_STATUS_EVENTID			= 0x1973,
	WMI_TOF_SESSION_END_EVENTID			= 0x1991,
	WMI_TOF_GET_CAPABILITIES_EVENTID		= 0x1992,
	WMI_TOF_SET_LCR_EVENTID				= 0x1993,
@@ -1380,17 +1586,24 @@ enum wmi_event_id {
	WMI_PRIO_TX_SECTORS_ORDER_EVENTID		= 0x19A5,
	WMI_PRIO_TX_SECTORS_NUMBER_EVENTID		= 0x19A6,
	WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID	= 0x19A7,
	WMI_BF_CONTROL_EVENTID				= 0x19AA,
	WMI_SCHEDULING_SCHEME_EVENTID			= 0x1A01,
	WMI_FIXED_SCHEDULING_CONFIG_COMPLETE_EVENTID	= 0x1A02,
	WMI_ENABLE_FIXED_SCHEDULING_COMPLETE_EVENTID	= 0x1A03,
	WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_EVENTID	= 0x1A04,
	WMI_SET_LONG_RANGE_CONFIG_COMPLETE_EVENTID	= 0x1A05,
	WMI_GET_ASSOC_LIST_RES_EVENTID			= 0x1A06,
	WMI_GET_CCA_INDICATIONS_EVENTID			= 0x1A07,
	WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_EVENTID	= 0x1A08,
	WMI_INTERNAL_FW_EVENT_EVENTID			= 0x1A0A,
	WMI_INTERNAL_FW_IOCTL_EVENTID			= 0x1A0B,
	WMI_SET_CHANNEL_EVENTID				= 0x9000,
	WMI_ASSOC_REQ_EVENTID				= 0x9001,
	WMI_EAPOL_RX_EVENTID				= 0x9002,
	WMI_MAC_ADDR_RESP_EVENTID			= 0x9003,
	WMI_FW_VER_EVENTID				= 0x9004,
	WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID		= 0x9005,
	WMI_INTERNAL_FW_SET_CHANNEL			= 0x9006,
	WMI_COMMAND_NOT_SUPPORTED_EVENTID		= 0xFFFF,
};

@@ -1462,12 +1675,16 @@ enum rf_type {
	RF_UNKNOWN	= 0x00,
	RF_MARLON	= 0x01,
	RF_SPARROW	= 0x02,
	RF_TALYNA1	= 0x03,
	RF_TALYNA2	= 0x04,
};

/* WMI_GET_RF_STATUS_EVENTID */
enum board_file_rf_type {
	BF_RF_MARLON	= 0x00,
	BF_RF_SPARROW	= 0x01,
	BF_RF_TALYNA1	= 0x02,
	BF_RF_TALYNA2	= 0x03,
};

/* WMI_GET_RF_STATUS_EVENTID */
@@ -1507,6 +1724,7 @@ enum baseband_type {
	BASEBAND_SPARROW_M_C0	= 0x06,
	BASEBAND_SPARROW_M_D0	= 0x07,
	BASEBAND_TALYN_M_A0	= 0x08,
	BASEBAND_TALYN_M_B0	= 0x09,
};

/* WMI_GET_BASEBAND_TYPE_EVENTID */
@@ -1551,7 +1769,11 @@ struct wmi_ready_event {
	u8 numof_additional_mids;
	/* rfc read calibration result. 5..15 */
	u8 rfc_read_calib_result;
	u8 reserved[3];
	/* Max associated STAs supported by FW in AP mode (default 0 means 8
	 * STA)
	 */
	u8 max_assoc_sta;
	u8 reserved[2];
} __packed;

/* WMI_NOTIFY_REQ_DONE_EVENTID */
@@ -1666,13 +1888,13 @@ enum wmi_pno_result {
};

struct wmi_start_sched_scan_event {
	/* pno_result */
	/* wmi_pno_result */
	u8 result;
	u8 reserved[3];
} __packed;

struct wmi_stop_sched_scan_event {
	/* pno_result */
	/* wmi_pno_result */
	u8 result;
	u8 reserved[3];
} __packed;
@@ -1739,9 +1961,17 @@ struct wmi_ba_status_event {

/* WMI_DELBA_EVENTID */
struct wmi_delba_event {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 from_initiator;
	__le16 reason;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
} __packed;

/* WMI_VRING_CFG_DONE_EVENTID */
@@ -1754,13 +1984,24 @@ struct wmi_vring_cfg_done_event {

/* WMI_RCP_ADDBA_RESP_SENT_EVENTID */
struct wmi_rcp_addba_resp_sent_event {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 reserved;
	__le16 status;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved2[2];
} __packed;

/* WMI_RCP_ADDBA_REQ_EVENTID */
struct wmi_rcp_addba_req_event {
	/* Used for cid less than 8. For higher cid set
	 * CIDXTID_EXTENDED_CID_TID here and use cid and tid members instead
	 */
	u8 cidxtid;
	u8 dialog_token;
	/* ieee80211_ba_parameterset as it received */
@@ -1768,6 +2009,11 @@ struct wmi_rcp_addba_req_event {
	__le16 ba_timeout;
	/* ieee80211_ba_seqstrl field as it received */
	__le16 ba_seq_ctrl;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
} __packed;

/* WMI_CFG_RX_CHAIN_DONE_EVENTID */
@@ -1942,6 +2188,13 @@ struct wmi_set_high_power_table_params_event {
	u8 reserved[3];
} __packed;

/* WMI_FIXED_SCHEDULING_UL_CONFIG_EVENTID */
struct wmi_fixed_scheduling_ul_config_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_TEMP_SENSE_DONE_EVENTID
 *
 * Measure MAC and radio temperatures
@@ -2290,6 +2543,8 @@ struct wmi_link_maintain_cfg {
	__le32 bad_beacons_num_threshold;
	/* SNR limit for bad_beacons_detector */
	__le32 bad_beacons_snr_threshold_db;
	/* timeout for disassoc response frame in uSec */
	__le32 disconnect_timeout;
} __packed;

/* WMI_LINK_MAINTAIN_CFG_WRITE_CMDID */
@@ -2519,6 +2774,7 @@ enum wmi_tof_session_end_status {
	WMI_TOF_SESSION_END_FAIL		= 0x01,
	WMI_TOF_SESSION_END_PARAMS_ERROR	= 0x02,
	WMI_TOF_SESSION_END_ABORTED		= 0x03,
	WMI_TOF_SESSION_END_BUSY		= 0x04,
};

/* WMI_TOF_SESSION_END_EVENTID */
@@ -2925,7 +3181,40 @@ struct wmi_set_silent_rssi_table_done_event {
	__le32 table;
} __packed;

/* \WMI_COMMAND_NOT_SUPPORTED_EVENTID */
/* WMI_VRING_SWITCH_TIMING_CONFIG_EVENTID */
struct wmi_vring_switch_timing_config_event {
	/* enum wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_GET_ASSOC_LIST_RES_EVENTID */
struct wmi_assoc_sta_info {
	u8 mac[WMI_MAC_LEN];
	u8 omni_index_address;
	u8 reserved;
} __packed;

#define WMI_GET_ASSOC_LIST_SIZE	(8)

/* WMI_GET_ASSOC_LIST_RES_EVENTID
 * Returns up to MAX_ASSOC_STA_LIST_SIZE associated STAs
 */
struct wmi_get_assoc_list_res_event {
	struct wmi_assoc_sta_info assoc_sta_list[WMI_GET_ASSOC_LIST_SIZE];
	/* STA count */
	u8 count;
	u8 reserved[3];
} __packed;

/* WMI_BF_CONTROL_EVENTID */
struct wmi_bf_control_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_COMMAND_NOT_SUPPORTED_EVENTID */
struct wmi_command_not_supported_event {
	/* device id */
	u8 mid;
@@ -2936,4 +3225,62 @@ struct wmi_command_not_supported_event {
	__le16 reserved1;
} __packed;

/* WMI_TSF_SYNC_CMDID */
struct wmi_tsf_sync_cmd {
	/* The time interval to send announce frame in one BI */
	u8 interval_ms;
	/* The mcs to send announce frame */
	u8 mcs;
	u8 reserved[6];
} __packed;

/* WMI_TSF_SYNC_STATUS_EVENTID */
enum wmi_tsf_sync_status {
	WMI_TSF_SYNC_SUCCESS	= 0x00,
	WMI_TSF_SYNC_FAILED	= 0x01,
	WMI_TSF_SYNC_REJECTED	= 0x02,
};

/* WMI_TSF_SYNC_STATUS_EVENTID */
struct wmi_tsf_sync_status_event {
	/* enum wmi_tsf_sync_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_GET_CCA_INDICATIONS_EVENTID */
struct wmi_get_cca_indications_event {
	/* wmi_fw_status */
	u8 status;
	/* CCA-Energy Detect in percentage over last BI (0..100) */
	u8 cca_ed_percent;
	/* Averaged CCA-Energy Detect in percent over number of BIs (0..100) */
	u8 cca_ed_avg_percent;
	/* NAV percent over last BI (0..100) */
	u8 nav_percent;
	/* Averaged NAV percent over number of BIs (0..100) */
	u8 nav_avg_percent;
	u8 reserved[3];
} __packed;

/* WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_CMDID */
struct wmi_set_cca_indications_bi_avg_num_cmd {
	/* set the number of bis to average cca_ed (0..255) */
	u8 bi_number;
	u8 reserved[3];
} __packed;

/* WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_EVENTID */
struct wmi_set_cca_indications_bi_avg_num_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_INTERNAL_FW_SET_CHANNEL */
struct wmi_internal_fw_set_channel_event {
	u8 channel_num;
	u8 reserved[3];
} __packed;

#endif /* __WILOCITY_WMI_H__ */