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

Commit 08989f96 authored by Lior David's avatar Lior David 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 avatarLior David <qca_liord@qca.qualcomm.com>
Signed-off-by: default avatarMaya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 5ffae432
Loading
Loading
Loading
Loading
+292 −0
Original line number Original line Diff line number Diff line
@@ -46,6 +46,16 @@ enum wmi_mid {
	MID_BROADCAST		= 0xFF,
	MID_BROADCAST		= 0xFF,
};
};


/* FW capability IDs
 * Each ID maps to a bit in a 32-bit bitmask value provided by the FW to
 * the host
 */
enum wmi_fw_capability {
	WMI_FW_CAPABILITY_FTM		= 0,
	WMI_FW_CAPABILITY_PS_CONFIG	= 1,
	WMI_FW_CAPABILITY_MAX,
};

/* WMI_CMD_HDR */
/* WMI_CMD_HDR */
struct wmi_cmd_hdr {
struct wmi_cmd_hdr {
	u8 mid;
	u8 mid;
@@ -170,6 +180,13 @@ enum wmi_command_id {
	/* Not supported yet */
	/* Not supported yet */
	WMI_PS_MID_CFG_READ_CMDID		= 0x920,
	WMI_PS_MID_CFG_READ_CMDID		= 0x920,
	WMI_RS_CFG_CMDID			= 0x921,
	WMI_RS_CFG_CMDID			= 0x921,
	WMI_GET_DETAILED_RS_RES_CMDID		= 0x922,
	WMI_AOA_MEAS_CMDID			= 0x923,
	WMI_TOF_SESSION_START_CMDID		= 0x991,
	WMI_TOF_GET_CAPABILITIES_CMDID		= 0x992,
	WMI_TOF_SET_LCR_CMDID			= 0x993,
	WMI_TOF_SET_LCI_CMDID			= 0x994,
	WMI_TOF_CHANNEL_INFO_CMDID		= 0x995,
	WMI_SET_MAC_ADDRESS_CMDID		= 0xF003,
	WMI_SET_MAC_ADDRESS_CMDID		= 0xF003,
	WMI_ABORT_SCAN_CMDID			= 0xF007,
	WMI_ABORT_SCAN_CMDID			= 0xF007,
	WMI_SET_PROMISCUOUS_MODE_CMDID		= 0xF041,
	WMI_SET_PROMISCUOUS_MODE_CMDID		= 0xF041,
@@ -843,6 +860,88 @@ struct wmi_pmc_cmd {
	__le64 mem_base;
	__le64 mem_base;
} __packed;
} __packed;


enum wmi_aoa_meas_type {
	WMI_AOA_PHASE_MEAS	= 0x00,
	WMI_AOA_PHASE_AMP_MEAS	= 0x01,
};

/* WMI_AOA_MEAS_CMDID */
struct wmi_aoa_meas_cmd {
	u8 mac_addr[WMI_MAC_LEN];
	/* channels IDs:
	 * 0 - 58320 MHz
	 * 1 - 60480 MHz
	 * 2 - 62640 MHz
	 */
	u8 channel;
	/* enum wmi_aoa_meas_type */
	u8 aoa_meas_type;
	__le32 meas_rf_mask;
} __packed;

enum wmi_tof_burst_duration {
	WMI_TOF_BURST_DURATION_250_USEC		= 2,
	WMI_TOF_BURST_DURATION_500_USEC		= 3,
	WMI_TOF_BURST_DURATION_1_MSEC		= 4,
	WMI_TOF_BURST_DURATION_2_MSEC		= 5,
	WMI_TOF_BURST_DURATION_4_MSEC		= 6,
	WMI_TOF_BURST_DURATION_8_MSEC		= 7,
	WMI_TOF_BURST_DURATION_16_MSEC		= 8,
	WMI_TOF_BURST_DURATION_32_MSEC		= 9,
	WMI_TOF_BURST_DURATION_64_MSEC		= 10,
	WMI_TOF_BURST_DURATION_128_MSEC		= 11,
	WMI_TOF_BURST_DURATION_NO_PREFERENCES	= 15,
};

enum wmi_tof_session_start_flags {
	WMI_TOF_SESSION_START_FLAG_SECURED	= 0x1,
	WMI_TOF_SESSION_START_FLAG_ASAP		= 0x2,
	WMI_TOF_SESSION_START_FLAG_LCI_REQ	= 0x4,
	WMI_TOF_SESSION_START_FLAG_LCR_REQ	= 0x8,
};

/* WMI_TOF_SESSION_START_CMDID */
struct wmi_ftm_dest_info {
	u8 channel;
	/* wmi_tof_session_start_flags_e */
	u8 flags;
	u8 initial_token;
	u8 num_of_ftm_per_burst;
	u8 num_of_bursts_exp;
	/* wmi_tof_burst_duration_e */
	u8 burst_duration;
	/* Burst Period indicate interval between two consecutive burst
	 * instances, in units of 100 ms
	 */
	__le16 burst_period;
	u8 dst_mac[WMI_MAC_LEN];
	__le16 reserved;
} __packed;

/* WMI_TOF_SESSION_START_CMDID */
struct wmi_tof_session_start_cmd {
	__le32 session_id;
	u8 num_of_aoa_measures;
	u8 aoa_type;
	__le16 num_of_dest;
	u8 reserved[4];
	struct wmi_ftm_dest_info ftm_dest_info[0];
} __packed;

enum wmi_tof_channel_info_report_type {
	WMI_TOF_CHANNEL_INFO_TYPE_CIR			= 0x1,
	WMI_TOF_CHANNEL_INFO_TYPE_RSSI			= 0x2,
	WMI_TOF_CHANNEL_INFO_TYPE_SNR			= 0x4,
	WMI_TOF_CHANNEL_INFO_TYPE_DEBUG_DATA		= 0x8,
	WMI_TOF_CHANNEL_INFO_TYPE_VENDOR_SPECIFIC	= 0x10,
};

/* WMI_TOF_CHANNEL_INFO_CMDID */
struct wmi_tof_channel_info_cmd {
	/* wmi_tof_channel_info_report_type_e */
	__le32 channel_info_report_request;
} __packed;

/* WMI Events
/* WMI Events
 * List of Events (target to host)
 * List of Events (target to host)
 */
 */
@@ -934,6 +1033,14 @@ enum wmi_event_id {
	/* Not supported yet */
	/* Not supported yet */
	WMI_PS_MID_CFG_READ_EVENTID			= 0x1920,
	WMI_PS_MID_CFG_READ_EVENTID			= 0x1920,
	WMI_RS_CFG_DONE_EVENTID				= 0x1921,
	WMI_RS_CFG_DONE_EVENTID				= 0x1921,
	WMI_GET_DETAILED_RS_RES_EVENTID			= 0x1922,
	WMI_AOA_MEAS_EVENTID				= 0x1923,
	WMI_TOF_SESSION_END_EVENTID			= 0x1991,
	WMI_TOF_GET_CAPABILITIES_EVENTID		= 0x1992,
	WMI_TOF_SET_LCR_EVENTID				= 0x1993,
	WMI_TOF_SET_LCI_EVENTID				= 0x1994,
	WMI_TOF_FTM_PER_DEST_RES_EVENTID		= 0x1995,
	WMI_TOF_CHANNEL_INFO_EVENTID			= 0x1996,
	WMI_SET_CHANNEL_EVENTID				= 0x9000,
	WMI_SET_CHANNEL_EVENTID				= 0x9000,
	WMI_ASSOC_REQ_EVENTID				= 0x9001,
	WMI_ASSOC_REQ_EVENTID				= 0x9001,
	WMI_EAPOL_RX_EVENTID				= 0x9002,
	WMI_EAPOL_RX_EVENTID				= 0x9002,
@@ -1003,6 +1110,13 @@ struct wmi_fw_ver_event {
	__le32 bl_minor;
	__le32 bl_minor;
	__le32 bl_subminor;
	__le32 bl_subminor;
	__le32 bl_build;
	__le32 bl_build;
	/* The number of entries in the FW capabilies array */
	u8 fw_capabilities_len;
	u8 reserved[3];
	/* FW capabilities info
	 * Must be the last member of the struct
	 */
	__le32 fw_capabilities[0];
} __packed;
} __packed;


/* WMI_GET_RF_STATUS_EVENTID */
/* WMI_GET_RF_STATUS_EVENTID */
@@ -1565,6 +1679,41 @@ struct wmi_rs_cfg_done_event {
	u8 reserved[2];
	u8 reserved[2];
} __packed;
} __packed;


/* WMI_GET_DETAILED_RS_RES_CMDID */
struct wmi_get_detailed_rs_res_cmd {
	/* connection id */
	u8 cid;
	u8 reserved[3];
} __packed;

/* RS results status */
enum wmi_rs_results_status {
	WMI_RS_RES_VALID	= 0x00,
	WMI_RS_RES_INVALID	= 0x01,
};

/* Rate search results */
struct wmi_rs_results {
	/* number of sent MPDUs */
	u8 num_of_tx_pkt[WMI_NUM_MCS];
	/* number of non-acked MPDUs */
	u8 num_of_non_acked_pkt[WMI_NUM_MCS];
	/* RS timestamp */
	__le32 tsf;
	/* RS selected MCS */
	u8 mcs;
} __packed;

/* WMI_GET_DETAILED_RS_RES_EVENTID */
struct wmi_get_detailed_rs_res_event {
	u8 cid;
	/* enum wmi_rs_results_status */
	u8 status;
	/* detailed rs results */
	struct wmi_rs_results rs_results;
	u8 reserved[3];
} __packed;

/* broadcast connection ID */
/* broadcast connection ID */
#define WMI_LINK_MAINTAIN_CFG_CID_BROADCAST	(0xFFFFFFFF)
#define WMI_LINK_MAINTAIN_CFG_CID_BROADCAST	(0xFFFFFFFF)


@@ -1892,4 +2041,147 @@ struct wmi_ps_mid_cfg_read_event {
	__le32 status;
	__le32 status;
} __packed;
} __packed;


#define WMI_AOA_MAX_DATA_SIZE	(128)

enum wmi_aoa_meas_status {
	WMI_AOA_MEAS_SUCCESS		= 0x00,
	WMI_AOA_MEAS_PEER_INCAPABLE	= 0x01,
	WMI_AOA_MEAS_FAILURE		= 0x02,
};

/* WMI_AOA_MEAS_EVENTID */
struct wmi_aoa_meas_event {
	u8 mac_addr[WMI_MAC_LEN];
	/* channels IDs:
	 * 0 - 58320 MHz
	 * 1 - 60480 MHz
	 * 2 - 62640 MHz
	 */
	u8 channel;
	/* enum wmi_aoa_meas_type */
	u8 aoa_meas_type;
	/* Measurments are from RFs, defined by the mask */
	__le32 meas_rf_mask;
	/* enum wmi_aoa_meas_status */
	u8 meas_status;
	u8 reserved;
	/* Length of meas_data in bytes */
	__le16 length;
	u8 meas_data[WMI_AOA_MAX_DATA_SIZE];
} __packed;

/* WMI_TOF_GET_CAPABILITIES_EVENTID */
struct wmi_tof_get_capabilities_event {
	u8 ftm_capability;
	/* maximum supported number of destination to start TOF */
	u8 max_num_of_dest;
	/* maximum supported number of measurements per burst */
	u8 max_num_of_meas_per_burst;
	u8 reserved;
	/* maximum supported multi bursts */
	__le16 max_multi_bursts_sessions;
	/* maximum supported FTM burst duration , wmi_tof_burst_duration_e */
	__le16 max_ftm_burst_duration;
	/* AOA supported types */
	__le32 aoa_supported_types;
} __packed;

enum wmi_tof_session_end_status {
	WMI_TOF_SESSION_END_NO_ERROR		= 0x00,
	WMI_TOF_SESSION_END_FAIL		= 0x01,
	WMI_TOF_SESSION_END_PARAMS_ERROR	= 0x02,
	WMI_TOF_SESSION_END_ABORTED		= 0x03,
};

/* WMI_TOF_SESSION_END_EVENTID */
struct wmi_tof_session_end_event {
	/* FTM session ID */
	__le32 session_id;
	/* wmi_tof_session_end_status_e */
	u8 status;
	u8 reserved[3];
} __packed;

/* Responder FTM Results */
struct wmi_responder_ftm_res {
	u8 t1[6];
	u8 t2[6];
	u8 t3[6];
	u8 t4[6];
	__le16 tod_err;
	__le16 toa_err;
	__le16 tod_err_initiator;
	__le16 toa_err_initiator;
} __packed;

enum wmi_tof_ftm_per_dest_res_status {
	WMI_PER_DEST_RES_NO_ERROR		= 0x00,
	WMI_PER_DEST_RES_TX_RX_FAIL		= 0x01,
	WMI_PER_DEST_RES_PARAM_DONT_MATCH	= 0x02,
};

enum wmi_tof_ftm_per_dest_res_flags {
	WMI_PER_DEST_RES_REQ_START		= 0x01,
	WMI_PER_DEST_RES_BURST_REPORT_END	= 0x02,
	WMI_PER_DEST_RES_REQ_END		= 0x04,
	WMI_PER_DEST_RES_PARAM_UPDATE		= 0x08,
};

/* WMI_TOF_FTM_PER_DEST_RES_EVENTID */
struct wmi_tof_ftm_per_dest_res_event {
	/* FTM session ID */
	__le32 session_id;
	/* destination MAC address */
	u8 dst_mac[WMI_MAC_LEN];
	/* wmi_tof_ftm_per_dest_res_flags_e */
	u8 flags;
	/* wmi_tof_ftm_per_dest_res_status_e */
	u8 status;
	/* responder ASAP */
	u8 responder_asap;
	/* responder number of FTM per burst */
	u8 responder_num_ftm_per_burst;
	/* responder number of FTM burst exponent */
	u8 responder_num_ftm_bursts_exp;
	/* responder burst duration ,wmi_tof_burst_duration_e */
	u8 responder_burst_duration;
	/* responder burst period, indicate interval between two consecutive
	 * burst instances, in units of 100 ms
	 */
	__le16 responder_burst_period;
	/* receive burst counter */
	__le16 bursts_cnt;
	/* tsf of responder start burst */
	__le32 tsf_sync;
	/* actual received ftm per burst */
	u8 actual_ftm_per_burst;
	u8 reserved0[7];
	struct wmi_responder_ftm_res responder_ftm_res[0];
} __packed;

enum wmi_tof_channel_info_type {
	WMI_TOF_CHANNEL_INFO_AOA		= 0x00,
	WMI_TOF_CHANNEL_INFO_LCI		= 0x01,
	WMI_TOF_CHANNEL_INFO_LCR		= 0x02,
	WMI_TOF_CHANNEL_INFO_VENDOR_SPECIFIC	= 0x03,
	WMI_TOF_CHANNEL_INFO_CIR		= 0x04,
	WMI_TOF_CHANNEL_INFO_RSSI		= 0x05,
	WMI_TOF_CHANNEL_INFO_SNR		= 0x06,
	WMI_TOF_CHANNEL_INFO_DEBUG		= 0x07,
};

/* WMI_TOF_CHANNEL_INFO_EVENTID */
struct wmi_tof_channel_info_event {
	/* FTM session ID */
	__le32 session_id;
	/* destination MAC address */
	u8 dst_mac[WMI_MAC_LEN];
	/* wmi_tof_channel_info_type_e */
	u8 type;
	/* data report length */
	u8 len;
	/* data report payload */
	u8 report[0];
} __packed;

#endif /* __WILOCITY_WMI_H__ */
#endif /* __WILOCITY_WMI_H__ */