brintos

brintos / linux-shallow public Read only

0
0
Text · 61.0 KiB · 0e85c75 Raw
2310 lines · c
1// SPDX-License-Identifier: ISC2/*3 * Copyright (c) 2018 The Linux Foundation. All rights reserved.4 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.5 */6 7#include <linux/soc/qcom/qmi.h>8#include <linux/types.h>9#include "qmi_wlfw_v01.h"10 11static const struct qmi_elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {12	{13		.data_type      = QMI_UNSIGNED_4_BYTE,14		.elem_len       = 1,15		.elem_size      = sizeof(u32),16		.array_type     = NO_ARRAY,17		.tlv_type       = 0,18		.offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,19					   pipe_num),20	},21	{22		.data_type      = QMI_SIGNED_4_BYTE_ENUM,23		.elem_len       = 1,24		.elem_size      = sizeof(enum wlfw_pipedir_enum_v01),25		.array_type     = NO_ARRAY,26		.tlv_type       = 0,27		.offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,28					   pipe_dir),29	},30	{31		.data_type      = QMI_UNSIGNED_4_BYTE,32		.elem_len       = 1,33		.elem_size      = sizeof(u32),34		.array_type     = NO_ARRAY,35		.tlv_type       = 0,36		.offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,37					   nentries),38	},39	{40		.data_type      = QMI_UNSIGNED_4_BYTE,41		.elem_len       = 1,42		.elem_size      = sizeof(u32),43		.array_type     = NO_ARRAY,44		.tlv_type       = 0,45		.offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,46					   nbytes_max),47	},48	{49		.data_type      = QMI_UNSIGNED_4_BYTE,50		.elem_len       = 1,51		.elem_size      = sizeof(u32),52		.array_type     = NO_ARRAY,53		.tlv_type       = 0,54		.offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,55					   flags),56	},57	{}58};59 60static const struct qmi_elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {61	{62		.data_type      = QMI_UNSIGNED_4_BYTE,63		.elem_len       = 1,64		.elem_size      = sizeof(u32),65		.array_type     = NO_ARRAY,66		.tlv_type       = 0,67		.offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,68					   service_id),69	},70	{71		.data_type      = QMI_SIGNED_4_BYTE_ENUM,72		.elem_len       = 1,73		.elem_size      = sizeof(enum wlfw_pipedir_enum_v01),74		.array_type     = NO_ARRAY,75		.tlv_type       = 0,76		.offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,77					   pipe_dir),78	},79	{80		.data_type      = QMI_UNSIGNED_4_BYTE,81		.elem_len       = 1,82		.elem_size      = sizeof(u32),83		.array_type     = NO_ARRAY,84		.tlv_type       = 0,85		.offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,86					   pipe_num),87	},88	{}89};90 91static const struct qmi_elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {92	{93		.data_type      = QMI_UNSIGNED_2_BYTE,94		.elem_len       = 1,95		.elem_size      = sizeof(u16),96		.array_type     = NO_ARRAY,97		.tlv_type       = 0,98		.offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,99					   id),100	},101	{102		.data_type      = QMI_UNSIGNED_2_BYTE,103		.elem_len       = 1,104		.elem_size      = sizeof(u16),105		.array_type     = NO_ARRAY,106		.tlv_type       = 0,107		.offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,108					   offset),109	},110	{}111};112 113static const struct qmi_elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {114	{115		.data_type      = QMI_UNSIGNED_4_BYTE,116		.elem_len       = 1,117		.elem_size      = sizeof(u32),118		.array_type     = NO_ARRAY,119		.tlv_type       = 0,120		.offset         = offsetof(struct wlfw_shadow_reg_v2_cfg_s_v01,121					   addr),122	},123	{}124};125 126static const struct qmi_elem_info wlfw_memory_region_info_s_v01_ei[] = {127	{128		.data_type      = QMI_UNSIGNED_8_BYTE,129		.elem_len       = 1,130		.elem_size      = sizeof(u64),131		.array_type     = NO_ARRAY,132		.tlv_type       = 0,133		.offset         = offsetof(struct wlfw_memory_region_info_s_v01,134					   region_addr),135	},136	{137		.data_type      = QMI_UNSIGNED_4_BYTE,138		.elem_len       = 1,139		.elem_size      = sizeof(u32),140		.array_type     = NO_ARRAY,141		.tlv_type       = 0,142		.offset         = offsetof(struct wlfw_memory_region_info_s_v01,143					   size),144	},145	{146		.data_type      = QMI_UNSIGNED_1_BYTE,147		.elem_len       = 1,148		.elem_size      = sizeof(u8),149		.array_type     = NO_ARRAY,150		.tlv_type       = 0,151		.offset         = offsetof(struct wlfw_memory_region_info_s_v01,152					   secure_flag),153	},154	{}155};156 157static const struct qmi_elem_info wlfw_mem_cfg_s_v01_ei[] = {158	{159		.data_type      = QMI_UNSIGNED_8_BYTE,160		.elem_len       = 1,161		.elem_size      = sizeof(u64),162		.array_type     = NO_ARRAY,163		.tlv_type       = 0,164		.offset         = offsetof(struct wlfw_mem_cfg_s_v01,165					   offset),166	},167	{168		.data_type      = QMI_UNSIGNED_4_BYTE,169		.elem_len       = 1,170		.elem_size      = sizeof(u32),171		.array_type     = NO_ARRAY,172		.tlv_type       = 0,173		.offset         = offsetof(struct wlfw_mem_cfg_s_v01,174					   size),175	},176	{177		.data_type      = QMI_UNSIGNED_1_BYTE,178		.elem_len       = 1,179		.elem_size      = sizeof(u8),180		.array_type     = NO_ARRAY,181		.tlv_type       = 0,182		.offset         = offsetof(struct wlfw_mem_cfg_s_v01,183					   secure_flag),184	},185	{}186};187 188static const struct qmi_elem_info wlfw_mem_seg_s_v01_ei[] = {189	{190		.data_type      = QMI_UNSIGNED_4_BYTE,191		.elem_len       = 1,192		.elem_size      = sizeof(u32),193		.array_type     = NO_ARRAY,194		.tlv_type       = 0,195		.offset         = offsetof(struct wlfw_mem_seg_s_v01,196					   size),197	},198	{199		.data_type      = QMI_SIGNED_4_BYTE_ENUM,200		.elem_len       = 1,201		.elem_size      = sizeof(enum wlfw_mem_type_enum_v01),202		.array_type     = NO_ARRAY,203		.tlv_type       = 0,204		.offset         = offsetof(struct wlfw_mem_seg_s_v01,205					   type),206	},207	{208		.data_type      = QMI_DATA_LEN,209		.elem_len       = 1,210		.elem_size      = sizeof(u8),211		.array_type     = NO_ARRAY,212		.tlv_type       = 0,213		.offset         = offsetof(struct wlfw_mem_seg_s_v01,214					   mem_cfg_len),215	},216	{217		.data_type      = QMI_STRUCT,218		.elem_len       = QMI_WLFW_MAX_NUM_MEM_CFG_V01,219		.elem_size      = sizeof(struct wlfw_mem_cfg_s_v01),220		.array_type       = VAR_LEN_ARRAY,221		.tlv_type       = 0,222		.offset         = offsetof(struct wlfw_mem_seg_s_v01,223					   mem_cfg),224		.ei_array      = wlfw_mem_cfg_s_v01_ei,225	},226	{}227};228 229static const struct qmi_elem_info wlfw_mem_seg_resp_s_v01_ei[] = {230	{231		.data_type      = QMI_UNSIGNED_8_BYTE,232		.elem_len       = 1,233		.elem_size      = sizeof(u64),234		.array_type     = NO_ARRAY,235		.tlv_type       = 0,236		.offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,237					   addr),238	},239	{240		.data_type      = QMI_UNSIGNED_4_BYTE,241		.elem_len       = 1,242		.elem_size      = sizeof(u32),243		.array_type     = NO_ARRAY,244		.tlv_type       = 0,245		.offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,246					   size),247	},248	{249		.data_type      = QMI_SIGNED_4_BYTE_ENUM,250		.elem_len       = 1,251		.elem_size      = sizeof(enum wlfw_mem_type_enum_v01),252		.array_type     = NO_ARRAY,253		.tlv_type       = 0,254		.offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,255					   type),256	},257	{}258};259 260static const struct qmi_elem_info wlfw_rf_chip_info_s_v01_ei[] = {261	{262		.data_type      = QMI_UNSIGNED_4_BYTE,263		.elem_len       = 1,264		.elem_size      = sizeof(u32),265		.array_type     = NO_ARRAY,266		.tlv_type       = 0,267		.offset         = offsetof(struct wlfw_rf_chip_info_s_v01,268					   chip_id),269	},270	{271		.data_type      = QMI_UNSIGNED_4_BYTE,272		.elem_len       = 1,273		.elem_size      = sizeof(u32),274		.array_type     = NO_ARRAY,275		.tlv_type       = 0,276		.offset         = offsetof(struct wlfw_rf_chip_info_s_v01,277					   chip_family),278	},279	{}280};281 282static const struct qmi_elem_info wlfw_rf_board_info_s_v01_ei[] = {283	{284		.data_type      = QMI_UNSIGNED_4_BYTE,285		.elem_len       = 1,286		.elem_size      = sizeof(u32),287		.array_type     = NO_ARRAY,288		.tlv_type       = 0,289		.offset         = offsetof(struct wlfw_rf_board_info_s_v01,290					   board_id),291	},292	{}293};294 295static const struct qmi_elem_info wlfw_soc_info_s_v01_ei[] = {296	{297		.data_type      = QMI_UNSIGNED_4_BYTE,298		.elem_len       = 1,299		.elem_size      = sizeof(u32),300		.array_type     = NO_ARRAY,301		.tlv_type       = 0,302		.offset         = offsetof(struct wlfw_soc_info_s_v01,303					   soc_id),304	},305	{}306};307 308static const struct qmi_elem_info wlfw_fw_version_info_s_v01_ei[] = {309	{310		.data_type      = QMI_UNSIGNED_4_BYTE,311		.elem_len       = 1,312		.elem_size      = sizeof(u32),313		.array_type     = NO_ARRAY,314		.tlv_type       = 0,315		.offset         = offsetof(struct wlfw_fw_version_info_s_v01,316					   fw_version),317	},318	{319		.data_type      = QMI_STRING,320		.elem_len       = QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1,321		.elem_size      = sizeof(char),322		.array_type     = NO_ARRAY,323		.tlv_type       = 0,324		.offset         = offsetof(struct wlfw_fw_version_info_s_v01,325					   fw_build_timestamp),326	},327	{}328};329 330const struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = {331	{332		.data_type      = QMI_OPT_FLAG,333		.elem_len       = 1,334		.elem_size      = sizeof(u8),335		.array_type     = NO_ARRAY,336		.tlv_type       = 0x10,337		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,338					   fw_ready_enable_valid),339	},340	{341		.data_type      = QMI_UNSIGNED_1_BYTE,342		.elem_len       = 1,343		.elem_size      = sizeof(u8),344		.array_type     = NO_ARRAY,345		.tlv_type       = 0x10,346		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,347					   fw_ready_enable),348	},349	{350		.data_type      = QMI_OPT_FLAG,351		.elem_len       = 1,352		.elem_size      = sizeof(u8),353		.array_type     = NO_ARRAY,354		.tlv_type       = 0x11,355		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,356					   initiate_cal_download_enable_valid),357	},358	{359		.data_type      = QMI_UNSIGNED_1_BYTE,360		.elem_len       = 1,361		.elem_size      = sizeof(u8),362		.array_type     = NO_ARRAY,363		.tlv_type       = 0x11,364		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,365					   initiate_cal_download_enable),366	},367	{368		.data_type      = QMI_OPT_FLAG,369		.elem_len       = 1,370		.elem_size      = sizeof(u8),371		.array_type     = NO_ARRAY,372		.tlv_type       = 0x12,373		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,374					   initiate_cal_update_enable_valid),375	},376	{377		.data_type      = QMI_UNSIGNED_1_BYTE,378		.elem_len       = 1,379		.elem_size      = sizeof(u8),380		.array_type     = NO_ARRAY,381		.tlv_type       = 0x12,382		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,383					   initiate_cal_update_enable),384	},385	{386		.data_type      = QMI_OPT_FLAG,387		.elem_len       = 1,388		.elem_size      = sizeof(u8),389		.array_type     = NO_ARRAY,390		.tlv_type       = 0x13,391		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,392					   msa_ready_enable_valid),393	},394	{395		.data_type      = QMI_UNSIGNED_1_BYTE,396		.elem_len       = 1,397		.elem_size      = sizeof(u8),398		.array_type     = NO_ARRAY,399		.tlv_type       = 0x13,400		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,401					   msa_ready_enable),402	},403	{404		.data_type      = QMI_OPT_FLAG,405		.elem_len       = 1,406		.elem_size      = sizeof(u8),407		.array_type     = NO_ARRAY,408		.tlv_type       = 0x14,409		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,410					   pin_connect_result_enable_valid),411	},412	{413		.data_type      = QMI_UNSIGNED_1_BYTE,414		.elem_len       = 1,415		.elem_size      = sizeof(u8),416		.array_type     = NO_ARRAY,417		.tlv_type       = 0x14,418		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,419					   pin_connect_result_enable),420	},421	{422		.data_type      = QMI_OPT_FLAG,423		.elem_len       = 1,424		.elem_size      = sizeof(u8),425		.array_type     = NO_ARRAY,426		.tlv_type       = 0x15,427		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,428					   client_id_valid),429	},430	{431		.data_type      = QMI_UNSIGNED_4_BYTE,432		.elem_len       = 1,433		.elem_size      = sizeof(u32),434		.array_type     = NO_ARRAY,435		.tlv_type       = 0x15,436		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,437					   client_id),438	},439	{440		.data_type      = QMI_OPT_FLAG,441		.elem_len       = 1,442		.elem_size      = sizeof(u8),443		.array_type     = NO_ARRAY,444		.tlv_type       = 0x16,445		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,446					   request_mem_enable_valid),447	},448	{449		.data_type      = QMI_UNSIGNED_1_BYTE,450		.elem_len       = 1,451		.elem_size      = sizeof(u8),452		.array_type     = NO_ARRAY,453		.tlv_type       = 0x16,454		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,455					   request_mem_enable),456	},457	{458		.data_type      = QMI_OPT_FLAG,459		.elem_len       = 1,460		.elem_size      = sizeof(u8),461		.array_type     = NO_ARRAY,462		.tlv_type       = 0x17,463		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,464					   mem_ready_enable_valid),465	},466	{467		.data_type      = QMI_UNSIGNED_1_BYTE,468		.elem_len       = 1,469		.elem_size      = sizeof(u8),470		.array_type     = NO_ARRAY,471		.tlv_type       = 0x17,472		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,473					   mem_ready_enable),474	},475	{476		.data_type      = QMI_OPT_FLAG,477		.elem_len       = 1,478		.elem_size      = sizeof(u8),479		.array_type     = NO_ARRAY,480		.tlv_type       = 0x18,481		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,482					   fw_init_done_enable_valid),483	},484	{485		.data_type      = QMI_UNSIGNED_1_BYTE,486		.elem_len       = 1,487		.elem_size      = sizeof(u8),488		.array_type     = NO_ARRAY,489		.tlv_type       = 0x18,490		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,491					   fw_init_done_enable),492	},493	{494		.data_type      = QMI_OPT_FLAG,495		.elem_len       = 1,496		.elem_size      = sizeof(u8),497		.array_type     = NO_ARRAY,498		.tlv_type       = 0x19,499		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,500					   rejuvenate_enable_valid),501	},502	{503		.data_type      = QMI_UNSIGNED_4_BYTE,504		.elem_len       = 1,505		.elem_size      = sizeof(u32),506		.array_type     = NO_ARRAY,507		.tlv_type       = 0x19,508		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,509					   rejuvenate_enable),510	},511	{512		.data_type      = QMI_OPT_FLAG,513		.elem_len       = 1,514		.elem_size      = sizeof(u8),515		.array_type     = NO_ARRAY,516		.tlv_type       = 0x1A,517		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,518					   xo_cal_enable_valid),519	},520	{521		.data_type      = QMI_UNSIGNED_1_BYTE,522		.elem_len       = 1,523		.elem_size      = sizeof(u8),524		.array_type     = NO_ARRAY,525		.tlv_type       = 0x1A,526		.offset         = offsetof(struct wlfw_ind_register_req_msg_v01,527					   xo_cal_enable),528	},529	{}530};531 532const struct qmi_elem_info wlfw_ind_register_resp_msg_v01_ei[] = {533	{534		.data_type      = QMI_STRUCT,535		.elem_len       = 1,536		.elem_size      = sizeof(struct qmi_response_type_v01),537		.array_type     = NO_ARRAY,538		.tlv_type       = 0x02,539		.offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,540					   resp),541		.ei_array      = qmi_response_type_v01_ei,542	},543	{544		.data_type      = QMI_OPT_FLAG,545		.elem_len       = 1,546		.elem_size      = sizeof(u8),547		.array_type     = NO_ARRAY,548		.tlv_type       = 0x10,549		.offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,550					   fw_status_valid),551	},552	{553		.data_type      = QMI_UNSIGNED_8_BYTE,554		.elem_len       = 1,555		.elem_size      = sizeof(u64),556		.array_type     = NO_ARRAY,557		.tlv_type       = 0x10,558		.offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,559					   fw_status),560	},561	{}562};563 564const struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = {565	{}566};567 568const struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = {569	{}570};571 572const struct qmi_elem_info wlfw_pin_connect_result_ind_msg_v01_ei[] = {573	{574		.data_type      = QMI_OPT_FLAG,575		.elem_len       = 1,576		.elem_size      = sizeof(u8),577		.array_type     = NO_ARRAY,578		.tlv_type       = 0x10,579		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,580					   pwr_pin_result_valid),581	},582	{583		.data_type      = QMI_UNSIGNED_4_BYTE,584		.elem_len       = 1,585		.elem_size      = sizeof(u32),586		.array_type     = NO_ARRAY,587		.tlv_type       = 0x10,588		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,589					   pwr_pin_result),590	},591	{592		.data_type      = QMI_OPT_FLAG,593		.elem_len       = 1,594		.elem_size      = sizeof(u8),595		.array_type     = NO_ARRAY,596		.tlv_type       = 0x11,597		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,598					   phy_io_pin_result_valid),599	},600	{601		.data_type      = QMI_UNSIGNED_4_BYTE,602		.elem_len       = 1,603		.elem_size      = sizeof(u32),604		.array_type     = NO_ARRAY,605		.tlv_type       = 0x11,606		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,607					   phy_io_pin_result),608	},609	{610		.data_type      = QMI_OPT_FLAG,611		.elem_len       = 1,612		.elem_size      = sizeof(u8),613		.array_type     = NO_ARRAY,614		.tlv_type       = 0x12,615		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,616					   rf_pin_result_valid),617	},618	{619		.data_type      = QMI_UNSIGNED_4_BYTE,620		.elem_len       = 1,621		.elem_size      = sizeof(u32),622		.array_type     = NO_ARRAY,623		.tlv_type       = 0x12,624		.offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,625					   rf_pin_result),626	},627	{}628};629 630const struct qmi_elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {631	{632		.data_type      = QMI_SIGNED_4_BYTE_ENUM,633		.elem_len       = 1,634		.elem_size      = sizeof(enum wlfw_driver_mode_enum_v01),635		.array_type     = NO_ARRAY,636		.tlv_type       = 0x01,637		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,638					   mode),639	},640	{641		.data_type      = QMI_OPT_FLAG,642		.elem_len       = 1,643		.elem_size      = sizeof(u8),644		.array_type     = NO_ARRAY,645		.tlv_type       = 0x10,646		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,647					   hw_debug_valid),648	},649	{650		.data_type      = QMI_UNSIGNED_1_BYTE,651		.elem_len       = 1,652		.elem_size      = sizeof(u8),653		.array_type     = NO_ARRAY,654		.tlv_type       = 0x10,655		.offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,656					   hw_debug),657	},658	{}659};660 661const struct qmi_elem_info wlfw_wlan_mode_resp_msg_v01_ei[] = {662	{663		.data_type      = QMI_STRUCT,664		.elem_len       = 1,665		.elem_size      = sizeof(struct qmi_response_type_v01),666		.array_type     = NO_ARRAY,667		.tlv_type       = 0x02,668		.offset         = offsetof(struct wlfw_wlan_mode_resp_msg_v01,669					   resp),670		.ei_array      = qmi_response_type_v01_ei,671	},672	{}673};674 675const struct qmi_elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {676	{677		.data_type      = QMI_OPT_FLAG,678		.elem_len       = 1,679		.elem_size      = sizeof(u8),680		.array_type     = NO_ARRAY,681		.tlv_type       = 0x10,682		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,683					   host_version_valid),684	},685	{686		.data_type      = QMI_STRING,687		.elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,688		.elem_size      = sizeof(char),689		.array_type     = NO_ARRAY,690		.tlv_type       = 0x10,691		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,692					   host_version),693	},694	{695		.data_type      = QMI_OPT_FLAG,696		.elem_len       = 1,697		.elem_size      = sizeof(u8),698		.array_type     = NO_ARRAY,699		.tlv_type       = 0x11,700		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,701					   tgt_cfg_valid),702	},703	{704		.data_type      = QMI_DATA_LEN,705		.elem_len       = 1,706		.elem_size      = sizeof(u8),707		.array_type     = NO_ARRAY,708		.tlv_type       = 0x11,709		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,710					   tgt_cfg_len),711	},712	{713		.data_type      = QMI_STRUCT,714		.elem_len       = QMI_WLFW_MAX_NUM_CE_V01,715		.elem_size      = sizeof(struct wlfw_ce_tgt_pipe_cfg_s_v01),716		.array_type       = VAR_LEN_ARRAY,717		.tlv_type       = 0x11,718		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,719					   tgt_cfg),720		.ei_array      = wlfw_ce_tgt_pipe_cfg_s_v01_ei,721	},722	{723		.data_type      = QMI_OPT_FLAG,724		.elem_len       = 1,725		.elem_size      = sizeof(u8),726		.array_type     = NO_ARRAY,727		.tlv_type       = 0x12,728		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,729					   svc_cfg_valid),730	},731	{732		.data_type      = QMI_DATA_LEN,733		.elem_len       = 1,734		.elem_size      = sizeof(u8),735		.array_type     = NO_ARRAY,736		.tlv_type       = 0x12,737		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,738					   svc_cfg_len),739	},740	{741		.data_type      = QMI_STRUCT,742		.elem_len       = QMI_WLFW_MAX_NUM_SVC_V01,743		.elem_size      = sizeof(struct wlfw_ce_svc_pipe_cfg_s_v01),744		.array_type       = VAR_LEN_ARRAY,745		.tlv_type       = 0x12,746		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,747					   svc_cfg),748		.ei_array      = wlfw_ce_svc_pipe_cfg_s_v01_ei,749	},750	{751		.data_type      = QMI_OPT_FLAG,752		.elem_len       = 1,753		.elem_size      = sizeof(u8),754		.array_type     = NO_ARRAY,755		.tlv_type       = 0x13,756		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,757					   shadow_reg_valid),758	},759	{760		.data_type      = QMI_DATA_LEN,761		.elem_len       = 1,762		.elem_size      = sizeof(u8),763		.array_type     = NO_ARRAY,764		.tlv_type       = 0x13,765		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,766					   shadow_reg_len),767	},768	{769		.data_type      = QMI_STRUCT,770		.elem_len       = QMI_WLFW_MAX_NUM_SHADOW_REG_V01,771		.elem_size      = sizeof(struct wlfw_shadow_reg_cfg_s_v01),772		.array_type       = VAR_LEN_ARRAY,773		.tlv_type       = 0x13,774		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,775					   shadow_reg),776		.ei_array      = wlfw_shadow_reg_cfg_s_v01_ei,777	},778	{779		.data_type      = QMI_OPT_FLAG,780		.elem_len       = 1,781		.elem_size      = sizeof(u8),782		.array_type     = NO_ARRAY,783		.tlv_type       = 0x14,784		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,785					   shadow_reg_v2_valid),786	},787	{788		.data_type      = QMI_DATA_LEN,789		.elem_len       = 1,790		.elem_size      = sizeof(u8),791		.array_type     = NO_ARRAY,792		.tlv_type       = 0x14,793		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,794					   shadow_reg_v2_len),795	},796	{797		.data_type      = QMI_STRUCT,798		.elem_len       = QMI_WLFW_MAX_SHADOW_REG_V2,799		.elem_size      = sizeof(struct wlfw_shadow_reg_v2_cfg_s_v01),800		.array_type       = VAR_LEN_ARRAY,801		.tlv_type       = 0x14,802		.offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,803					   shadow_reg_v2),804		.ei_array      = wlfw_shadow_reg_v2_cfg_s_v01_ei,805	},806	{}807};808 809const struct qmi_elem_info wlfw_wlan_cfg_resp_msg_v01_ei[] = {810	{811		.data_type      = QMI_STRUCT,812		.elem_len       = 1,813		.elem_size      = sizeof(struct qmi_response_type_v01),814		.array_type     = NO_ARRAY,815		.tlv_type       = 0x02,816		.offset         = offsetof(struct wlfw_wlan_cfg_resp_msg_v01,817					   resp),818		.ei_array      = qmi_response_type_v01_ei,819	},820	{}821};822 823const struct qmi_elem_info wlfw_cap_req_msg_v01_ei[] = {824	{}825};826 827const struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = {828	{829		.data_type      = QMI_STRUCT,830		.elem_len       = 1,831		.elem_size      = sizeof(struct qmi_response_type_v01),832		.array_type     = NO_ARRAY,833		.tlv_type       = 0x02,834		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,835					   resp),836		.ei_array      = qmi_response_type_v01_ei,837	},838	{839		.data_type      = QMI_OPT_FLAG,840		.elem_len       = 1,841		.elem_size      = sizeof(u8),842		.array_type     = NO_ARRAY,843		.tlv_type       = 0x10,844		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,845					   chip_info_valid),846	},847	{848		.data_type      = QMI_STRUCT,849		.elem_len       = 1,850		.elem_size      = sizeof(struct wlfw_rf_chip_info_s_v01),851		.array_type     = NO_ARRAY,852		.tlv_type       = 0x10,853		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,854					   chip_info),855		.ei_array      = wlfw_rf_chip_info_s_v01_ei,856	},857	{858		.data_type      = QMI_OPT_FLAG,859		.elem_len       = 1,860		.elem_size      = sizeof(u8),861		.array_type     = NO_ARRAY,862		.tlv_type       = 0x11,863		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,864					   board_info_valid),865	},866	{867		.data_type      = QMI_STRUCT,868		.elem_len       = 1,869		.elem_size      = sizeof(struct wlfw_rf_board_info_s_v01),870		.array_type     = NO_ARRAY,871		.tlv_type       = 0x11,872		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,873					   board_info),874		.ei_array      = wlfw_rf_board_info_s_v01_ei,875	},876	{877		.data_type      = QMI_OPT_FLAG,878		.elem_len       = 1,879		.elem_size      = sizeof(u8),880		.array_type     = NO_ARRAY,881		.tlv_type       = 0x12,882		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,883					   soc_info_valid),884	},885	{886		.data_type      = QMI_STRUCT,887		.elem_len       = 1,888		.elem_size      = sizeof(struct wlfw_soc_info_s_v01),889		.array_type     = NO_ARRAY,890		.tlv_type       = 0x12,891		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,892					   soc_info),893		.ei_array      = wlfw_soc_info_s_v01_ei,894	},895	{896		.data_type      = QMI_OPT_FLAG,897		.elem_len       = 1,898		.elem_size      = sizeof(u8),899		.array_type     = NO_ARRAY,900		.tlv_type       = 0x13,901		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,902					   fw_version_info_valid),903	},904	{905		.data_type      = QMI_STRUCT,906		.elem_len       = 1,907		.elem_size      = sizeof(struct wlfw_fw_version_info_s_v01),908		.array_type     = NO_ARRAY,909		.tlv_type       = 0x13,910		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,911					   fw_version_info),912		.ei_array      = wlfw_fw_version_info_s_v01_ei,913	},914	{915		.data_type      = QMI_OPT_FLAG,916		.elem_len       = 1,917		.elem_size      = sizeof(u8),918		.array_type     = NO_ARRAY,919		.tlv_type       = 0x14,920		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,921					   fw_build_id_valid),922	},923	{924		.data_type      = QMI_STRING,925		.elem_len       = QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1,926		.elem_size      = sizeof(char),927		.array_type     = NO_ARRAY,928		.tlv_type       = 0x14,929		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,930					   fw_build_id),931	},932	{933		.data_type      = QMI_OPT_FLAG,934		.elem_len       = 1,935		.elem_size      = sizeof(u8),936		.array_type     = NO_ARRAY,937		.tlv_type       = 0x15,938		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,939					   num_macs_valid),940	},941	{942		.data_type      = QMI_UNSIGNED_1_BYTE,943		.elem_len       = 1,944		.elem_size      = sizeof(u8),945		.array_type     = NO_ARRAY,946		.tlv_type       = 0x15,947		.offset         = offsetof(struct wlfw_cap_resp_msg_v01,948					   num_macs),949	},950	{}951};952 953const struct qmi_elem_info wlfw_bdf_download_req_msg_v01_ei[] = {954	{955		.data_type      = QMI_UNSIGNED_1_BYTE,956		.elem_len       = 1,957		.elem_size      = sizeof(u8),958		.array_type     = NO_ARRAY,959		.tlv_type       = 0x01,960		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,961					   valid),962	},963	{964		.data_type      = QMI_OPT_FLAG,965		.elem_len       = 1,966		.elem_size      = sizeof(u8),967		.array_type     = NO_ARRAY,968		.tlv_type       = 0x10,969		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,970					   file_id_valid),971	},972	{973		.data_type      = QMI_SIGNED_4_BYTE_ENUM,974		.elem_len       = 1,975		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),976		.array_type     = NO_ARRAY,977		.tlv_type       = 0x10,978		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,979					   file_id),980	},981	{982		.data_type      = QMI_OPT_FLAG,983		.elem_len       = 1,984		.elem_size      = sizeof(u8),985		.array_type     = NO_ARRAY,986		.tlv_type       = 0x11,987		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,988					   total_size_valid),989	},990	{991		.data_type      = QMI_UNSIGNED_4_BYTE,992		.elem_len       = 1,993		.elem_size      = sizeof(u32),994		.array_type     = NO_ARRAY,995		.tlv_type       = 0x11,996		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,997					   total_size),998	},999	{1000		.data_type      = QMI_OPT_FLAG,1001		.elem_len       = 1,1002		.elem_size      = sizeof(u8),1003		.array_type     = NO_ARRAY,1004		.tlv_type       = 0x12,1005		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1006					   seg_id_valid),1007	},1008	{1009		.data_type      = QMI_UNSIGNED_4_BYTE,1010		.elem_len       = 1,1011		.elem_size      = sizeof(u32),1012		.array_type     = NO_ARRAY,1013		.tlv_type       = 0x12,1014		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1015					   seg_id),1016	},1017	{1018		.data_type      = QMI_OPT_FLAG,1019		.elem_len       = 1,1020		.elem_size      = sizeof(u8),1021		.array_type     = NO_ARRAY,1022		.tlv_type       = 0x13,1023		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1024					   data_valid),1025	},1026	{1027		.data_type      = QMI_DATA_LEN,1028		.elem_len       = 1,1029		.elem_size      = sizeof(u16),1030		.array_type     = NO_ARRAY,1031		.tlv_type       = 0x13,1032		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1033					   data_len),1034	},1035	{1036		.data_type      = QMI_UNSIGNED_1_BYTE,1037		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,1038		.elem_size      = sizeof(u8),1039		.array_type       = VAR_LEN_ARRAY,1040		.tlv_type       = 0x13,1041		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1042					   data),1043	},1044	{1045		.data_type      = QMI_OPT_FLAG,1046		.elem_len       = 1,1047		.elem_size      = sizeof(u8),1048		.array_type     = NO_ARRAY,1049		.tlv_type       = 0x14,1050		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1051					   end_valid),1052	},1053	{1054		.data_type      = QMI_UNSIGNED_1_BYTE,1055		.elem_len       = 1,1056		.elem_size      = sizeof(u8),1057		.array_type     = NO_ARRAY,1058		.tlv_type       = 0x14,1059		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1060					   end),1061	},1062	{1063		.data_type      = QMI_OPT_FLAG,1064		.elem_len       = 1,1065		.elem_size      = sizeof(u8),1066		.array_type     = NO_ARRAY,1067		.tlv_type       = 0x15,1068		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1069					   bdf_type_valid),1070	},1071	{1072		.data_type      = QMI_UNSIGNED_1_BYTE,1073		.elem_len       = 1,1074		.elem_size      = sizeof(u8),1075		.array_type     = NO_ARRAY,1076		.tlv_type       = 0x15,1077		.offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,1078					   bdf_type),1079	},1080	{}1081};1082 1083const struct qmi_elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {1084	{1085		.data_type      = QMI_STRUCT,1086		.elem_len       = 1,1087		.elem_size      = sizeof(struct qmi_response_type_v01),1088		.array_type     = NO_ARRAY,1089		.tlv_type       = 0x02,1090		.offset         = offsetof(struct wlfw_bdf_download_resp_msg_v01,1091					   resp),1092		.ei_array      = qmi_response_type_v01_ei,1093	},1094	{}1095};1096 1097const struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = {1098	{1099		.data_type      = QMI_DATA_LEN,1100		.elem_len       = 1,1101		.elem_size      = sizeof(u8),1102		.array_type     = NO_ARRAY,1103		.tlv_type       = 0x01,1104		.offset         = offsetof(struct wlfw_cal_report_req_msg_v01,1105					   meta_data_len),1106	},1107	{1108		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1109		.elem_len       = QMI_WLFW_MAX_NUM_CAL_V01,1110		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1111		.array_type       = VAR_LEN_ARRAY,1112		.tlv_type       = 0x01,1113		.offset         = offsetof(struct wlfw_cal_report_req_msg_v01,1114					   meta_data),1115	},1116	{1117		.data_type      = QMI_OPT_FLAG,1118		.elem_len       = 1,1119		.elem_size      = sizeof(u8),1120		.array_type     = NO_ARRAY,1121		.tlv_type       = 0x10,1122		.offset         = offsetof(struct wlfw_cal_report_req_msg_v01,1123					   xo_cal_data_valid),1124	},1125	{1126		.data_type      = QMI_UNSIGNED_1_BYTE,1127		.elem_len       = 1,1128		.elem_size      = sizeof(u8),1129		.array_type     = NO_ARRAY,1130		.tlv_type       = 0x10,1131		.offset         = offsetof(struct wlfw_cal_report_req_msg_v01,1132					   xo_cal_data),1133	},1134	{}1135};1136 1137const struct qmi_elem_info wlfw_cal_report_resp_msg_v01_ei[] = {1138	{1139		.data_type      = QMI_STRUCT,1140		.elem_len       = 1,1141		.elem_size      = sizeof(struct qmi_response_type_v01),1142		.array_type     = NO_ARRAY,1143		.tlv_type       = 0x02,1144		.offset         = offsetof(struct wlfw_cal_report_resp_msg_v01,1145					   resp),1146		.ei_array      = qmi_response_type_v01_ei,1147	},1148	{}1149};1150 1151const struct qmi_elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = {1152	{1153		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1154		.elem_len       = 1,1155		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1156		.array_type     = NO_ARRAY,1157		.tlv_type       = 0x01,1158		.offset         = offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,1159					   cal_id),1160	},1161	{}1162};1163 1164const struct qmi_elem_info wlfw_cal_download_req_msg_v01_ei[] = {1165	{1166		.data_type      = QMI_UNSIGNED_1_BYTE,1167		.elem_len       = 1,1168		.elem_size      = sizeof(u8),1169		.array_type     = NO_ARRAY,1170		.tlv_type       = 0x01,1171		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1172					   valid),1173	},1174	{1175		.data_type      = QMI_OPT_FLAG,1176		.elem_len       = 1,1177		.elem_size      = sizeof(u8),1178		.array_type     = NO_ARRAY,1179		.tlv_type       = 0x10,1180		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1181					   file_id_valid),1182	},1183	{1184		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1185		.elem_len       = 1,1186		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1187		.array_type     = NO_ARRAY,1188		.tlv_type       = 0x10,1189		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1190					   file_id),1191	},1192	{1193		.data_type      = QMI_OPT_FLAG,1194		.elem_len       = 1,1195		.elem_size      = sizeof(u8),1196		.array_type     = NO_ARRAY,1197		.tlv_type       = 0x11,1198		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1199					   total_size_valid),1200	},1201	{1202		.data_type      = QMI_UNSIGNED_4_BYTE,1203		.elem_len       = 1,1204		.elem_size      = sizeof(u32),1205		.array_type     = NO_ARRAY,1206		.tlv_type       = 0x11,1207		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1208					   total_size),1209	},1210	{1211		.data_type      = QMI_OPT_FLAG,1212		.elem_len       = 1,1213		.elem_size      = sizeof(u8),1214		.array_type     = NO_ARRAY,1215		.tlv_type       = 0x12,1216		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1217					   seg_id_valid),1218	},1219	{1220		.data_type      = QMI_UNSIGNED_4_BYTE,1221		.elem_len       = 1,1222		.elem_size      = sizeof(u32),1223		.array_type     = NO_ARRAY,1224		.tlv_type       = 0x12,1225		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1226					   seg_id),1227	},1228	{1229		.data_type      = QMI_OPT_FLAG,1230		.elem_len       = 1,1231		.elem_size      = sizeof(u8),1232		.array_type     = NO_ARRAY,1233		.tlv_type       = 0x13,1234		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1235					   data_valid),1236	},1237	{1238		.data_type      = QMI_DATA_LEN,1239		.elem_len       = 1,1240		.elem_size      = sizeof(u16),1241		.array_type     = NO_ARRAY,1242		.tlv_type       = 0x13,1243		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1244					   data_len),1245	},1246	{1247		.data_type      = QMI_UNSIGNED_1_BYTE,1248		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,1249		.elem_size      = sizeof(u8),1250		.array_type       = VAR_LEN_ARRAY,1251		.tlv_type       = 0x13,1252		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1253					   data),1254	},1255	{1256		.data_type      = QMI_OPT_FLAG,1257		.elem_len       = 1,1258		.elem_size      = sizeof(u8),1259		.array_type     = NO_ARRAY,1260		.tlv_type       = 0x14,1261		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1262					   end_valid),1263	},1264	{1265		.data_type      = QMI_UNSIGNED_1_BYTE,1266		.elem_len       = 1,1267		.elem_size      = sizeof(u8),1268		.array_type     = NO_ARRAY,1269		.tlv_type       = 0x14,1270		.offset         = offsetof(struct wlfw_cal_download_req_msg_v01,1271					   end),1272	},1273	{}1274};1275 1276const struct qmi_elem_info wlfw_cal_download_resp_msg_v01_ei[] = {1277	{1278		.data_type      = QMI_STRUCT,1279		.elem_len       = 1,1280		.elem_size      = sizeof(struct qmi_response_type_v01),1281		.array_type     = NO_ARRAY,1282		.tlv_type       = 0x02,1283		.offset         = offsetof(struct wlfw_cal_download_resp_msg_v01,1284					   resp),1285		.ei_array      = qmi_response_type_v01_ei,1286	},1287	{}1288};1289 1290const struct qmi_elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = {1291	{1292		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1293		.elem_len       = 1,1294		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1295		.array_type     = NO_ARRAY,1296		.tlv_type       = 0x01,1297		.offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,1298					   cal_id),1299	},1300	{1301		.data_type      = QMI_UNSIGNED_4_BYTE,1302		.elem_len       = 1,1303		.elem_size      = sizeof(u32),1304		.array_type     = NO_ARRAY,1305		.tlv_type       = 0x02,1306		.offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,1307					   total_size),1308	},1309	{}1310};1311 1312const struct qmi_elem_info wlfw_cal_update_req_msg_v01_ei[] = {1313	{1314		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1315		.elem_len       = 1,1316		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1317		.array_type     = NO_ARRAY,1318		.tlv_type       = 0x01,1319		.offset         = offsetof(struct wlfw_cal_update_req_msg_v01,1320					   cal_id),1321	},1322	{1323		.data_type      = QMI_UNSIGNED_4_BYTE,1324		.elem_len       = 1,1325		.elem_size      = sizeof(u32),1326		.array_type     = NO_ARRAY,1327		.tlv_type       = 0x02,1328		.offset         = offsetof(struct wlfw_cal_update_req_msg_v01,1329					   seg_id),1330	},1331	{}1332};1333 1334const struct qmi_elem_info wlfw_cal_update_resp_msg_v01_ei[] = {1335	{1336		.data_type      = QMI_STRUCT,1337		.elem_len       = 1,1338		.elem_size      = sizeof(struct qmi_response_type_v01),1339		.array_type     = NO_ARRAY,1340		.tlv_type       = 0x02,1341		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1342					   resp),1343		.ei_array      = qmi_response_type_v01_ei,1344	},1345	{1346		.data_type      = QMI_OPT_FLAG,1347		.elem_len       = 1,1348		.elem_size      = sizeof(u8),1349		.array_type     = NO_ARRAY,1350		.tlv_type       = 0x10,1351		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1352					   file_id_valid),1353	},1354	{1355		.data_type      = QMI_SIGNED_4_BYTE_ENUM,1356		.elem_len       = 1,1357		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),1358		.array_type     = NO_ARRAY,1359		.tlv_type       = 0x10,1360		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1361					   file_id),1362	},1363	{1364		.data_type      = QMI_OPT_FLAG,1365		.elem_len       = 1,1366		.elem_size      = sizeof(u8),1367		.array_type     = NO_ARRAY,1368		.tlv_type       = 0x11,1369		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1370					   total_size_valid),1371	},1372	{1373		.data_type      = QMI_UNSIGNED_4_BYTE,1374		.elem_len       = 1,1375		.elem_size      = sizeof(u32),1376		.array_type     = NO_ARRAY,1377		.tlv_type       = 0x11,1378		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1379					   total_size),1380	},1381	{1382		.data_type      = QMI_OPT_FLAG,1383		.elem_len       = 1,1384		.elem_size      = sizeof(u8),1385		.array_type     = NO_ARRAY,1386		.tlv_type       = 0x12,1387		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1388					   seg_id_valid),1389	},1390	{1391		.data_type      = QMI_UNSIGNED_4_BYTE,1392		.elem_len       = 1,1393		.elem_size      = sizeof(u32),1394		.array_type     = NO_ARRAY,1395		.tlv_type       = 0x12,1396		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1397					   seg_id),1398	},1399	{1400		.data_type      = QMI_OPT_FLAG,1401		.elem_len       = 1,1402		.elem_size      = sizeof(u8),1403		.array_type     = NO_ARRAY,1404		.tlv_type       = 0x13,1405		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1406					   data_valid),1407	},1408	{1409		.data_type      = QMI_DATA_LEN,1410		.elem_len       = 1,1411		.elem_size      = sizeof(u16),1412		.array_type     = NO_ARRAY,1413		.tlv_type       = 0x13,1414		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1415					   data_len),1416	},1417	{1418		.data_type      = QMI_UNSIGNED_1_BYTE,1419		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,1420		.elem_size      = sizeof(u8),1421		.array_type       = VAR_LEN_ARRAY,1422		.tlv_type       = 0x13,1423		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1424					   data),1425	},1426	{1427		.data_type      = QMI_OPT_FLAG,1428		.elem_len       = 1,1429		.elem_size      = sizeof(u8),1430		.array_type     = NO_ARRAY,1431		.tlv_type       = 0x14,1432		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1433					   end_valid),1434	},1435	{1436		.data_type      = QMI_UNSIGNED_1_BYTE,1437		.elem_len       = 1,1438		.elem_size      = sizeof(u8),1439		.array_type     = NO_ARRAY,1440		.tlv_type       = 0x14,1441		.offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,1442					   end),1443	},1444	{}1445};1446 1447const struct qmi_elem_info wlfw_msa_info_req_msg_v01_ei[] = {1448	{1449		.data_type      = QMI_UNSIGNED_8_BYTE,1450		.elem_len       = 1,1451		.elem_size      = sizeof(u64),1452		.array_type     = NO_ARRAY,1453		.tlv_type       = 0x01,1454		.offset         = offsetof(struct wlfw_msa_info_req_msg_v01,1455					   msa_addr),1456	},1457	{1458		.data_type      = QMI_UNSIGNED_4_BYTE,1459		.elem_len       = 1,1460		.elem_size      = sizeof(u32),1461		.array_type     = NO_ARRAY,1462		.tlv_type       = 0x02,1463		.offset         = offsetof(struct wlfw_msa_info_req_msg_v01,1464					   size),1465	},1466	{}1467};1468 1469const struct qmi_elem_info wlfw_msa_info_resp_msg_v01_ei[] = {1470	{1471		.data_type      = QMI_STRUCT,1472		.elem_len       = 1,1473		.elem_size      = sizeof(struct qmi_response_type_v01),1474		.array_type     = NO_ARRAY,1475		.tlv_type       = 0x02,1476		.offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,1477					   resp),1478		.ei_array      = qmi_response_type_v01_ei,1479	},1480	{1481		.data_type      = QMI_DATA_LEN,1482		.elem_len       = 1,1483		.elem_size      = sizeof(u8),1484		.array_type     = NO_ARRAY,1485		.tlv_type       = 0x03,1486		.offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,1487					   mem_region_info_len),1488	},1489	{1490		.data_type      = QMI_STRUCT,1491		.elem_len       = QMI_WLFW_MAX_MEM_REG_V01,1492		.elem_size      = sizeof(struct wlfw_memory_region_info_s_v01),1493		.array_type       = VAR_LEN_ARRAY,1494		.tlv_type       = 0x03,1495		.offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,1496					   mem_region_info),1497		.ei_array      = wlfw_memory_region_info_s_v01_ei,1498	},1499	{}1500};1501 1502const struct qmi_elem_info wlfw_msa_ready_req_msg_v01_ei[] = {1503	{}1504};1505 1506const struct qmi_elem_info wlfw_msa_ready_resp_msg_v01_ei[] = {1507	{1508		.data_type      = QMI_STRUCT,1509		.elem_len       = 1,1510		.elem_size      = sizeof(struct qmi_response_type_v01),1511		.array_type     = NO_ARRAY,1512		.tlv_type       = 0x02,1513		.offset         = offsetof(struct wlfw_msa_ready_resp_msg_v01,1514					   resp),1515		.ei_array      = qmi_response_type_v01_ei,1516	},1517	{}1518};1519 1520const struct qmi_elem_info wlfw_ini_req_msg_v01_ei[] = {1521	{1522		.data_type      = QMI_OPT_FLAG,1523		.elem_len       = 1,1524		.elem_size      = sizeof(u8),1525		.array_type     = NO_ARRAY,1526		.tlv_type       = 0x10,1527		.offset         = offsetof(struct wlfw_ini_req_msg_v01,1528					   enablefwlog_valid),1529	},1530	{1531		.data_type      = QMI_UNSIGNED_1_BYTE,1532		.elem_len       = 1,1533		.elem_size      = sizeof(u8),1534		.array_type     = NO_ARRAY,1535		.tlv_type       = 0x10,1536		.offset         = offsetof(struct wlfw_ini_req_msg_v01,1537					   enablefwlog),1538	},1539	{}1540};1541 1542const struct qmi_elem_info wlfw_ini_resp_msg_v01_ei[] = {1543	{1544		.data_type      = QMI_STRUCT,1545		.elem_len       = 1,1546		.elem_size      = sizeof(struct qmi_response_type_v01),1547		.array_type     = NO_ARRAY,1548		.tlv_type       = 0x02,1549		.offset         = offsetof(struct wlfw_ini_resp_msg_v01,1550					   resp),1551		.ei_array      = qmi_response_type_v01_ei,1552	},1553	{}1554};1555 1556const struct qmi_elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {1557	{1558		.data_type      = QMI_UNSIGNED_4_BYTE,1559		.elem_len       = 1,1560		.elem_size      = sizeof(u32),1561		.array_type     = NO_ARRAY,1562		.tlv_type       = 0x01,1563		.offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,1564					   offset),1565	},1566	{1567		.data_type      = QMI_UNSIGNED_4_BYTE,1568		.elem_len       = 1,1569		.elem_size      = sizeof(u32),1570		.array_type     = NO_ARRAY,1571		.tlv_type       = 0x02,1572		.offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,1573					   mem_type),1574	},1575	{1576		.data_type      = QMI_UNSIGNED_4_BYTE,1577		.elem_len       = 1,1578		.elem_size      = sizeof(u32),1579		.array_type     = NO_ARRAY,1580		.tlv_type       = 0x03,1581		.offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,1582					   data_len),1583	},1584	{}1585};1586 1587const struct qmi_elem_info wlfw_athdiag_read_resp_msg_v01_ei[] = {1588	{1589		.data_type      = QMI_STRUCT,1590		.elem_len       = 1,1591		.elem_size      = sizeof(struct qmi_response_type_v01),1592		.array_type     = NO_ARRAY,1593		.tlv_type       = 0x02,1594		.offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,1595					   resp),1596		.ei_array      = qmi_response_type_v01_ei,1597	},1598	{1599		.data_type      = QMI_OPT_FLAG,1600		.elem_len       = 1,1601		.elem_size      = sizeof(u8),1602		.array_type     = NO_ARRAY,1603		.tlv_type       = 0x10,1604		.offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,1605					   data_valid),1606	},1607	{1608		.data_type      = QMI_DATA_LEN,1609		.elem_len       = 1,1610		.elem_size      = sizeof(u16),1611		.array_type     = NO_ARRAY,1612		.tlv_type       = 0x10,1613		.offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,1614					   data_len),1615	},1616	{1617		.data_type      = QMI_UNSIGNED_1_BYTE,1618		.elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,1619		.elem_size      = sizeof(u8),1620		.array_type       = VAR_LEN_ARRAY,1621		.tlv_type       = 0x10,1622		.offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,1623					   data),1624	},1625	{}1626};1627 1628const struct qmi_elem_info wlfw_athdiag_write_req_msg_v01_ei[] = {1629	{1630		.data_type      = QMI_UNSIGNED_4_BYTE,1631		.elem_len       = 1,1632		.elem_size      = sizeof(u32),1633		.array_type     = NO_ARRAY,1634		.tlv_type       = 0x01,1635		.offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,1636					   offset),1637	},1638	{1639		.data_type      = QMI_UNSIGNED_4_BYTE,1640		.elem_len       = 1,1641		.elem_size      = sizeof(u32),1642		.array_type     = NO_ARRAY,1643		.tlv_type       = 0x02,1644		.offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,1645					   mem_type),1646	},1647	{1648		.data_type      = QMI_DATA_LEN,1649		.elem_len       = 1,1650		.elem_size      = sizeof(u16),1651		.array_type     = NO_ARRAY,1652		.tlv_type       = 0x03,1653		.offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,1654					   data_len),1655	},1656	{1657		.data_type      = QMI_UNSIGNED_1_BYTE,1658		.elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,1659		.elem_size      = sizeof(u8),1660		.array_type       = VAR_LEN_ARRAY,1661		.tlv_type       = 0x03,1662		.offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,1663					   data),1664	},1665	{}1666};1667 1668const struct qmi_elem_info wlfw_athdiag_write_resp_msg_v01_ei[] = {1669	{1670		.data_type      = QMI_STRUCT,1671		.elem_len       = 1,1672		.elem_size      = sizeof(struct qmi_response_type_v01),1673		.array_type     = NO_ARRAY,1674		.tlv_type       = 0x02,1675		.offset         = offsetof(struct wlfw_athdiag_write_resp_msg_v01,1676					   resp),1677		.ei_array      = qmi_response_type_v01_ei,1678	},1679	{}1680};1681 1682const struct qmi_elem_info wlfw_vbatt_req_msg_v01_ei[] = {1683	{1684		.data_type      = QMI_UNSIGNED_8_BYTE,1685		.elem_len       = 1,1686		.elem_size      = sizeof(u64),1687		.array_type     = NO_ARRAY,1688		.tlv_type       = 0x01,1689		.offset         = offsetof(struct wlfw_vbatt_req_msg_v01,1690					   voltage_uv),1691	},1692	{}1693};1694 1695const struct qmi_elem_info wlfw_vbatt_resp_msg_v01_ei[] = {1696	{1697		.data_type      = QMI_STRUCT,1698		.elem_len       = 1,1699		.elem_size      = sizeof(struct qmi_response_type_v01),1700		.array_type     = NO_ARRAY,1701		.tlv_type       = 0x02,1702		.offset         = offsetof(struct wlfw_vbatt_resp_msg_v01,1703					   resp),1704		.ei_array      = qmi_response_type_v01_ei,1705	},1706	{}1707};1708 1709const struct qmi_elem_info wlfw_mac_addr_req_msg_v01_ei[] = {1710	{1711		.data_type      = QMI_OPT_FLAG,1712		.elem_len       = 1,1713		.elem_size      = sizeof(u8),1714		.array_type     = NO_ARRAY,1715		.tlv_type       = 0x10,1716		.offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,1717					   mac_addr_valid),1718	},1719	{1720		.data_type      = QMI_UNSIGNED_1_BYTE,1721		.elem_len       = QMI_WLFW_MAC_ADDR_SIZE_V01,1722		.elem_size      = sizeof(u8),1723		.array_type       = STATIC_ARRAY,1724		.tlv_type       = 0x10,1725		.offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,1726					   mac_addr),1727	},1728	{}1729};1730 1731const struct qmi_elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {1732	{1733		.data_type      = QMI_STRUCT,1734		.elem_len       = 1,1735		.elem_size      = sizeof(struct qmi_response_type_v01),1736		.array_type     = NO_ARRAY,1737		.tlv_type       = 0x02,1738		.offset         = offsetof(struct wlfw_mac_addr_resp_msg_v01,1739					   resp),1740		.ei_array      = qmi_response_type_v01_ei,1741	},1742	{}1743};1744 1745const struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = {1746	{1747		.data_type      = QMI_OPT_FLAG,1748		.elem_len       = 1,1749		.elem_size      = sizeof(u8),1750		.array_type     = NO_ARRAY,1751		.tlv_type       = 0x10,1752		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1753					   daemon_support_valid),1754	},1755	{1756		.data_type      = QMI_UNSIGNED_4_BYTE,1757		.elem_len       = 1,1758		.elem_size      = sizeof(u32),1759		.array_type     = NO_ARRAY,1760		.tlv_type       = 0x10,1761		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1762					   daemon_support),1763	},1764	{1765		.data_type      = QMI_OPT_FLAG,1766		.elem_len       = 1,1767		.elem_size      = sizeof(u8),1768		.array_type     = NO_ARRAY,1769		.tlv_type       = 0x11,1770		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1771					   wake_msi_valid),1772	},1773	{1774		.data_type      = QMI_UNSIGNED_4_BYTE,1775		.elem_len       = 1,1776		.elem_size      = sizeof(u32),1777		.array_type     = NO_ARRAY,1778		.tlv_type       = 0x11,1779		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1780					   wake_msi),1781	},1782	{1783		.data_type      = QMI_OPT_FLAG,1784		.elem_len       = 1,1785		.elem_size      = sizeof(u8),1786		.array_type     = NO_ARRAY,1787		.tlv_type       = 0x12,1788		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1789					   gpios_valid),1790	},1791	{1792		.data_type      = QMI_DATA_LEN,1793		.elem_len       = 1,1794		.elem_size      = sizeof(u32),1795		.array_type     = NO_ARRAY,1796		.tlv_type       = 0x12,1797		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1798					   gpios_len),1799	},1800	{1801		.data_type      = QMI_UNSIGNED_4_BYTE,1802		.elem_len       = QMI_WLFW_MAX_NUM_GPIO_V01,1803		.elem_size      = sizeof(u32),1804		.array_type     = VAR_LEN_ARRAY,1805		.tlv_type       = 0x12,1806		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1807					   gpios),1808	},1809	{1810		.data_type      = QMI_OPT_FLAG,1811		.elem_len       = 1,1812		.elem_size      = sizeof(u8),1813		.array_type     = NO_ARRAY,1814		.tlv_type       = 0x13,1815		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1816					   nm_modem_valid),1817	},1818	{1819		.data_type      = QMI_UNSIGNED_1_BYTE,1820		.elem_len       = 1,1821		.elem_size      = sizeof(u8),1822		.array_type     = NO_ARRAY,1823		.tlv_type       = 0x13,1824		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1825					   nm_modem),1826	},1827	{1828		.data_type      = QMI_OPT_FLAG,1829		.elem_len       = 1,1830		.elem_size      = sizeof(u8),1831		.array_type     = NO_ARRAY,1832		.tlv_type       = 0x14,1833		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1834					   bdf_support_valid),1835	},1836	{1837		.data_type      = QMI_UNSIGNED_1_BYTE,1838		.elem_len       = 1,1839		.elem_size      = sizeof(u8),1840		.array_type     = NO_ARRAY,1841		.tlv_type       = 0x14,1842		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1843					   bdf_support),1844	},1845	{1846		.data_type      = QMI_OPT_FLAG,1847		.elem_len       = 1,1848		.elem_size      = sizeof(u8),1849		.array_type     = NO_ARRAY,1850		.tlv_type       = 0x15,1851		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1852					   bdf_cache_support_valid),1853	},1854	{1855		.data_type      = QMI_UNSIGNED_1_BYTE,1856		.elem_len       = 1,1857		.elem_size      = sizeof(u8),1858		.array_type     = NO_ARRAY,1859		.tlv_type       = 0x15,1860		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1861					   bdf_cache_support),1862	},1863	{1864		.data_type      = QMI_OPT_FLAG,1865		.elem_len       = 1,1866		.elem_size      = sizeof(u8),1867		.array_type     = NO_ARRAY,1868		.tlv_type       = 0x16,1869		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1870					   m3_support_valid),1871	},1872	{1873		.data_type      = QMI_UNSIGNED_1_BYTE,1874		.elem_len       = 1,1875		.elem_size      = sizeof(u8),1876		.array_type     = NO_ARRAY,1877		.tlv_type       = 0x16,1878		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1879					   m3_support),1880	},1881	{1882		.data_type      = QMI_OPT_FLAG,1883		.elem_len       = 1,1884		.elem_size      = sizeof(u8),1885		.array_type     = NO_ARRAY,1886		.tlv_type       = 0x17,1887		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1888					   m3_cache_support_valid),1889	},1890	{1891		.data_type      = QMI_UNSIGNED_1_BYTE,1892		.elem_len       = 1,1893		.elem_size      = sizeof(u8),1894		.array_type     = NO_ARRAY,1895		.tlv_type       = 0x17,1896		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1897					   m3_cache_support),1898	},1899	{1900		.data_type      = QMI_OPT_FLAG,1901		.elem_len       = 1,1902		.elem_size      = sizeof(u8),1903		.array_type     = NO_ARRAY,1904		.tlv_type       = 0x18,1905		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1906					   cal_filesys_support_valid),1907	},1908	{1909		.data_type      = QMI_UNSIGNED_1_BYTE,1910		.elem_len       = 1,1911		.elem_size      = sizeof(u8),1912		.array_type     = NO_ARRAY,1913		.tlv_type       = 0x18,1914		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1915					   cal_filesys_support),1916	},1917	{1918		.data_type      = QMI_OPT_FLAG,1919		.elem_len       = 1,1920		.elem_size      = sizeof(u8),1921		.array_type     = NO_ARRAY,1922		.tlv_type       = 0x19,1923		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1924					   cal_cache_support_valid),1925	},1926	{1927		.data_type      = QMI_UNSIGNED_1_BYTE,1928		.elem_len       = 1,1929		.elem_size      = sizeof(u8),1930		.array_type     = NO_ARRAY,1931		.tlv_type       = 0x19,1932		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1933					   cal_cache_support),1934	},1935	{1936		.data_type      = QMI_OPT_FLAG,1937		.elem_len       = 1,1938		.elem_size      = sizeof(u8),1939		.array_type     = NO_ARRAY,1940		.tlv_type       = 0x1A,1941		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1942					   cal_done_valid),1943	},1944	{1945		.data_type      = QMI_UNSIGNED_1_BYTE,1946		.elem_len       = 1,1947		.elem_size      = sizeof(u8),1948		.array_type     = NO_ARRAY,1949		.tlv_type       = 0x1A,1950		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1951					   cal_done),1952	},1953	{1954		.data_type      = QMI_OPT_FLAG,1955		.elem_len       = 1,1956		.elem_size      = sizeof(u8),1957		.array_type     = NO_ARRAY,1958		.tlv_type       = 0x1B,1959		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1960					   mem_bucket_valid),1961	},1962	{1963		.data_type      = QMI_UNSIGNED_4_BYTE,1964		.elem_len       = 1,1965		.elem_size      = sizeof(u32),1966		.array_type     = NO_ARRAY,1967		.tlv_type       = 0x1B,1968		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1969					   mem_bucket),1970	},1971	{1972		.data_type      = QMI_OPT_FLAG,1973		.elem_len       = 1,1974		.elem_size      = sizeof(u8),1975		.array_type     = NO_ARRAY,1976		.tlv_type       = 0x1C,1977		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1978					   mem_cfg_mode_valid),1979	},1980	{1981		.data_type      = QMI_UNSIGNED_1_BYTE,1982		.elem_len       = 1,1983		.elem_size      = sizeof(u8),1984		.array_type     = NO_ARRAY,1985		.tlv_type       = 0x1C,1986		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,1987					   mem_cfg_mode),1988	},1989	{}1990};1991 1992const struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[] = {1993	{1994		.data_type      = QMI_OPT_FLAG,1995		.elem_len       = 1,1996		.elem_size      = sizeof(u8),1997		.array_type     = NO_ARRAY,1998		.tlv_type       = 0x10,1999		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,2000					   daemon_support_valid),2001	},2002	{2003		.data_type      = QMI_UNSIGNED_1_BYTE,2004		.elem_len       = 1,2005		.elem_size      = sizeof(u8),2006		.array_type     = NO_ARRAY,2007		.tlv_type       = 0x10,2008		.offset         = offsetof(struct wlfw_host_cap_req_msg_v01,2009					   daemon_support),2010	},2011	{}2012};2013 2014const struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[] = {2015	{2016		.data_type      = QMI_STRUCT,2017		.elem_len       = 1,2018		.elem_size      = sizeof(struct qmi_response_type_v01),2019		.array_type     = NO_ARRAY,2020		.tlv_type       = 0x02,2021		.offset         = offsetof(struct wlfw_host_cap_resp_msg_v01,2022					   resp),2023		.ei_array      = qmi_response_type_v01_ei,2024	},2025	{}2026};2027 2028const struct qmi_elem_info wlfw_request_mem_ind_msg_v01_ei[] = {2029	{2030		.data_type      = QMI_DATA_LEN,2031		.elem_len       = 1,2032		.elem_size      = sizeof(u8),2033		.array_type     = NO_ARRAY,2034		.tlv_type       = 0x01,2035		.offset         = offsetof(struct wlfw_request_mem_ind_msg_v01,2036					   mem_seg_len),2037	},2038	{2039		.data_type      = QMI_STRUCT,2040		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,2041		.elem_size      = sizeof(struct wlfw_mem_seg_s_v01),2042		.array_type       = VAR_LEN_ARRAY,2043		.tlv_type       = 0x01,2044		.offset         = offsetof(struct wlfw_request_mem_ind_msg_v01,2045					   mem_seg),2046		.ei_array      = wlfw_mem_seg_s_v01_ei,2047	},2048	{}2049};2050 2051const struct qmi_elem_info wlfw_respond_mem_req_msg_v01_ei[] = {2052	{2053		.data_type      = QMI_DATA_LEN,2054		.elem_len       = 1,2055		.elem_size      = sizeof(u8),2056		.array_type     = NO_ARRAY,2057		.tlv_type       = 0x01,2058		.offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,2059					   mem_seg_len),2060	},2061	{2062		.data_type      = QMI_STRUCT,2063		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,2064		.elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),2065		.array_type       = VAR_LEN_ARRAY,2066		.tlv_type       = 0x01,2067		.offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,2068					   mem_seg),2069		.ei_array      = wlfw_mem_seg_resp_s_v01_ei,2070	},2071	{}2072};2073 2074const struct qmi_elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {2075	{2076		.data_type      = QMI_STRUCT,2077		.elem_len       = 1,2078		.elem_size      = sizeof(struct qmi_response_type_v01),2079		.array_type     = NO_ARRAY,2080		.tlv_type       = 0x02,2081		.offset         = offsetof(struct wlfw_respond_mem_resp_msg_v01,2082					   resp),2083		.ei_array      = qmi_response_type_v01_ei,2084	},2085	{}2086};2087 2088const struct qmi_elem_info wlfw_mem_ready_ind_msg_v01_ei[] = {2089	{}2090};2091 2092const struct qmi_elem_info wlfw_fw_init_done_ind_msg_v01_ei[] = {2093	{}2094};2095 2096const struct qmi_elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {2097	{2098		.data_type      = QMI_OPT_FLAG,2099		.elem_len       = 1,2100		.elem_size      = sizeof(u8),2101		.array_type     = NO_ARRAY,2102		.tlv_type       = 0x10,2103		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2104					   cause_for_rejuvenation_valid),2105	},2106	{2107		.data_type      = QMI_UNSIGNED_1_BYTE,2108		.elem_len       = 1,2109		.elem_size      = sizeof(u8),2110		.array_type     = NO_ARRAY,2111		.tlv_type       = 0x10,2112		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2113					   cause_for_rejuvenation),2114	},2115	{2116		.data_type      = QMI_OPT_FLAG,2117		.elem_len       = 1,2118		.elem_size      = sizeof(u8),2119		.array_type     = NO_ARRAY,2120		.tlv_type       = 0x11,2121		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2122					   requesting_sub_system_valid),2123	},2124	{2125		.data_type      = QMI_UNSIGNED_1_BYTE,2126		.elem_len       = 1,2127		.elem_size      = sizeof(u8),2128		.array_type     = NO_ARRAY,2129		.tlv_type       = 0x11,2130		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2131					   requesting_sub_system),2132	},2133	{2134		.data_type      = QMI_OPT_FLAG,2135		.elem_len       = 1,2136		.elem_size      = sizeof(u8),2137		.array_type     = NO_ARRAY,2138		.tlv_type       = 0x12,2139		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2140					   line_number_valid),2141	},2142	{2143		.data_type      = QMI_UNSIGNED_2_BYTE,2144		.elem_len       = 1,2145		.elem_size      = sizeof(u16),2146		.array_type     = NO_ARRAY,2147		.tlv_type       = 0x12,2148		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2149					   line_number),2150	},2151	{2152		.data_type      = QMI_OPT_FLAG,2153		.elem_len       = 1,2154		.elem_size      = sizeof(u8),2155		.array_type     = NO_ARRAY,2156		.tlv_type       = 0x13,2157		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2158					   function_name_valid),2159	},2160	{2161		.data_type      = QMI_STRING,2162		.elem_len       = QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1,2163		.elem_size      = sizeof(char),2164		.array_type     = NO_ARRAY,2165		.tlv_type       = 0x13,2166		.offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,2167					   function_name),2168	},2169	{}2170};2171 2172const struct qmi_elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {2173	{}2174};2175 2176const struct qmi_elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[] = {2177	{2178		.data_type      = QMI_STRUCT,2179		.elem_len       = 1,2180		.elem_size      = sizeof(struct qmi_response_type_v01),2181		.array_type     = NO_ARRAY,2182		.tlv_type       = 0x02,2183		.offset         = offsetof(struct wlfw_rejuvenate_ack_resp_msg_v01,2184					   resp),2185		.ei_array      = qmi_response_type_v01_ei,2186	},2187	{}2188};2189 2190const struct qmi_elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[] = {2191	{2192		.data_type      = QMI_OPT_FLAG,2193		.elem_len       = 1,2194		.elem_size      = sizeof(u8),2195		.array_type     = NO_ARRAY,2196		.tlv_type       = 0x10,2197		.offset         = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,2198					   mask_valid),2199	},2200	{2201		.data_type      = QMI_UNSIGNED_8_BYTE,2202		.elem_len       = 1,2203		.elem_size      = sizeof(u64),2204		.array_type     = NO_ARRAY,2205		.tlv_type       = 0x10,2206		.offset         = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,2207					   mask),2208	},2209	{}2210};2211 2212const struct qmi_elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[] = {2213	{2214		.data_type      = QMI_STRUCT,2215		.elem_len       = 1,2216		.elem_size      = sizeof(struct qmi_response_type_v01),2217		.array_type     = NO_ARRAY,2218		.tlv_type       = 0x02,2219		.offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,2220					   resp),2221		.ei_array      = qmi_response_type_v01_ei,2222	},2223	{2224		.data_type      = QMI_OPT_FLAG,2225		.elem_len       = 1,2226		.elem_size      = sizeof(u8),2227		.array_type     = NO_ARRAY,2228		.tlv_type       = 0x10,2229		.offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,2230					   prev_mask_valid),2231	},2232	{2233		.data_type      = QMI_UNSIGNED_8_BYTE,2234		.elem_len       = 1,2235		.elem_size      = sizeof(u64),2236		.array_type     = NO_ARRAY,2237		.tlv_type       = 0x10,2238		.offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,2239					   prev_mask),2240	},2241	{2242		.data_type      = QMI_OPT_FLAG,2243		.elem_len       = 1,2244		.elem_size      = sizeof(u8),2245		.array_type     = NO_ARRAY,2246		.tlv_type       = 0x11,2247		.offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,2248					   curr_mask_valid),2249	},2250	{2251		.data_type      = QMI_UNSIGNED_8_BYTE,2252		.elem_len       = 1,2253		.elem_size      = sizeof(u64),2254		.array_type     = NO_ARRAY,2255		.tlv_type       = 0x11,2256		.offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,2257					   curr_mask),2258	},2259	{}2260};2261 2262const struct qmi_elem_info wlfw_m3_info_req_msg_v01_ei[] = {2263	{2264		.data_type      = QMI_UNSIGNED_8_BYTE,2265		.elem_len       = 1,2266		.elem_size      = sizeof(u64),2267		.array_type     = NO_ARRAY,2268		.tlv_type       = 0x01,2269		.offset         = offsetof(struct wlfw_m3_info_req_msg_v01,2270					   addr),2271	},2272	{2273		.data_type      = QMI_UNSIGNED_4_BYTE,2274		.elem_len       = 1,2275		.elem_size      = sizeof(u32),2276		.array_type     = NO_ARRAY,2277		.tlv_type       = 0x02,2278		.offset         = offsetof(struct wlfw_m3_info_req_msg_v01,2279					   size),2280	},2281	{}2282};2283 2284const struct qmi_elem_info wlfw_m3_info_resp_msg_v01_ei[] = {2285	{2286		.data_type      = QMI_STRUCT,2287		.elem_len       = 1,2288		.elem_size      = sizeof(struct qmi_response_type_v01),2289		.array_type     = NO_ARRAY,2290		.tlv_type       = 0x02,2291		.offset         = offsetof(struct wlfw_m3_info_resp_msg_v01,2292					   resp),2293		.ei_array      = qmi_response_type_v01_ei,2294	},2295	{}2296};2297 2298const struct qmi_elem_info wlfw_xo_cal_ind_msg_v01_ei[] = {2299	{2300		.data_type      = QMI_UNSIGNED_1_BYTE,2301		.elem_len       = 1,2302		.elem_size      = sizeof(u8),2303		.array_type     = NO_ARRAY,2304		.tlv_type       = 0x01,2305		.offset         = offsetof(struct wlfw_xo_cal_ind_msg_v01,2306					   xo_cal_data),2307	},2308	{}2309};2310