Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ISC */
0002 /*
0003  * Copyright (c) 2018 The Linux Foundation. All rights reserved.
0004  */
0005 
0006 #ifndef WCN3990_QMI_SVC_V01_H
0007 #define WCN3990_QMI_SVC_V01_H
0008 
0009 #define WLFW_SERVICE_ID_V01 0x45
0010 #define WLFW_SERVICE_VERS_V01 0x01
0011 
0012 #define QMI_WLFW_BDF_DOWNLOAD_REQ_V01 0x0025
0013 #define QMI_WLFW_MEM_READY_IND_V01 0x0037
0014 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B
0015 #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A
0016 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034
0017 #define QMI_WLFW_M3_INFO_REQ_V01 0x003C
0018 #define QMI_WLFW_CAP_REQ_V01 0x0024
0019 #define QMI_WLFW_FW_INIT_DONE_IND_V01 0x0038
0020 #define QMI_WLFW_CAL_REPORT_REQ_V01 0x0026
0021 #define QMI_WLFW_M3_INFO_RESP_V01 0x003C
0022 #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029
0023 #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027
0024 #define QMI_WLFW_XO_CAL_IND_V01 0x003D
0025 #define QMI_WLFW_INI_RESP_V01 0x002F
0026 #define QMI_WLFW_CAL_REPORT_RESP_V01 0x0026
0027 #define QMI_WLFW_MAC_ADDR_RESP_V01 0x0033
0028 #define QMI_WLFW_INITIATE_CAL_DOWNLOAD_IND_V01 0x0028
0029 #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034
0030 #define QMI_WLFW_MSA_READY_IND_V01 0x002B
0031 #define QMI_WLFW_ATHDIAG_WRITE_RESP_V01 0x0031
0032 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022
0033 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020
0034 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023
0035 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035
0036 #define QMI_WLFW_REJUVENATE_IND_V01 0x0039
0037 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B
0038 #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031
0039 #define QMI_WLFW_WLAN_MODE_RESP_V01 0x0022
0040 #define QMI_WLFW_RESPOND_MEM_REQ_V01 0x0036
0041 #define QMI_WLFW_PIN_CONNECT_RESULT_IND_V01 0x002C
0042 #define QMI_WLFW_FW_READY_IND_V01 0x0021
0043 #define QMI_WLFW_MSA_READY_RESP_V01 0x002E
0044 #define QMI_WLFW_CAL_UPDATE_REQ_V01 0x0029
0045 #define QMI_WLFW_INI_REQ_V01 0x002F
0046 #define QMI_WLFW_BDF_DOWNLOAD_RESP_V01 0x0025
0047 #define QMI_WLFW_REJUVENATE_ACK_RESP_V01 0x003A
0048 #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D
0049 #define QMI_WLFW_MSA_READY_REQ_V01 0x002E
0050 #define QMI_WLFW_CAP_RESP_V01 0x0024
0051 #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A
0052 #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030
0053 #define QMI_WLFW_VBATT_REQ_V01 0x0032
0054 #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033
0055 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036
0056 #define QMI_WLFW_VBATT_RESP_V01 0x0032
0057 #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D
0058 #define QMI_WLFW_CAL_DOWNLOAD_REQ_V01 0x0027
0059 #define QMI_WLFW_ATHDIAG_READ_REQ_V01 0x0030
0060 #define QMI_WLFW_WLAN_CFG_REQ_V01 0x0023
0061 #define QMI_WLFW_IND_REGISTER_RESP_V01 0x0020
0062 
0063 #define QMI_WLFW_MAX_MEM_REG_V01 2
0064 #define QMI_WLFW_MAX_NUM_MEM_SEG_V01 16
0065 #define QMI_WLFW_MAX_NUM_CAL_V01 5
0066 #define QMI_WLFW_MAX_DATA_SIZE_V01 6144
0067 #define QMI_WLFW_FUNCTION_NAME_LEN_V01 128
0068 #define QMI_WLFW_MAX_NUM_CE_V01 12
0069 #define QMI_WLFW_MAX_TIMESTAMP_LEN_V01 32
0070 #define QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01 6144
0071 #define QMI_WLFW_MAX_NUM_GPIO_V01 32
0072 #define QMI_WLFW_MAX_BUILD_ID_LEN_V01 128
0073 #define QMI_WLFW_MAX_NUM_MEM_CFG_V01 2
0074 #define QMI_WLFW_MAX_STR_LEN_V01 16
0075 #define QMI_WLFW_MAX_NUM_SHADOW_REG_V01 24
0076 #define QMI_WLFW_MAC_ADDR_SIZE_V01 6
0077 #define QMI_WLFW_MAX_SHADOW_REG_V2 36
0078 #define QMI_WLFW_MAX_NUM_SVC_V01 24
0079 
0080 enum wlfw_driver_mode_enum_v01 {
0081     QMI_WLFW_MISSION_V01 = 0,
0082     QMI_WLFW_FTM_V01 = 1,
0083     QMI_WLFW_EPPING_V01 = 2,
0084     QMI_WLFW_WALTEST_V01 = 3,
0085     QMI_WLFW_OFF_V01 = 4,
0086     QMI_WLFW_CCPM_V01 = 5,
0087     QMI_WLFW_QVIT_V01 = 6,
0088     QMI_WLFW_CALIBRATION_V01 = 7,
0089 };
0090 
0091 enum wlfw_cal_temp_id_enum_v01 {
0092     QMI_WLFW_CAL_TEMP_IDX_0_V01 = 0,
0093     QMI_WLFW_CAL_TEMP_IDX_1_V01 = 1,
0094     QMI_WLFW_CAL_TEMP_IDX_2_V01 = 2,
0095     QMI_WLFW_CAL_TEMP_IDX_3_V01 = 3,
0096     QMI_WLFW_CAL_TEMP_IDX_4_V01 = 4,
0097 };
0098 
0099 enum wlfw_pipedir_enum_v01 {
0100     QMI_WLFW_PIPEDIR_NONE_V01 = 0,
0101     QMI_WLFW_PIPEDIR_IN_V01 = 1,
0102     QMI_WLFW_PIPEDIR_OUT_V01 = 2,
0103     QMI_WLFW_PIPEDIR_INOUT_V01 = 3,
0104 };
0105 
0106 enum wlfw_mem_type_enum_v01 {
0107     QMI_WLFW_MEM_TYPE_MSA_V01 = 0,
0108     QMI_WLFW_MEM_TYPE_DDR_V01 = 1,
0109 };
0110 
0111 #define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00)
0112 #define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01)
0113 #define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02)
0114 #define QMI_WLFW_CE_ATTR_SWIZZLE_DESCRIPTORS_V01 ((u32)0x04)
0115 #define QMI_WLFW_CE_ATTR_DISABLE_INTR_V01 ((u32)0x08)
0116 #define QMI_WLFW_CE_ATTR_ENABLE_POLL_V01 ((u32)0x10)
0117 
0118 #define QMI_WLFW_ALREADY_REGISTERED_V01 ((u64)0x01ULL)
0119 #define QMI_WLFW_FW_READY_V01 ((u64)0x02ULL)
0120 #define QMI_WLFW_MSA_READY_V01 ((u64)0x04ULL)
0121 #define QMI_WLFW_MEM_READY_V01 ((u64)0x08ULL)
0122 #define QMI_WLFW_FW_INIT_DONE_V01 ((u64)0x10ULL)
0123 
0124 #define QMI_WLFW_FW_REJUVENATE_V01 ((u64)0x01ULL)
0125 
0126 struct wlfw_ce_tgt_pipe_cfg_s_v01 {
0127     __le32 pipe_num;
0128     __le32 pipe_dir;
0129     __le32 nentries;
0130     __le32 nbytes_max;
0131     __le32 flags;
0132 };
0133 
0134 struct wlfw_ce_svc_pipe_cfg_s_v01 {
0135     __le32 service_id;
0136     __le32 pipe_dir;
0137     __le32 pipe_num;
0138 };
0139 
0140 struct wlfw_shadow_reg_cfg_s_v01 {
0141     u16 id;
0142     u16 offset;
0143 };
0144 
0145 struct wlfw_shadow_reg_v2_cfg_s_v01 {
0146     u32 addr;
0147 };
0148 
0149 struct wlfw_memory_region_info_s_v01 {
0150     u64 region_addr;
0151     u32 size;
0152     u8 secure_flag;
0153 };
0154 
0155 struct wlfw_mem_cfg_s_v01 {
0156     u64 offset;
0157     u32 size;
0158     u8 secure_flag;
0159 };
0160 
0161 struct wlfw_mem_seg_s_v01 {
0162     u32 size;
0163     enum wlfw_mem_type_enum_v01 type;
0164     u32 mem_cfg_len;
0165     struct wlfw_mem_cfg_s_v01 mem_cfg[QMI_WLFW_MAX_NUM_MEM_CFG_V01];
0166 };
0167 
0168 struct wlfw_mem_seg_resp_s_v01 {
0169     u64 addr;
0170     u32 size;
0171     enum wlfw_mem_type_enum_v01 type;
0172 };
0173 
0174 struct wlfw_rf_chip_info_s_v01 {
0175     u32 chip_id;
0176     u32 chip_family;
0177 };
0178 
0179 struct wlfw_rf_board_info_s_v01 {
0180     u32 board_id;
0181 };
0182 
0183 struct wlfw_soc_info_s_v01 {
0184     u32 soc_id;
0185 };
0186 
0187 struct wlfw_fw_version_info_s_v01 {
0188     u32 fw_version;
0189     char fw_build_timestamp[QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1];
0190 };
0191 
0192 struct wlfw_ind_register_req_msg_v01 {
0193     u8 fw_ready_enable_valid;
0194     u8 fw_ready_enable;
0195     u8 initiate_cal_download_enable_valid;
0196     u8 initiate_cal_download_enable;
0197     u8 initiate_cal_update_enable_valid;
0198     u8 initiate_cal_update_enable;
0199     u8 msa_ready_enable_valid;
0200     u8 msa_ready_enable;
0201     u8 pin_connect_result_enable_valid;
0202     u8 pin_connect_result_enable;
0203     u8 client_id_valid;
0204     u32 client_id;
0205     u8 request_mem_enable_valid;
0206     u8 request_mem_enable;
0207     u8 mem_ready_enable_valid;
0208     u8 mem_ready_enable;
0209     u8 fw_init_done_enable_valid;
0210     u8 fw_init_done_enable;
0211     u8 rejuvenate_enable_valid;
0212     u32 rejuvenate_enable;
0213     u8 xo_cal_enable_valid;
0214     u8 xo_cal_enable;
0215 };
0216 
0217 #define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 50
0218 extern struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[];
0219 
0220 struct wlfw_ind_register_resp_msg_v01 {
0221     struct qmi_response_type_v01 resp;
0222     u8 fw_status_valid;
0223     u64 fw_status;
0224 };
0225 
0226 #define WLFW_IND_REGISTER_RESP_MSG_V01_MAX_MSG_LEN 18
0227 extern struct qmi_elem_info wlfw_ind_register_resp_msg_v01_ei[];
0228 
0229 struct wlfw_fw_ready_ind_msg_v01 {
0230     char placeholder;
0231 };
0232 
0233 #define WLFW_FW_READY_IND_MSG_V01_MAX_MSG_LEN 0
0234 extern struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[];
0235 
0236 struct wlfw_msa_ready_ind_msg_v01 {
0237     char placeholder;
0238 };
0239 
0240 #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 0
0241 extern struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[];
0242 
0243 struct wlfw_pin_connect_result_ind_msg_v01 {
0244     u8 pwr_pin_result_valid;
0245     u32 pwr_pin_result;
0246     u8 phy_io_pin_result_valid;
0247     u32 phy_io_pin_result;
0248     u8 rf_pin_result_valid;
0249     u32 rf_pin_result;
0250 };
0251 
0252 #define WLFW_PIN_CONNECT_RESULT_IND_MSG_V01_MAX_MSG_LEN 21
0253 extern struct qmi_elem_info wlfw_pin_connect_result_ind_msg_v01_ei[];
0254 
0255 struct wlfw_wlan_mode_req_msg_v01 {
0256     enum wlfw_driver_mode_enum_v01 mode;
0257     u8 hw_debug_valid;
0258     u8 hw_debug;
0259 };
0260 
0261 #define WLFW_WLAN_MODE_REQ_MSG_V01_MAX_MSG_LEN 11
0262 extern struct qmi_elem_info wlfw_wlan_mode_req_msg_v01_ei[];
0263 
0264 struct wlfw_wlan_mode_resp_msg_v01 {
0265     struct qmi_response_type_v01 resp;
0266 };
0267 
0268 #define WLFW_WLAN_MODE_RESP_MSG_V01_MAX_MSG_LEN 7
0269 extern struct qmi_elem_info wlfw_wlan_mode_resp_msg_v01_ei[];
0270 
0271 struct wlfw_wlan_cfg_req_msg_v01 {
0272     u8 host_version_valid;
0273     char host_version[QMI_WLFW_MAX_STR_LEN_V01 + 1];
0274     u8 tgt_cfg_valid;
0275     u32 tgt_cfg_len;
0276     struct wlfw_ce_tgt_pipe_cfg_s_v01 tgt_cfg[QMI_WLFW_MAX_NUM_CE_V01];
0277     u8 svc_cfg_valid;
0278     u32 svc_cfg_len;
0279     struct wlfw_ce_svc_pipe_cfg_s_v01 svc_cfg[QMI_WLFW_MAX_NUM_SVC_V01];
0280     u8 shadow_reg_valid;
0281     u32 shadow_reg_len;
0282     struct wlfw_shadow_reg_cfg_s_v01 shadow_reg[QMI_WLFW_MAX_NUM_SHADOW_REG_V01];
0283     u8 shadow_reg_v2_valid;
0284     u32 shadow_reg_v2_len;
0285     struct wlfw_shadow_reg_v2_cfg_s_v01 shadow_reg_v2[QMI_WLFW_MAX_SHADOW_REG_V2];
0286 };
0287 
0288 #define WLFW_WLAN_CFG_REQ_MSG_V01_MAX_MSG_LEN 803
0289 extern struct qmi_elem_info wlfw_wlan_cfg_req_msg_v01_ei[];
0290 
0291 struct wlfw_wlan_cfg_resp_msg_v01 {
0292     struct qmi_response_type_v01 resp;
0293 };
0294 
0295 #define WLFW_WLAN_CFG_RESP_MSG_V01_MAX_MSG_LEN 7
0296 extern struct qmi_elem_info wlfw_wlan_cfg_resp_msg_v01_ei[];
0297 
0298 struct wlfw_cap_req_msg_v01 {
0299     char placeholder;
0300 };
0301 
0302 #define WLFW_CAP_REQ_MSG_V01_MAX_MSG_LEN 0
0303 extern struct qmi_elem_info wlfw_cap_req_msg_v01_ei[];
0304 
0305 struct wlfw_cap_resp_msg_v01 {
0306     struct qmi_response_type_v01 resp;
0307     u8 chip_info_valid;
0308     struct wlfw_rf_chip_info_s_v01 chip_info;
0309     u8 board_info_valid;
0310     struct wlfw_rf_board_info_s_v01 board_info;
0311     u8 soc_info_valid;
0312     struct wlfw_soc_info_s_v01 soc_info;
0313     u8 fw_version_info_valid;
0314     struct wlfw_fw_version_info_s_v01 fw_version_info;
0315     u8 fw_build_id_valid;
0316     char fw_build_id[QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1];
0317     u8 num_macs_valid;
0318     u8 num_macs;
0319 };
0320 
0321 #define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 207
0322 extern struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[];
0323 
0324 struct wlfw_bdf_download_req_msg_v01 {
0325     u8 valid;
0326     u8 file_id_valid;
0327     enum wlfw_cal_temp_id_enum_v01 file_id;
0328     u8 total_size_valid;
0329     u32 total_size;
0330     u8 seg_id_valid;
0331     u32 seg_id;
0332     u8 data_valid;
0333     u32 data_len;
0334     u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
0335     u8 end_valid;
0336     u8 end;
0337     u8 bdf_type_valid;
0338     u8 bdf_type;
0339 };
0340 
0341 #define WLFW_BDF_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6182
0342 extern struct qmi_elem_info wlfw_bdf_download_req_msg_v01_ei[];
0343 
0344 struct wlfw_bdf_download_resp_msg_v01 {
0345     struct qmi_response_type_v01 resp;
0346 };
0347 
0348 #define WLFW_BDF_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 7
0349 extern struct qmi_elem_info wlfw_bdf_download_resp_msg_v01_ei[];
0350 
0351 struct wlfw_cal_report_req_msg_v01 {
0352     u32 meta_data_len;
0353     enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01];
0354     u8 xo_cal_data_valid;
0355     u8 xo_cal_data;
0356 };
0357 
0358 #define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 28
0359 extern struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[];
0360 
0361 struct wlfw_cal_report_resp_msg_v01 {
0362     struct qmi_response_type_v01 resp;
0363 };
0364 
0365 #define WLFW_CAL_REPORT_RESP_MSG_V01_MAX_MSG_LEN 7
0366 extern struct qmi_elem_info wlfw_cal_report_resp_msg_v01_ei[];
0367 
0368 struct wlfw_initiate_cal_download_ind_msg_v01 {
0369     enum wlfw_cal_temp_id_enum_v01 cal_id;
0370 };
0371 
0372 #define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 7
0373 extern struct qmi_elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[];
0374 
0375 struct wlfw_cal_download_req_msg_v01 {
0376     u8 valid;
0377     u8 file_id_valid;
0378     enum wlfw_cal_temp_id_enum_v01 file_id;
0379     u8 total_size_valid;
0380     u32 total_size;
0381     u8 seg_id_valid;
0382     u32 seg_id;
0383     u8 data_valid;
0384     u32 data_len;
0385     u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
0386     u8 end_valid;
0387     u8 end;
0388 };
0389 
0390 #define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6178
0391 extern struct qmi_elem_info wlfw_cal_download_req_msg_v01_ei[];
0392 
0393 struct wlfw_cal_download_resp_msg_v01 {
0394     struct qmi_response_type_v01 resp;
0395 };
0396 
0397 #define WLFW_CAL_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 7
0398 extern struct qmi_elem_info wlfw_cal_download_resp_msg_v01_ei[];
0399 
0400 struct wlfw_initiate_cal_update_ind_msg_v01 {
0401     enum wlfw_cal_temp_id_enum_v01 cal_id;
0402     u32 total_size;
0403 };
0404 
0405 #define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 14
0406 extern struct qmi_elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[];
0407 
0408 struct wlfw_cal_update_req_msg_v01 {
0409     enum wlfw_cal_temp_id_enum_v01 cal_id;
0410     u32 seg_id;
0411 };
0412 
0413 #define WLFW_CAL_UPDATE_REQ_MSG_V01_MAX_MSG_LEN 14
0414 extern struct qmi_elem_info wlfw_cal_update_req_msg_v01_ei[];
0415 
0416 struct wlfw_cal_update_resp_msg_v01 {
0417     struct qmi_response_type_v01 resp;
0418     u8 file_id_valid;
0419     enum wlfw_cal_temp_id_enum_v01 file_id;
0420     u8 total_size_valid;
0421     u32 total_size;
0422     u8 seg_id_valid;
0423     u32 seg_id;
0424     u8 data_valid;
0425     u32 data_len;
0426     u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
0427     u8 end_valid;
0428     u8 end;
0429 };
0430 
0431 #define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6181
0432 extern struct qmi_elem_info wlfw_cal_update_resp_msg_v01_ei[];
0433 
0434 struct wlfw_msa_info_req_msg_v01 {
0435     u64 msa_addr;
0436     u32 size;
0437 };
0438 
0439 #define WLFW_MSA_INFO_REQ_MSG_V01_MAX_MSG_LEN 18
0440 extern struct qmi_elem_info wlfw_msa_info_req_msg_v01_ei[];
0441 
0442 struct wlfw_msa_info_resp_msg_v01 {
0443     struct qmi_response_type_v01 resp;
0444     u32 mem_region_info_len;
0445     struct wlfw_memory_region_info_s_v01 mem_region_info[QMI_WLFW_MAX_MEM_REG_V01];
0446 };
0447 
0448 #define WLFW_MSA_INFO_RESP_MSG_V01_MAX_MSG_LEN 37
0449 extern struct qmi_elem_info wlfw_msa_info_resp_msg_v01_ei[];
0450 
0451 struct wlfw_msa_ready_req_msg_v01 {
0452     char placeholder;
0453 };
0454 
0455 #define WLFW_MSA_READY_REQ_MSG_V01_MAX_MSG_LEN 0
0456 extern struct qmi_elem_info wlfw_msa_ready_req_msg_v01_ei[];
0457 
0458 struct wlfw_msa_ready_resp_msg_v01 {
0459     struct qmi_response_type_v01 resp;
0460 };
0461 
0462 #define WLFW_MSA_READY_RESP_MSG_V01_MAX_MSG_LEN 7
0463 extern struct qmi_elem_info wlfw_msa_ready_resp_msg_v01_ei[];
0464 
0465 struct wlfw_ini_req_msg_v01 {
0466     u8 enablefwlog_valid;
0467     u8 enablefwlog;
0468 };
0469 
0470 #define WLFW_INI_REQ_MSG_V01_MAX_MSG_LEN 4
0471 extern struct qmi_elem_info wlfw_ini_req_msg_v01_ei[];
0472 
0473 struct wlfw_ini_resp_msg_v01 {
0474     struct qmi_response_type_v01 resp;
0475 };
0476 
0477 #define WLFW_INI_RESP_MSG_V01_MAX_MSG_LEN 7
0478 extern struct qmi_elem_info wlfw_ini_resp_msg_v01_ei[];
0479 
0480 struct wlfw_athdiag_read_req_msg_v01 {
0481     u32 offset;
0482     u32 mem_type;
0483     u32 data_len;
0484 };
0485 
0486 #define WLFW_ATHDIAG_READ_REQ_MSG_V01_MAX_MSG_LEN 21
0487 extern struct qmi_elem_info wlfw_athdiag_read_req_msg_v01_ei[];
0488 
0489 struct wlfw_athdiag_read_resp_msg_v01 {
0490     struct qmi_response_type_v01 resp;
0491     u8 data_valid;
0492     u32 data_len;
0493     u8 data[QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01];
0494 };
0495 
0496 #define WLFW_ATHDIAG_READ_RESP_MSG_V01_MAX_MSG_LEN 6156
0497 extern struct qmi_elem_info wlfw_athdiag_read_resp_msg_v01_ei[];
0498 
0499 struct wlfw_athdiag_write_req_msg_v01 {
0500     u32 offset;
0501     u32 mem_type;
0502     u32 data_len;
0503     u8 data[QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01];
0504 };
0505 
0506 #define WLFW_ATHDIAG_WRITE_REQ_MSG_V01_MAX_MSG_LEN 6163
0507 extern struct qmi_elem_info wlfw_athdiag_write_req_msg_v01_ei[];
0508 
0509 struct wlfw_athdiag_write_resp_msg_v01 {
0510     struct qmi_response_type_v01 resp;
0511 };
0512 
0513 #define WLFW_ATHDIAG_WRITE_RESP_MSG_V01_MAX_MSG_LEN 7
0514 extern struct qmi_elem_info wlfw_athdiag_write_resp_msg_v01_ei[];
0515 
0516 struct wlfw_vbatt_req_msg_v01 {
0517     u64 voltage_uv;
0518 };
0519 
0520 #define WLFW_VBATT_REQ_MSG_V01_MAX_MSG_LEN 11
0521 extern struct qmi_elem_info wlfw_vbatt_req_msg_v01_ei[];
0522 
0523 struct wlfw_vbatt_resp_msg_v01 {
0524     struct qmi_response_type_v01 resp;
0525 };
0526 
0527 #define WLFW_VBATT_RESP_MSG_V01_MAX_MSG_LEN 7
0528 extern struct qmi_elem_info wlfw_vbatt_resp_msg_v01_ei[];
0529 
0530 struct wlfw_mac_addr_req_msg_v01 {
0531     u8 mac_addr_valid;
0532     u8 mac_addr[QMI_WLFW_MAC_ADDR_SIZE_V01];
0533 };
0534 
0535 #define WLFW_MAC_ADDR_REQ_MSG_V01_MAX_MSG_LEN 9
0536 extern struct qmi_elem_info wlfw_mac_addr_req_msg_v01_ei[];
0537 
0538 struct wlfw_mac_addr_resp_msg_v01 {
0539     struct qmi_response_type_v01 resp;
0540 };
0541 
0542 #define WLFW_MAC_ADDR_RESP_MSG_V01_MAX_MSG_LEN 7
0543 extern struct qmi_elem_info wlfw_mac_addr_resp_msg_v01_ei[];
0544 
0545 #define QMI_WLFW_MAX_NUM_GPIO_V01 32
0546 struct wlfw_host_cap_req_msg_v01 {
0547     u8 daemon_support_valid;
0548     u32 daemon_support;
0549     u8 wake_msi_valid;
0550     u32 wake_msi;
0551     u8 gpios_valid;
0552     u32 gpios_len;
0553     u32 gpios[QMI_WLFW_MAX_NUM_GPIO_V01];
0554     u8 nm_modem_valid;
0555     u8 nm_modem;
0556     u8 bdf_support_valid;
0557     u8 bdf_support;
0558     u8 bdf_cache_support_valid;
0559     u8 bdf_cache_support;
0560     u8 m3_support_valid;
0561     u8 m3_support;
0562     u8 m3_cache_support_valid;
0563     u8 m3_cache_support;
0564     u8 cal_filesys_support_valid;
0565     u8 cal_filesys_support;
0566     u8 cal_cache_support_valid;
0567     u8 cal_cache_support;
0568     u8 cal_done_valid;
0569     u8 cal_done;
0570     u8 mem_bucket_valid;
0571     u32 mem_bucket;
0572     u8 mem_cfg_mode_valid;
0573     u8 mem_cfg_mode;
0574 };
0575 
0576 #define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 189
0577 extern struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[];
0578 extern struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[];
0579 
0580 struct wlfw_host_cap_resp_msg_v01 {
0581     struct qmi_response_type_v01 resp;
0582 };
0583 
0584 #define WLFW_HOST_CAP_RESP_MSG_V01_MAX_MSG_LEN 7
0585 extern struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[];
0586 
0587 struct wlfw_request_mem_ind_msg_v01 {
0588     u32 mem_seg_len;
0589     struct wlfw_mem_seg_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
0590 };
0591 
0592 #define WLFW_REQUEST_MEM_IND_MSG_V01_MAX_MSG_LEN 564
0593 extern struct qmi_elem_info wlfw_request_mem_ind_msg_v01_ei[];
0594 
0595 struct wlfw_respond_mem_req_msg_v01 {
0596     u32 mem_seg_len;
0597     struct wlfw_mem_seg_resp_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
0598 };
0599 
0600 #define WLFW_RESPOND_MEM_REQ_MSG_V01_MAX_MSG_LEN 260
0601 extern struct qmi_elem_info wlfw_respond_mem_req_msg_v01_ei[];
0602 
0603 struct wlfw_respond_mem_resp_msg_v01 {
0604     struct qmi_response_type_v01 resp;
0605 };
0606 
0607 #define WLFW_RESPOND_MEM_RESP_MSG_V01_MAX_MSG_LEN 7
0608 extern struct qmi_elem_info wlfw_respond_mem_resp_msg_v01_ei[];
0609 
0610 struct wlfw_mem_ready_ind_msg_v01 {
0611     char placeholder;
0612 };
0613 
0614 #define WLFW_MEM_READY_IND_MSG_V01_MAX_MSG_LEN 0
0615 extern struct qmi_elem_info wlfw_mem_ready_ind_msg_v01_ei[];
0616 
0617 struct wlfw_fw_init_done_ind_msg_v01 {
0618     char placeholder;
0619 };
0620 
0621 #define WLFW_FW_INIT_DONE_IND_MSG_V01_MAX_MSG_LEN 0
0622 extern struct qmi_elem_info wlfw_fw_init_done_ind_msg_v01_ei[];
0623 
0624 struct wlfw_rejuvenate_ind_msg_v01 {
0625     u8 cause_for_rejuvenation_valid;
0626     u8 cause_for_rejuvenation;
0627     u8 requesting_sub_system_valid;
0628     u8 requesting_sub_system;
0629     u8 line_number_valid;
0630     u16 line_number;
0631     u8 function_name_valid;
0632     char function_name[QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1];
0633 };
0634 
0635 #define WLFW_REJUVENATE_IND_MSG_V01_MAX_MSG_LEN 144
0636 extern struct qmi_elem_info wlfw_rejuvenate_ind_msg_v01_ei[];
0637 
0638 struct wlfw_rejuvenate_ack_req_msg_v01 {
0639     char placeholder;
0640 };
0641 
0642 #define WLFW_REJUVENATE_ACK_REQ_MSG_V01_MAX_MSG_LEN 0
0643 extern struct qmi_elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[];
0644 
0645 struct wlfw_rejuvenate_ack_resp_msg_v01 {
0646     struct qmi_response_type_v01 resp;
0647 };
0648 
0649 #define WLFW_REJUVENATE_ACK_RESP_MSG_V01_MAX_MSG_LEN 7
0650 extern struct qmi_elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[];
0651 
0652 struct wlfw_dynamic_feature_mask_req_msg_v01 {
0653     u8 mask_valid;
0654     u64 mask;
0655 };
0656 
0657 #define WLFW_DYNAMIC_FEATURE_MASK_REQ_MSG_V01_MAX_MSG_LEN 11
0658 extern struct qmi_elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[];
0659 
0660 struct wlfw_dynamic_feature_mask_resp_msg_v01 {
0661     struct qmi_response_type_v01 resp;
0662     u8 prev_mask_valid;
0663     u64 prev_mask;
0664     u8 curr_mask_valid;
0665     u64 curr_mask;
0666 };
0667 
0668 #define WLFW_DYNAMIC_FEATURE_MASK_RESP_MSG_V01_MAX_MSG_LEN 29
0669 extern struct qmi_elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[];
0670 
0671 struct wlfw_m3_info_req_msg_v01 {
0672     u64 addr;
0673     u32 size;
0674 };
0675 
0676 #define WLFW_M3_INFO_REQ_MSG_V01_MAX_MSG_LEN 18
0677 extern struct qmi_elem_info wlfw_m3_info_req_msg_v01_ei[];
0678 
0679 struct wlfw_m3_info_resp_msg_v01 {
0680     struct qmi_response_type_v01 resp;
0681 };
0682 
0683 #define WLFW_M3_INFO_RESP_MSG_V01_MAX_MSG_LEN 7
0684 extern struct qmi_elem_info wlfw_m3_info_resp_msg_v01_ei[];
0685 
0686 struct wlfw_xo_cal_ind_msg_v01 {
0687     u8 xo_cal_data;
0688 };
0689 
0690 #define WLFW_XO_CAL_IND_MSG_V01_MAX_MSG_LEN 4
0691 extern struct qmi_elem_info wlfw_xo_cal_ind_msg_v01_ei[];
0692 
0693 #endif