xref: /wlan-driver/platform/cnss_utils/wlan_firmware_service_v01.c (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. */
3 /* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. */
4 
5 
6 #include "wlan_firmware_service_v01.h"
7 #include <linux/module.h>
8 #include <linux/of.h>
9 
10 static struct qmi_elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
11 	{
12 		.data_type      = QMI_UNSIGNED_4_BYTE,
13 		.elem_len       = 1,
14 		.elem_size      = sizeof(u32),
15 		.array_type       = NO_ARRAY,
16 		.tlv_type       = 0,
17 		.offset         = offsetof(struct
18 					   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
28 					   wlfw_ce_tgt_pipe_cfg_s_v01,
29 					   pipe_dir),
30 	},
31 	{
32 		.data_type      = QMI_UNSIGNED_4_BYTE,
33 		.elem_len       = 1,
34 		.elem_size      = sizeof(u32),
35 		.array_type       = NO_ARRAY,
36 		.tlv_type       = 0,
37 		.offset         = offsetof(struct
38 					   wlfw_ce_tgt_pipe_cfg_s_v01,
39 					   nentries),
40 	},
41 	{
42 		.data_type      = QMI_UNSIGNED_4_BYTE,
43 		.elem_len       = 1,
44 		.elem_size      = sizeof(u32),
45 		.array_type       = NO_ARRAY,
46 		.tlv_type       = 0,
47 		.offset         = offsetof(struct
48 					   wlfw_ce_tgt_pipe_cfg_s_v01,
49 					   nbytes_max),
50 	},
51 	{
52 		.data_type      = QMI_UNSIGNED_4_BYTE,
53 		.elem_len       = 1,
54 		.elem_size      = sizeof(u32),
55 		.array_type       = NO_ARRAY,
56 		.tlv_type       = 0,
57 		.offset         = offsetof(struct
58 					   wlfw_ce_tgt_pipe_cfg_s_v01,
59 					   flags),
60 	},
61 	{
62 		.data_type      = QMI_EOTI,
63 		.array_type       = NO_ARRAY,
64 		.tlv_type       = QMI_COMMON_TLV_TYPE,
65 	},
66 };
67 
68 static struct qmi_elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
69 	{
70 		.data_type      = QMI_UNSIGNED_4_BYTE,
71 		.elem_len       = 1,
72 		.elem_size      = sizeof(u32),
73 		.array_type       = NO_ARRAY,
74 		.tlv_type       = 0,
75 		.offset         = offsetof(struct
76 					   wlfw_ce_svc_pipe_cfg_s_v01,
77 					   service_id),
78 	},
79 	{
80 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
81 		.elem_len       = 1,
82 		.elem_size      = sizeof(enum wlfw_pipedir_enum_v01),
83 		.array_type       = NO_ARRAY,
84 		.tlv_type       = 0,
85 		.offset         = offsetof(struct
86 					   wlfw_ce_svc_pipe_cfg_s_v01,
87 					   pipe_dir),
88 	},
89 	{
90 		.data_type      = QMI_UNSIGNED_4_BYTE,
91 		.elem_len       = 1,
92 		.elem_size      = sizeof(u32),
93 		.array_type       = NO_ARRAY,
94 		.tlv_type       = 0,
95 		.offset         = offsetof(struct
96 					   wlfw_ce_svc_pipe_cfg_s_v01,
97 					   pipe_num),
98 	},
99 	{
100 		.data_type      = QMI_EOTI,
101 		.array_type       = NO_ARRAY,
102 		.tlv_type       = QMI_COMMON_TLV_TYPE,
103 	},
104 };
105 
106 static struct qmi_elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
107 	{
108 		.data_type      = QMI_UNSIGNED_2_BYTE,
109 		.elem_len       = 1,
110 		.elem_size      = sizeof(u16),
111 		.array_type       = NO_ARRAY,
112 		.tlv_type       = 0,
113 		.offset         = offsetof(struct
114 					   wlfw_shadow_reg_cfg_s_v01,
115 					   id),
116 	},
117 	{
118 		.data_type      = QMI_UNSIGNED_2_BYTE,
119 		.elem_len       = 1,
120 		.elem_size      = sizeof(u16),
121 		.array_type       = NO_ARRAY,
122 		.tlv_type       = 0,
123 		.offset         = offsetof(struct
124 					   wlfw_shadow_reg_cfg_s_v01,
125 					   offset),
126 	},
127 	{
128 		.data_type      = QMI_EOTI,
129 		.array_type       = NO_ARRAY,
130 		.tlv_type       = QMI_COMMON_TLV_TYPE,
131 	},
132 };
133 
134 static struct qmi_elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {
135 	{
136 		.data_type      = QMI_UNSIGNED_4_BYTE,
137 		.elem_len       = 1,
138 		.elem_size      = sizeof(u32),
139 		.array_type       = NO_ARRAY,
140 		.tlv_type       = 0,
141 		.offset         = offsetof(struct
142 					   wlfw_shadow_reg_v2_cfg_s_v01,
143 					   addr),
144 	},
145 	{
146 		.data_type      = QMI_EOTI,
147 		.array_type       = NO_ARRAY,
148 		.tlv_type       = QMI_COMMON_TLV_TYPE,
149 	},
150 };
151 
152 static struct qmi_elem_info wlfw_rri_over_ddr_cfg_s_v01_ei[] = {
153 	{
154 		.data_type      = QMI_UNSIGNED_4_BYTE,
155 		.elem_len       = 1,
156 		.elem_size      = sizeof(u32),
157 		.array_type       = NO_ARRAY,
158 		.tlv_type       = 0,
159 		.offset         = offsetof(struct
160 					   wlfw_rri_over_ddr_cfg_s_v01,
161 					   base_addr_low),
162 	},
163 	{
164 		.data_type      = QMI_UNSIGNED_4_BYTE,
165 		.elem_len       = 1,
166 		.elem_size      = sizeof(u32),
167 		.array_type       = NO_ARRAY,
168 		.tlv_type       = 0,
169 		.offset         = offsetof(struct
170 					   wlfw_rri_over_ddr_cfg_s_v01,
171 					   base_addr_high),
172 	},
173 	{
174 		.data_type      = QMI_EOTI,
175 		.array_type       = NO_ARRAY,
176 		.tlv_type       = QMI_COMMON_TLV_TYPE,
177 	},
178 };
179 
180 static struct qmi_elem_info wlfw_msi_cfg_s_v01_ei[] = {
181 	{
182 		.data_type      = QMI_UNSIGNED_2_BYTE,
183 		.elem_len       = 1,
184 		.elem_size      = sizeof(u16),
185 		.array_type       = NO_ARRAY,
186 		.tlv_type       = 0,
187 		.offset         = offsetof(struct
188 					   wlfw_msi_cfg_s_v01,
189 					   ce_id),
190 	},
191 	{
192 		.data_type      = QMI_UNSIGNED_2_BYTE,
193 		.elem_len       = 1,
194 		.elem_size      = sizeof(u16),
195 		.array_type       = NO_ARRAY,
196 		.tlv_type       = 0,
197 		.offset         = offsetof(struct
198 					   wlfw_msi_cfg_s_v01,
199 					   msi_vector),
200 	},
201 	{
202 		.data_type      = QMI_EOTI,
203 		.array_type       = NO_ARRAY,
204 		.tlv_type       = QMI_COMMON_TLV_TYPE,
205 	},
206 };
207 
208 static struct qmi_elem_info wlfw_memory_region_info_s_v01_ei[] = {
209 	{
210 		.data_type      = QMI_UNSIGNED_8_BYTE,
211 		.elem_len       = 1,
212 		.elem_size      = sizeof(u64),
213 		.array_type       = NO_ARRAY,
214 		.tlv_type       = 0,
215 		.offset         = offsetof(struct
216 					   wlfw_memory_region_info_s_v01,
217 					   region_addr),
218 	},
219 	{
220 		.data_type      = QMI_UNSIGNED_4_BYTE,
221 		.elem_len       = 1,
222 		.elem_size      = sizeof(u32),
223 		.array_type       = NO_ARRAY,
224 		.tlv_type       = 0,
225 		.offset         = offsetof(struct
226 					   wlfw_memory_region_info_s_v01,
227 					   size),
228 	},
229 	{
230 		.data_type      = QMI_UNSIGNED_1_BYTE,
231 		.elem_len       = 1,
232 		.elem_size      = sizeof(u8),
233 		.array_type       = NO_ARRAY,
234 		.tlv_type       = 0,
235 		.offset         = offsetof(struct
236 					   wlfw_memory_region_info_s_v01,
237 					   secure_flag),
238 	},
239 	{
240 		.data_type      = QMI_EOTI,
241 		.array_type       = NO_ARRAY,
242 		.tlv_type       = QMI_COMMON_TLV_TYPE,
243 	},
244 };
245 
246 static struct qmi_elem_info wlfw_mem_cfg_s_v01_ei[] = {
247 	{
248 		.data_type      = QMI_UNSIGNED_8_BYTE,
249 		.elem_len       = 1,
250 		.elem_size      = sizeof(u64),
251 		.array_type       = NO_ARRAY,
252 		.tlv_type       = 0,
253 		.offset         = offsetof(struct
254 					   wlfw_mem_cfg_s_v01,
255 					   offset),
256 	},
257 	{
258 		.data_type      = QMI_UNSIGNED_4_BYTE,
259 		.elem_len       = 1,
260 		.elem_size      = sizeof(u32),
261 		.array_type       = NO_ARRAY,
262 		.tlv_type       = 0,
263 		.offset         = offsetof(struct
264 					   wlfw_mem_cfg_s_v01,
265 					   size),
266 	},
267 	{
268 		.data_type      = QMI_UNSIGNED_1_BYTE,
269 		.elem_len       = 1,
270 		.elem_size      = sizeof(u8),
271 		.array_type       = NO_ARRAY,
272 		.tlv_type       = 0,
273 		.offset         = offsetof(struct
274 					   wlfw_mem_cfg_s_v01,
275 					   secure_flag),
276 	},
277 	{
278 		.data_type      = QMI_EOTI,
279 		.array_type       = NO_ARRAY,
280 		.tlv_type       = QMI_COMMON_TLV_TYPE,
281 	},
282 };
283 
284 static struct qmi_elem_info wlfw_mem_seg_s_v01_ei[] = {
285 	{
286 		.data_type      = QMI_UNSIGNED_4_BYTE,
287 		.elem_len       = 1,
288 		.elem_size      = sizeof(u32),
289 		.array_type       = NO_ARRAY,
290 		.tlv_type       = 0,
291 		.offset         = offsetof(struct
292 					   wlfw_mem_seg_s_v01,
293 					   size),
294 	},
295 	{
296 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
297 		.elem_len       = 1,
298 		.elem_size      = sizeof(enum wlfw_mem_type_enum_v01),
299 		.array_type       = NO_ARRAY,
300 		.tlv_type       = 0,
301 		.offset         = offsetof(struct
302 					   wlfw_mem_seg_s_v01,
303 					   type),
304 	},
305 	{
306 		.data_type      = QMI_DATA_LEN,
307 		.elem_len       = 1,
308 		.elem_size      = sizeof(u8),
309 		.array_type       = NO_ARRAY,
310 		.tlv_type       = 0,
311 		.offset         = offsetof(struct
312 					   wlfw_mem_seg_s_v01,
313 					   mem_cfg_len),
314 	},
315 	{
316 		.data_type      = QMI_STRUCT,
317 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_CFG_V01,
318 		.elem_size      = sizeof(struct wlfw_mem_cfg_s_v01),
319 		.array_type       = VAR_LEN_ARRAY,
320 		.tlv_type       = 0,
321 		.offset         = offsetof(struct
322 					   wlfw_mem_seg_s_v01,
323 					   mem_cfg),
324 		.ei_array      = wlfw_mem_cfg_s_v01_ei,
325 	},
326 	{
327 		.data_type      = QMI_EOTI,
328 		.array_type       = NO_ARRAY,
329 		.tlv_type       = QMI_COMMON_TLV_TYPE,
330 	},
331 };
332 
333 static struct qmi_elem_info wlfw_mem_seg_resp_s_v01_ei[] = {
334 	{
335 		.data_type      = QMI_UNSIGNED_8_BYTE,
336 		.elem_len       = 1,
337 		.elem_size      = sizeof(u64),
338 		.array_type       = NO_ARRAY,
339 		.tlv_type       = 0,
340 		.offset         = offsetof(struct
341 					   wlfw_mem_seg_resp_s_v01,
342 					   addr),
343 	},
344 	{
345 		.data_type      = QMI_UNSIGNED_4_BYTE,
346 		.elem_len       = 1,
347 		.elem_size      = sizeof(u32),
348 		.array_type       = NO_ARRAY,
349 		.tlv_type       = 0,
350 		.offset         = offsetof(struct
351 					   wlfw_mem_seg_resp_s_v01,
352 					   size),
353 	},
354 	{
355 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
356 		.elem_len       = 1,
357 		.elem_size      = sizeof(enum wlfw_mem_type_enum_v01),
358 		.array_type       = NO_ARRAY,
359 		.tlv_type       = 0,
360 		.offset         = offsetof(struct
361 					   wlfw_mem_seg_resp_s_v01,
362 					   type),
363 	},
364 	{
365 		.data_type      = QMI_UNSIGNED_1_BYTE,
366 		.elem_len       = 1,
367 		.elem_size      = sizeof(u8),
368 		.array_type       = NO_ARRAY,
369 		.tlv_type       = 0,
370 		.offset         = offsetof(struct
371 					   wlfw_mem_seg_resp_s_v01,
372 					   restore),
373 	},
374 	{
375 		.data_type      = QMI_EOTI,
376 		.array_type       = NO_ARRAY,
377 		.tlv_type       = QMI_COMMON_TLV_TYPE,
378 	},
379 };
380 
381 static struct qmi_elem_info wlfw_rf_chip_info_s_v01_ei[] = {
382 	{
383 		.data_type      = QMI_UNSIGNED_4_BYTE,
384 		.elem_len       = 1,
385 		.elem_size      = sizeof(u32),
386 		.array_type       = NO_ARRAY,
387 		.tlv_type       = 0,
388 		.offset         = offsetof(struct
389 					   wlfw_rf_chip_info_s_v01,
390 					   chip_id),
391 	},
392 	{
393 		.data_type      = QMI_UNSIGNED_4_BYTE,
394 		.elem_len       = 1,
395 		.elem_size      = sizeof(u32),
396 		.array_type       = NO_ARRAY,
397 		.tlv_type       = 0,
398 		.offset         = offsetof(struct
399 					   wlfw_rf_chip_info_s_v01,
400 					   chip_family),
401 	},
402 	{
403 		.data_type      = QMI_EOTI,
404 		.array_type       = NO_ARRAY,
405 		.tlv_type       = QMI_COMMON_TLV_TYPE,
406 	},
407 };
408 
409 static struct qmi_elem_info wlfw_rf_board_info_s_v01_ei[] = {
410 	{
411 		.data_type      = QMI_UNSIGNED_4_BYTE,
412 		.elem_len       = 1,
413 		.elem_size      = sizeof(u32),
414 		.array_type       = NO_ARRAY,
415 		.tlv_type       = 0,
416 		.offset         = offsetof(struct
417 					   wlfw_rf_board_info_s_v01,
418 					   board_id),
419 	},
420 	{
421 		.data_type      = QMI_EOTI,
422 		.array_type       = NO_ARRAY,
423 		.tlv_type       = QMI_COMMON_TLV_TYPE,
424 	},
425 };
426 
427 static struct qmi_elem_info wlfw_soc_info_s_v01_ei[] = {
428 	{
429 		.data_type      = QMI_UNSIGNED_4_BYTE,
430 		.elem_len       = 1,
431 		.elem_size      = sizeof(u32),
432 		.array_type       = NO_ARRAY,
433 		.tlv_type       = 0,
434 		.offset         = offsetof(struct
435 					   wlfw_soc_info_s_v01,
436 					   soc_id),
437 	},
438 	{
439 		.data_type      = QMI_EOTI,
440 		.array_type       = NO_ARRAY,
441 		.tlv_type       = QMI_COMMON_TLV_TYPE,
442 	},
443 };
444 
445 static struct qmi_elem_info wlfw_fw_version_info_s_v01_ei[] = {
446 	{
447 		.data_type      = QMI_UNSIGNED_4_BYTE,
448 		.elem_len       = 1,
449 		.elem_size      = sizeof(u32),
450 		.array_type       = NO_ARRAY,
451 		.tlv_type       = 0,
452 		.offset         = offsetof(struct
453 					   wlfw_fw_version_info_s_v01,
454 					   fw_version),
455 	},
456 	{
457 		.data_type      = QMI_STRING,
458 		.elem_len       = QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1,
459 		.elem_size      = sizeof(char),
460 		.array_type       = NO_ARRAY,
461 		.tlv_type       = 0,
462 		.offset         = offsetof(struct
463 					   wlfw_fw_version_info_s_v01,
464 					   fw_build_timestamp),
465 	},
466 	{
467 		.data_type      = QMI_EOTI,
468 		.array_type       = NO_ARRAY,
469 		.tlv_type       = QMI_COMMON_TLV_TYPE,
470 	},
471 };
472 
473 static struct qmi_elem_info wlfw_host_ddr_range_s_v01_ei[] = {
474 	{
475 		.data_type      = QMI_UNSIGNED_8_BYTE,
476 		.elem_len       = 1,
477 		.elem_size      = sizeof(u64),
478 		.array_type       = NO_ARRAY,
479 		.tlv_type       = 0,
480 		.offset         = offsetof(struct
481 					   wlfw_host_ddr_range_s_v01,
482 					   start),
483 	},
484 	{
485 		.data_type      = QMI_UNSIGNED_8_BYTE,
486 		.elem_len       = 1,
487 		.elem_size      = sizeof(u64),
488 		.array_type       = NO_ARRAY,
489 		.tlv_type       = 0,
490 		.offset         = offsetof(struct
491 					   wlfw_host_ddr_range_s_v01,
492 					   size),
493 	},
494 	{
495 		.data_type      = QMI_EOTI,
496 		.array_type       = NO_ARRAY,
497 		.tlv_type       = QMI_COMMON_TLV_TYPE,
498 	},
499 };
500 
501 static struct qmi_elem_info wlfw_m3_segment_info_s_v01_ei[] = {
502 	{
503 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
504 		.elem_len       = 1,
505 		.elem_size      = sizeof(enum wlfw_m3_segment_type_v01),
506 		.array_type       = NO_ARRAY,
507 		.tlv_type       = 0,
508 		.offset         = offsetof(struct
509 					   wlfw_m3_segment_info_s_v01,
510 					   type),
511 	},
512 	{
513 		.data_type      = QMI_UNSIGNED_8_BYTE,
514 		.elem_len       = 1,
515 		.elem_size      = sizeof(u64),
516 		.array_type       = NO_ARRAY,
517 		.tlv_type       = 0,
518 		.offset         = offsetof(struct
519 					   wlfw_m3_segment_info_s_v01,
520 					   addr),
521 	},
522 	{
523 		.data_type      = QMI_UNSIGNED_8_BYTE,
524 		.elem_len       = 1,
525 		.elem_size      = sizeof(u64),
526 		.array_type       = NO_ARRAY,
527 		.tlv_type       = 0,
528 		.offset         = offsetof(struct
529 					   wlfw_m3_segment_info_s_v01,
530 					   size),
531 	},
532 	{
533 		.data_type      = QMI_STRING,
534 		.elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
535 		.elem_size      = sizeof(char),
536 		.array_type       = NO_ARRAY,
537 		.tlv_type       = 0,
538 		.offset         = offsetof(struct
539 					   wlfw_m3_segment_info_s_v01,
540 					   name),
541 	},
542 	{
543 		.data_type      = QMI_EOTI,
544 		.array_type       = NO_ARRAY,
545 		.tlv_type       = QMI_COMMON_TLV_TYPE,
546 	},
547 };
548 
549 static struct qmi_elem_info wlfw_dev_mem_info_s_v01_ei[] = {
550 	{
551 		.data_type      = QMI_UNSIGNED_8_BYTE,
552 		.elem_len       = 1,
553 		.elem_size      = sizeof(u64),
554 		.array_type       = NO_ARRAY,
555 		.tlv_type       = 0,
556 		.offset         = offsetof(struct
557 					   wlfw_dev_mem_info_s_v01,
558 					   start),
559 	},
560 	{
561 		.data_type      = QMI_UNSIGNED_8_BYTE,
562 		.elem_len       = 1,
563 		.elem_size      = sizeof(u64),
564 		.array_type       = NO_ARRAY,
565 		.tlv_type       = 0,
566 		.offset         = offsetof(struct
567 					   wlfw_dev_mem_info_s_v01,
568 					   size),
569 	},
570 	{
571 		.data_type      = QMI_EOTI,
572 		.array_type       = NO_ARRAY,
573 		.tlv_type       = QMI_COMMON_TLV_TYPE,
574 	},
575 };
576 
577 static struct qmi_elem_info mlo_chip_info_s_v01_ei[] = {
578 	{
579 		.data_type      = QMI_UNSIGNED_1_BYTE,
580 		.elem_len       = 1,
581 		.elem_size      = sizeof(u8),
582 		.array_type       = NO_ARRAY,
583 		.tlv_type       = 0,
584 		.offset         = offsetof(struct
585 					   mlo_chip_info_s_v01,
586 					   chip_id),
587 	},
588 	{
589 		.data_type      = QMI_UNSIGNED_1_BYTE,
590 		.elem_len       = 1,
591 		.elem_size      = sizeof(u8),
592 		.array_type       = NO_ARRAY,
593 		.tlv_type       = 0,
594 		.offset         = offsetof(struct
595 					   mlo_chip_info_s_v01,
596 					   num_local_links),
597 	},
598 	{
599 		.data_type      = QMI_UNSIGNED_1_BYTE,
600 		.elem_len       = QMI_WLFW_MAX_NUM_MLO_LINKS_PER_CHIP_V01,
601 		.elem_size      = sizeof(u8),
602 		.array_type       = STATIC_ARRAY,
603 		.tlv_type       = 0,
604 		.offset         = offsetof(struct
605 					   mlo_chip_info_s_v01,
606 					   hw_link_id),
607 	},
608 	{
609 		.data_type      = QMI_UNSIGNED_1_BYTE,
610 		.elem_len       = QMI_WLFW_MAX_NUM_MLO_LINKS_PER_CHIP_V01,
611 		.elem_size      = sizeof(u8),
612 		.array_type       = STATIC_ARRAY,
613 		.tlv_type       = 0,
614 		.offset         = offsetof(struct
615 					   mlo_chip_info_s_v01,
616 					   valid_mlo_link_id),
617 	},
618 	{
619 		.data_type      = QMI_EOTI,
620 		.array_type       = NO_ARRAY,
621 		.tlv_type       = QMI_COMMON_TLV_TYPE,
622 	},
623 };
624 
625 static struct qmi_elem_info mlo_chip_v2_info_s_v01_ei[] = {
626 	{
627 		.data_type      = QMI_STRUCT,
628 		.elem_len       = 1,
629 		.elem_size      = sizeof(struct mlo_chip_info_s_v01),
630 		.array_type       = NO_ARRAY,
631 		.tlv_type       = 0,
632 		.offset         = offsetof(struct
633 					   mlo_chip_v2_info_s_v01,
634 					   mlo_chip_info),
635 		.ei_array      = mlo_chip_info_s_v01_ei,
636 	},
637 	{
638 		.data_type      = QMI_UNSIGNED_1_BYTE,
639 		.elem_len       = 1,
640 		.elem_size      = sizeof(u8),
641 		.array_type       = NO_ARRAY,
642 		.tlv_type       = 0,
643 		.offset         = offsetof(struct
644 					   mlo_chip_v2_info_s_v01,
645 					   adj_mlo_num_chips),
646 	},
647 	{
648 		.data_type      = QMI_STRUCT,
649 		.elem_len       = QMI_WLFW_MAX_ADJ_CHIP_V01,
650 		.elem_size      = sizeof(struct mlo_chip_info_s_v01),
651 		.array_type       = STATIC_ARRAY,
652 		.tlv_type       = 0,
653 		.offset         = offsetof(struct
654 					   mlo_chip_v2_info_s_v01,
655 					   adj_mlo_chip_info),
656 		.ei_array      = mlo_chip_info_s_v01_ei,
657 	},
658 	{
659 		.data_type      = QMI_EOTI,
660 		.array_type       = NO_ARRAY,
661 		.tlv_type       = QMI_COMMON_TLV_TYPE,
662 	},
663 };
664 
665 static struct qmi_elem_info wlfw_pmu_param_v01_ei[] = {
666 	{
667 		.data_type      = QMI_UNSIGNED_1_BYTE,
668 		.elem_len       = QMI_WLFW_PMU_PIN_NAME_MAX_LEN_V01,
669 		.elem_size      = sizeof(u8),
670 		.array_type       = STATIC_ARRAY,
671 		.tlv_type       = 0,
672 		.offset         = offsetof(struct
673 					   wlfw_pmu_param_v01,
674 					   pin_name),
675 	},
676 	{
677 		.data_type      = QMI_UNSIGNED_4_BYTE,
678 		.elem_len       = 1,
679 		.elem_size      = sizeof(u32),
680 		.array_type       = NO_ARRAY,
681 		.tlv_type       = 0,
682 		.offset         = offsetof(struct
683 					   wlfw_pmu_param_v01,
684 					   wake_volt_valid),
685 	},
686 	{
687 		.data_type      = QMI_UNSIGNED_4_BYTE,
688 		.elem_len       = 1,
689 		.elem_size      = sizeof(u32),
690 		.array_type       = NO_ARRAY,
691 		.tlv_type       = 0,
692 		.offset         = offsetof(struct
693 					   wlfw_pmu_param_v01,
694 					   wake_volt),
695 	},
696 	{
697 		.data_type      = QMI_UNSIGNED_4_BYTE,
698 		.elem_len       = 1,
699 		.elem_size      = sizeof(u32),
700 		.array_type       = NO_ARRAY,
701 		.tlv_type       = 0,
702 		.offset         = offsetof(struct
703 					   wlfw_pmu_param_v01,
704 					   sleep_volt_valid),
705 	},
706 	{
707 		.data_type      = QMI_UNSIGNED_4_BYTE,
708 		.elem_len       = 1,
709 		.elem_size      = sizeof(u32),
710 		.array_type       = NO_ARRAY,
711 		.tlv_type       = 0,
712 		.offset         = offsetof(struct
713 					   wlfw_pmu_param_v01,
714 					   sleep_volt),
715 	},
716 	{
717 		.data_type      = QMI_EOTI,
718 		.array_type       = NO_ARRAY,
719 		.tlv_type       = QMI_COMMON_TLV_TYPE,
720 	},
721 };
722 
723 static struct qmi_elem_info wlfw_pmu_cfg_v01_ei[] = {
724 	{
725 		.data_type      = QMI_DATA_LEN,
726 		.elem_len       = 1,
727 		.elem_size      = sizeof(u8),
728 		.array_type       = NO_ARRAY,
729 		.tlv_type       = 0,
730 		.offset         = offsetof(struct
731 					   wlfw_pmu_cfg_v01,
732 					   pmu_param_len),
733 	},
734 	{
735 		.data_type      = QMI_STRUCT,
736 		.elem_len       = QMI_WLFW_PMU_PARAMS_MAX_V01,
737 		.elem_size      = sizeof(struct wlfw_pmu_param_v01),
738 		.array_type       = VAR_LEN_ARRAY,
739 		.tlv_type       = 0,
740 		.offset         = offsetof(struct
741 					   wlfw_pmu_cfg_v01,
742 					   pmu_param),
743 		.ei_array      = wlfw_pmu_param_v01_ei,
744 	},
745 	{
746 		.data_type      = QMI_EOTI,
747 		.array_type       = NO_ARRAY,
748 		.tlv_type       = QMI_COMMON_TLV_TYPE,
749 	},
750 };
751 
752 static struct qmi_elem_info wlfw_shadow_reg_v3_cfg_s_v01_ei[] = {
753 	{
754 		.data_type      = QMI_UNSIGNED_4_BYTE,
755 		.elem_len       = 1,
756 		.elem_size      = sizeof(u32),
757 		.array_type       = NO_ARRAY,
758 		.tlv_type       = 0,
759 		.offset         = offsetof(struct
760 					   wlfw_shadow_reg_v3_cfg_s_v01,
761 					   addr),
762 	},
763 	{
764 		.data_type      = QMI_EOTI,
765 		.array_type       = NO_ARRAY,
766 		.tlv_type       = QMI_COMMON_TLV_TYPE,
767 	},
768 };
769 
770 static struct qmi_elem_info wlfw_share_mem_info_s_v01_ei[] = {
771 	{
772 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
773 		.elem_len       = 1,
774 		.elem_size      = sizeof(enum wlfw_share_mem_type_enum_v01),
775 		.array_type       = NO_ARRAY,
776 		.tlv_type       = 0,
777 		.offset         = offsetof(struct
778 					   wlfw_share_mem_info_s_v01,
779 					   type),
780 	},
781 	{
782 		.data_type      = QMI_UNSIGNED_8_BYTE,
783 		.elem_len       = 1,
784 		.elem_size      = sizeof(u64),
785 		.array_type       = NO_ARRAY,
786 		.tlv_type       = 0,
787 		.offset         = offsetof(struct
788 					   wlfw_share_mem_info_s_v01,
789 					   start),
790 	},
791 	{
792 		.data_type      = QMI_UNSIGNED_8_BYTE,
793 		.elem_len       = 1,
794 		.elem_size      = sizeof(u64),
795 		.array_type       = NO_ARRAY,
796 		.tlv_type       = 0,
797 		.offset         = offsetof(struct
798 					   wlfw_share_mem_info_s_v01,
799 					   size),
800 	},
801 	{
802 		.data_type      = QMI_EOTI,
803 		.array_type       = NO_ARRAY,
804 		.tlv_type       = QMI_COMMON_TLV_TYPE,
805 	},
806 };
807 
808 static struct qmi_elem_info wlfw_host_pcie_link_info_s_v01_ei[] = {
809 	{
810 		.data_type      = QMI_UNSIGNED_4_BYTE,
811 		.elem_len       = 1,
812 		.elem_size      = sizeof(u32),
813 		.array_type       = NO_ARRAY,
814 		.tlv_type       = 0,
815 		.offset         = offsetof(struct
816 					   wlfw_host_pcie_link_info_s_v01,
817 					   pci_link_speed),
818 	},
819 	{
820 		.data_type      = QMI_UNSIGNED_4_BYTE,
821 		.elem_len       = 1,
822 		.elem_size      = sizeof(u32),
823 		.array_type       = NO_ARRAY,
824 		.tlv_type       = 0,
825 		.offset         = offsetof(struct
826 					   wlfw_host_pcie_link_info_s_v01,
827 					   pci_link_width),
828 	},
829 	{
830 		.data_type      = QMI_EOTI,
831 		.array_type       = NO_ARRAY,
832 		.tlv_type       = QMI_COMMON_TLV_TYPE,
833 	},
834 };
835 
836 static struct qmi_elem_info wlchip_serial_id_v01_ei[] = {
837 	{
838 		.data_type      = QMI_UNSIGNED_4_BYTE,
839 		.elem_len       = 1,
840 		.elem_size      = sizeof(u32),
841 		.array_type       = NO_ARRAY,
842 		.tlv_type       = 0,
843 		.offset         = offsetof(struct
844 					   wlchip_serial_id_v01,
845 					   serial_id_msb),
846 	},
847 	{
848 		.data_type      = QMI_UNSIGNED_4_BYTE,
849 		.elem_len       = 1,
850 		.elem_size      = sizeof(u32),
851 		.array_type       = NO_ARRAY,
852 		.tlv_type       = 0,
853 		.offset         = offsetof(struct
854 					   wlchip_serial_id_v01,
855 					   serial_id_lsb),
856 	},
857 	{
858 		.data_type      = QMI_EOTI,
859 		.array_type       = NO_ARRAY,
860 		.tlv_type       = QMI_COMMON_TLV_TYPE,
861 	},
862 };
863 
864 struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = {
865 	{
866 		.data_type      = QMI_OPT_FLAG,
867 		.elem_len       = 1,
868 		.elem_size      = sizeof(u8),
869 		.array_type       = NO_ARRAY,
870 		.tlv_type       = 0x10,
871 		.offset         = offsetof(struct
872 					   wlfw_ind_register_req_msg_v01,
873 					   fw_ready_enable_valid),
874 	},
875 	{
876 		.data_type      = QMI_UNSIGNED_1_BYTE,
877 		.elem_len       = 1,
878 		.elem_size      = sizeof(u8),
879 		.array_type       = NO_ARRAY,
880 		.tlv_type       = 0x10,
881 		.offset         = offsetof(struct
882 					   wlfw_ind_register_req_msg_v01,
883 					   fw_ready_enable),
884 	},
885 	{
886 		.data_type      = QMI_OPT_FLAG,
887 		.elem_len       = 1,
888 		.elem_size      = sizeof(u8),
889 		.array_type       = NO_ARRAY,
890 		.tlv_type       = 0x11,
891 		.offset         = offsetof(struct
892 					   wlfw_ind_register_req_msg_v01,
893 					   initiate_cal_download_enable_valid),
894 	},
895 	{
896 		.data_type      = QMI_UNSIGNED_1_BYTE,
897 		.elem_len       = 1,
898 		.elem_size      = sizeof(u8),
899 		.array_type       = NO_ARRAY,
900 		.tlv_type       = 0x11,
901 		.offset         = offsetof(struct
902 					   wlfw_ind_register_req_msg_v01,
903 					   initiate_cal_download_enable),
904 	},
905 	{
906 		.data_type      = QMI_OPT_FLAG,
907 		.elem_len       = 1,
908 		.elem_size      = sizeof(u8),
909 		.array_type       = NO_ARRAY,
910 		.tlv_type       = 0x12,
911 		.offset         = offsetof(struct
912 					   wlfw_ind_register_req_msg_v01,
913 					   initiate_cal_update_enable_valid),
914 	},
915 	{
916 		.data_type      = QMI_UNSIGNED_1_BYTE,
917 		.elem_len       = 1,
918 		.elem_size      = sizeof(u8),
919 		.array_type       = NO_ARRAY,
920 		.tlv_type       = 0x12,
921 		.offset         = offsetof(struct
922 					   wlfw_ind_register_req_msg_v01,
923 					   initiate_cal_update_enable),
924 	},
925 	{
926 		.data_type      = QMI_OPT_FLAG,
927 		.elem_len       = 1,
928 		.elem_size      = sizeof(u8),
929 		.array_type       = NO_ARRAY,
930 		.tlv_type       = 0x13,
931 		.offset         = offsetof(struct
932 					   wlfw_ind_register_req_msg_v01,
933 					   msa_ready_enable_valid),
934 	},
935 	{
936 		.data_type      = QMI_UNSIGNED_1_BYTE,
937 		.elem_len       = 1,
938 		.elem_size      = sizeof(u8),
939 		.array_type       = NO_ARRAY,
940 		.tlv_type       = 0x13,
941 		.offset         = offsetof(struct
942 					   wlfw_ind_register_req_msg_v01,
943 					   msa_ready_enable),
944 	},
945 	{
946 		.data_type      = QMI_OPT_FLAG,
947 		.elem_len       = 1,
948 		.elem_size      = sizeof(u8),
949 		.array_type       = NO_ARRAY,
950 		.tlv_type       = 0x14,
951 		.offset         = offsetof(struct
952 					   wlfw_ind_register_req_msg_v01,
953 					   pin_connect_result_enable_valid),
954 	},
955 	{
956 		.data_type      = QMI_UNSIGNED_1_BYTE,
957 		.elem_len       = 1,
958 		.elem_size      = sizeof(u8),
959 		.array_type       = NO_ARRAY,
960 		.tlv_type       = 0x14,
961 		.offset         = offsetof(struct
962 					   wlfw_ind_register_req_msg_v01,
963 					   pin_connect_result_enable),
964 	},
965 	{
966 		.data_type      = QMI_OPT_FLAG,
967 		.elem_len       = 1,
968 		.elem_size      = sizeof(u8),
969 		.array_type       = NO_ARRAY,
970 		.tlv_type       = 0x15,
971 		.offset         = offsetof(struct
972 					   wlfw_ind_register_req_msg_v01,
973 					   client_id_valid),
974 	},
975 	{
976 		.data_type      = QMI_UNSIGNED_4_BYTE,
977 		.elem_len       = 1,
978 		.elem_size      = sizeof(u32),
979 		.array_type       = NO_ARRAY,
980 		.tlv_type       = 0x15,
981 		.offset         = offsetof(struct
982 					   wlfw_ind_register_req_msg_v01,
983 					   client_id),
984 	},
985 	{
986 		.data_type      = QMI_OPT_FLAG,
987 		.elem_len       = 1,
988 		.elem_size      = sizeof(u8),
989 		.array_type       = NO_ARRAY,
990 		.tlv_type       = 0x16,
991 		.offset         = offsetof(struct
992 					   wlfw_ind_register_req_msg_v01,
993 					   request_mem_enable_valid),
994 	},
995 	{
996 		.data_type      = QMI_UNSIGNED_1_BYTE,
997 		.elem_len       = 1,
998 		.elem_size      = sizeof(u8),
999 		.array_type       = NO_ARRAY,
1000 		.tlv_type       = 0x16,
1001 		.offset         = offsetof(struct
1002 					   wlfw_ind_register_req_msg_v01,
1003 					   request_mem_enable),
1004 	},
1005 	{
1006 		.data_type      = QMI_OPT_FLAG,
1007 		.elem_len       = 1,
1008 		.elem_size      = sizeof(u8),
1009 		.array_type       = NO_ARRAY,
1010 		.tlv_type       = 0x17,
1011 		.offset         = offsetof(struct
1012 					   wlfw_ind_register_req_msg_v01,
1013 					   fw_mem_ready_enable_valid),
1014 	},
1015 	{
1016 		.data_type      = QMI_UNSIGNED_1_BYTE,
1017 		.elem_len       = 1,
1018 		.elem_size      = sizeof(u8),
1019 		.array_type       = NO_ARRAY,
1020 		.tlv_type       = 0x17,
1021 		.offset         = offsetof(struct
1022 					   wlfw_ind_register_req_msg_v01,
1023 					   fw_mem_ready_enable),
1024 	},
1025 	{
1026 		.data_type      = QMI_OPT_FLAG,
1027 		.elem_len       = 1,
1028 		.elem_size      = sizeof(u8),
1029 		.array_type       = NO_ARRAY,
1030 		.tlv_type       = 0x18,
1031 		.offset         = offsetof(struct
1032 					   wlfw_ind_register_req_msg_v01,
1033 					   fw_init_done_enable_valid),
1034 	},
1035 	{
1036 		.data_type      = QMI_UNSIGNED_1_BYTE,
1037 		.elem_len       = 1,
1038 		.elem_size      = sizeof(u8),
1039 		.array_type       = NO_ARRAY,
1040 		.tlv_type       = 0x18,
1041 		.offset         = offsetof(struct
1042 					   wlfw_ind_register_req_msg_v01,
1043 					   fw_init_done_enable),
1044 	},
1045 	{
1046 		.data_type      = QMI_OPT_FLAG,
1047 		.elem_len       = 1,
1048 		.elem_size      = sizeof(u8),
1049 		.array_type       = NO_ARRAY,
1050 		.tlv_type       = 0x19,
1051 		.offset         = offsetof(struct
1052 					   wlfw_ind_register_req_msg_v01,
1053 					   rejuvenate_enable_valid),
1054 	},
1055 	{
1056 		.data_type      = QMI_UNSIGNED_4_BYTE,
1057 		.elem_len       = 1,
1058 		.elem_size      = sizeof(u32),
1059 		.array_type       = NO_ARRAY,
1060 		.tlv_type       = 0x19,
1061 		.offset         = offsetof(struct
1062 					   wlfw_ind_register_req_msg_v01,
1063 					   rejuvenate_enable),
1064 	},
1065 	{
1066 		.data_type      = QMI_OPT_FLAG,
1067 		.elem_len       = 1,
1068 		.elem_size      = sizeof(u8),
1069 		.array_type       = NO_ARRAY,
1070 		.tlv_type       = 0x1A,
1071 		.offset         = offsetof(struct
1072 					   wlfw_ind_register_req_msg_v01,
1073 					   xo_cal_enable_valid),
1074 	},
1075 	{
1076 		.data_type      = QMI_UNSIGNED_1_BYTE,
1077 		.elem_len       = 1,
1078 		.elem_size      = sizeof(u8),
1079 		.array_type       = NO_ARRAY,
1080 		.tlv_type       = 0x1A,
1081 		.offset         = offsetof(struct
1082 					   wlfw_ind_register_req_msg_v01,
1083 					   xo_cal_enable),
1084 	},
1085 	{
1086 		.data_type      = QMI_OPT_FLAG,
1087 		.elem_len       = 1,
1088 		.elem_size      = sizeof(u8),
1089 		.array_type       = NO_ARRAY,
1090 		.tlv_type       = 0x1B,
1091 		.offset         = offsetof(struct
1092 					   wlfw_ind_register_req_msg_v01,
1093 					   cal_done_enable_valid),
1094 	},
1095 	{
1096 		.data_type      = QMI_UNSIGNED_1_BYTE,
1097 		.elem_len       = 1,
1098 		.elem_size      = sizeof(u8),
1099 		.array_type       = NO_ARRAY,
1100 		.tlv_type       = 0x1B,
1101 		.offset         = offsetof(struct
1102 					   wlfw_ind_register_req_msg_v01,
1103 					   cal_done_enable),
1104 	},
1105 	{
1106 		.data_type      = QMI_OPT_FLAG,
1107 		.elem_len       = 1,
1108 		.elem_size      = sizeof(u8),
1109 		.array_type       = NO_ARRAY,
1110 		.tlv_type       = 0x1C,
1111 		.offset         = offsetof(struct
1112 					   wlfw_ind_register_req_msg_v01,
1113 					   qdss_trace_req_mem_enable_valid),
1114 	},
1115 	{
1116 		.data_type      = QMI_UNSIGNED_1_BYTE,
1117 		.elem_len       = 1,
1118 		.elem_size      = sizeof(u8),
1119 		.array_type       = NO_ARRAY,
1120 		.tlv_type       = 0x1C,
1121 		.offset         = offsetof(struct
1122 					   wlfw_ind_register_req_msg_v01,
1123 					   qdss_trace_req_mem_enable),
1124 	},
1125 	{
1126 		.data_type      = QMI_OPT_FLAG,
1127 		.elem_len       = 1,
1128 		.elem_size      = sizeof(u8),
1129 		.array_type       = NO_ARRAY,
1130 		.tlv_type       = 0x1D,
1131 		.offset         = offsetof(struct
1132 					   wlfw_ind_register_req_msg_v01,
1133 					   qdss_trace_save_enable_valid),
1134 	},
1135 	{
1136 		.data_type      = QMI_UNSIGNED_1_BYTE,
1137 		.elem_len       = 1,
1138 		.elem_size      = sizeof(u8),
1139 		.array_type       = NO_ARRAY,
1140 		.tlv_type       = 0x1D,
1141 		.offset         = offsetof(struct
1142 					   wlfw_ind_register_req_msg_v01,
1143 					   qdss_trace_save_enable),
1144 	},
1145 	{
1146 		.data_type      = QMI_OPT_FLAG,
1147 		.elem_len       = 1,
1148 		.elem_size      = sizeof(u8),
1149 		.array_type       = NO_ARRAY,
1150 		.tlv_type       = 0x1E,
1151 		.offset         = offsetof(struct
1152 					   wlfw_ind_register_req_msg_v01,
1153 					   qdss_trace_free_enable_valid),
1154 	},
1155 	{
1156 		.data_type      = QMI_UNSIGNED_1_BYTE,
1157 		.elem_len       = 1,
1158 		.elem_size      = sizeof(u8),
1159 		.array_type       = NO_ARRAY,
1160 		.tlv_type       = 0x1E,
1161 		.offset         = offsetof(struct
1162 					   wlfw_ind_register_req_msg_v01,
1163 					   qdss_trace_free_enable),
1164 	},
1165 	{
1166 		.data_type      = QMI_OPT_FLAG,
1167 		.elem_len       = 1,
1168 		.elem_size      = sizeof(u8),
1169 		.array_type       = NO_ARRAY,
1170 		.tlv_type       = 0x1F,
1171 		.offset         = offsetof(struct
1172 					   wlfw_ind_register_req_msg_v01,
1173 					   respond_get_info_enable_valid),
1174 	},
1175 	{
1176 		.data_type      = QMI_UNSIGNED_1_BYTE,
1177 		.elem_len       = 1,
1178 		.elem_size      = sizeof(u8),
1179 		.array_type       = NO_ARRAY,
1180 		.tlv_type       = 0x1F,
1181 		.offset         = offsetof(struct
1182 					   wlfw_ind_register_req_msg_v01,
1183 					   respond_get_info_enable),
1184 	},
1185 	{
1186 		.data_type      = QMI_OPT_FLAG,
1187 		.elem_len       = 1,
1188 		.elem_size      = sizeof(u8),
1189 		.array_type       = NO_ARRAY,
1190 		.tlv_type       = 0x20,
1191 		.offset         = offsetof(struct
1192 					   wlfw_ind_register_req_msg_v01,
1193 					   m3_dump_upload_req_enable_valid),
1194 	},
1195 	{
1196 		.data_type      = QMI_UNSIGNED_1_BYTE,
1197 		.elem_len       = 1,
1198 		.elem_size      = sizeof(u8),
1199 		.array_type       = NO_ARRAY,
1200 		.tlv_type       = 0x20,
1201 		.offset         = offsetof(struct
1202 					   wlfw_ind_register_req_msg_v01,
1203 					   m3_dump_upload_req_enable),
1204 	},
1205 	{
1206 		.data_type      = QMI_OPT_FLAG,
1207 		.elem_len       = 1,
1208 		.elem_size      = sizeof(u8),
1209 		.array_type       = NO_ARRAY,
1210 		.tlv_type       = 0x21,
1211 		.offset         = offsetof(struct
1212 					   wlfw_ind_register_req_msg_v01,
1213 					   wfc_call_twt_config_enable_valid),
1214 	},
1215 	{
1216 		.data_type      = QMI_UNSIGNED_1_BYTE,
1217 		.elem_len       = 1,
1218 		.elem_size      = sizeof(u8),
1219 		.array_type       = NO_ARRAY,
1220 		.tlv_type       = 0x21,
1221 		.offset         = offsetof(struct
1222 					   wlfw_ind_register_req_msg_v01,
1223 					   wfc_call_twt_config_enable),
1224 	},
1225 	{
1226 		.data_type      = QMI_OPT_FLAG,
1227 		.elem_len       = 1,
1228 		.elem_size      = sizeof(u8),
1229 		.array_type       = NO_ARRAY,
1230 		.tlv_type       = 0x22,
1231 		.offset         = offsetof(struct
1232 					   wlfw_ind_register_req_msg_v01,
1233 					   qdss_mem_ready_enable_valid),
1234 	},
1235 	{
1236 		.data_type      = QMI_UNSIGNED_1_BYTE,
1237 		.elem_len       = 1,
1238 		.elem_size      = sizeof(u8),
1239 		.array_type       = NO_ARRAY,
1240 		.tlv_type       = 0x22,
1241 		.offset         = offsetof(struct
1242 					   wlfw_ind_register_req_msg_v01,
1243 					   qdss_mem_ready_enable),
1244 	},
1245 	{
1246 		.data_type      = QMI_OPT_FLAG,
1247 		.elem_len       = 1,
1248 		.elem_size      = sizeof(u8),
1249 		.array_type       = NO_ARRAY,
1250 		.tlv_type       = 0x23,
1251 		.offset         = offsetof(struct
1252 					   wlfw_ind_register_req_msg_v01,
1253 					   m3_dump_upload_segments_req_enable_valid),
1254 	},
1255 	{
1256 		.data_type      = QMI_UNSIGNED_1_BYTE,
1257 		.elem_len       = 1,
1258 		.elem_size      = sizeof(u8),
1259 		.array_type       = NO_ARRAY,
1260 		.tlv_type       = 0x23,
1261 		.offset         = offsetof(struct
1262 					   wlfw_ind_register_req_msg_v01,
1263 					   m3_dump_upload_segments_req_enable),
1264 	},
1265 	{
1266 		.data_type      = QMI_OPT_FLAG,
1267 		.elem_len       = 1,
1268 		.elem_size      = sizeof(u8),
1269 		.array_type       = NO_ARRAY,
1270 		.tlv_type       = 0x24,
1271 		.offset         = offsetof(struct
1272 					   wlfw_ind_register_req_msg_v01,
1273 					   fw_ssr_enable_valid),
1274 	},
1275 	{
1276 		.data_type      = QMI_UNSIGNED_1_BYTE,
1277 		.elem_len       = 1,
1278 		.elem_size      = sizeof(u8),
1279 		.array_type       = NO_ARRAY,
1280 		.tlv_type       = 0x24,
1281 		.offset         = offsetof(struct
1282 					   wlfw_ind_register_req_msg_v01,
1283 					   fw_ssr_enable),
1284 	},
1285 	{
1286 		.data_type      = QMI_OPT_FLAG,
1287 		.elem_len       = 1,
1288 		.elem_size      = sizeof(u8),
1289 		.array_type       = NO_ARRAY,
1290 		.tlv_type       = 0x25,
1291 		.offset         = offsetof(struct
1292 					   wlfw_ind_register_req_msg_v01,
1293 					   async_data_enable_valid),
1294 	},
1295 	{
1296 		.data_type      = QMI_UNSIGNED_1_BYTE,
1297 		.elem_len       = 1,
1298 		.elem_size      = sizeof(u8),
1299 		.array_type       = NO_ARRAY,
1300 		.tlv_type       = 0x25,
1301 		.offset         = offsetof(struct
1302 					   wlfw_ind_register_req_msg_v01,
1303 					   async_data_enable),
1304 	},
1305 	{
1306 		.data_type      = QMI_EOTI,
1307 		.array_type       = NO_ARRAY,
1308 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1309 	},
1310 };
1311 EXPORT_SYMBOL(wlfw_ind_register_req_msg_v01_ei);
1312 
1313 struct qmi_elem_info wlfw_ind_register_resp_msg_v01_ei[] = {
1314 	{
1315 		.data_type      = QMI_STRUCT,
1316 		.elem_len       = 1,
1317 		.elem_size      = sizeof(struct qmi_response_type_v01),
1318 		.array_type       = NO_ARRAY,
1319 		.tlv_type       = 0x02,
1320 		.offset         = offsetof(struct
1321 					   wlfw_ind_register_resp_msg_v01,
1322 					   resp),
1323 		.ei_array      = qmi_response_type_v01_ei,
1324 	},
1325 	{
1326 		.data_type      = QMI_OPT_FLAG,
1327 		.elem_len       = 1,
1328 		.elem_size      = sizeof(u8),
1329 		.array_type       = NO_ARRAY,
1330 		.tlv_type       = 0x10,
1331 		.offset         = offsetof(struct
1332 					   wlfw_ind_register_resp_msg_v01,
1333 					   fw_status_valid),
1334 	},
1335 	{
1336 		.data_type      = QMI_UNSIGNED_8_BYTE,
1337 		.elem_len       = 1,
1338 		.elem_size      = sizeof(u64),
1339 		.array_type       = NO_ARRAY,
1340 		.tlv_type       = 0x10,
1341 		.offset         = offsetof(struct
1342 					   wlfw_ind_register_resp_msg_v01,
1343 					   fw_status),
1344 	},
1345 	{
1346 		.data_type      = QMI_EOTI,
1347 		.array_type       = NO_ARRAY,
1348 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1349 	},
1350 };
1351 EXPORT_SYMBOL(wlfw_ind_register_resp_msg_v01_ei);
1352 
1353 struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = {
1354 	{
1355 		.data_type      = QMI_EOTI,
1356 		.array_type       = NO_ARRAY,
1357 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1358 	},
1359 };
1360 EXPORT_SYMBOL(wlfw_fw_ready_ind_msg_v01_ei);
1361 
1362 struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = {
1363 	{
1364 		.data_type      = QMI_OPT_FLAG,
1365 		.elem_len       = 1,
1366 		.elem_size      = sizeof(u8),
1367 		.array_type       = NO_ARRAY,
1368 		.tlv_type       = 0x10,
1369 		.offset         = offsetof(struct
1370 					   wlfw_msa_ready_ind_msg_v01,
1371 					   hang_data_addr_offset_valid),
1372 	},
1373 	{
1374 		.data_type      = QMI_UNSIGNED_4_BYTE,
1375 		.elem_len       = 1,
1376 		.elem_size      = sizeof(u32),
1377 		.array_type       = NO_ARRAY,
1378 		.tlv_type       = 0x10,
1379 		.offset         = offsetof(struct
1380 					   wlfw_msa_ready_ind_msg_v01,
1381 					   hang_data_addr_offset),
1382 	},
1383 	{
1384 		.data_type      = QMI_OPT_FLAG,
1385 		.elem_len       = 1,
1386 		.elem_size      = sizeof(u8),
1387 		.array_type       = NO_ARRAY,
1388 		.tlv_type       = 0x11,
1389 		.offset         = offsetof(struct
1390 					   wlfw_msa_ready_ind_msg_v01,
1391 					   hang_data_length_valid),
1392 	},
1393 	{
1394 		.data_type      = QMI_UNSIGNED_2_BYTE,
1395 		.elem_len       = 1,
1396 		.elem_size      = sizeof(u16),
1397 		.array_type       = NO_ARRAY,
1398 		.tlv_type       = 0x11,
1399 		.offset         = offsetof(struct
1400 					   wlfw_msa_ready_ind_msg_v01,
1401 					   hang_data_length),
1402 	},
1403 	{
1404 		.data_type      = QMI_EOTI,
1405 		.array_type       = NO_ARRAY,
1406 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1407 	},
1408 };
1409 EXPORT_SYMBOL(wlfw_msa_ready_ind_msg_v01_ei);
1410 
1411 struct qmi_elem_info wlfw_pin_connect_result_ind_msg_v01_ei[] = {
1412 	{
1413 		.data_type      = QMI_OPT_FLAG,
1414 		.elem_len       = 1,
1415 		.elem_size      = sizeof(u8),
1416 		.array_type       = NO_ARRAY,
1417 		.tlv_type       = 0x10,
1418 		.offset         = offsetof(struct
1419 					   wlfw_pin_connect_result_ind_msg_v01,
1420 					   pwr_pin_result_valid),
1421 	},
1422 	{
1423 		.data_type      = QMI_UNSIGNED_4_BYTE,
1424 		.elem_len       = 1,
1425 		.elem_size      = sizeof(u32),
1426 		.array_type       = NO_ARRAY,
1427 		.tlv_type       = 0x10,
1428 		.offset         = offsetof(struct
1429 					   wlfw_pin_connect_result_ind_msg_v01,
1430 					   pwr_pin_result),
1431 	},
1432 	{
1433 		.data_type      = QMI_OPT_FLAG,
1434 		.elem_len       = 1,
1435 		.elem_size      = sizeof(u8),
1436 		.array_type       = NO_ARRAY,
1437 		.tlv_type       = 0x11,
1438 		.offset         = offsetof(struct
1439 					   wlfw_pin_connect_result_ind_msg_v01,
1440 					   phy_io_pin_result_valid),
1441 	},
1442 	{
1443 		.data_type      = QMI_UNSIGNED_4_BYTE,
1444 		.elem_len       = 1,
1445 		.elem_size      = sizeof(u32),
1446 		.array_type       = NO_ARRAY,
1447 		.tlv_type       = 0x11,
1448 		.offset         = offsetof(struct
1449 					   wlfw_pin_connect_result_ind_msg_v01,
1450 					   phy_io_pin_result),
1451 	},
1452 	{
1453 		.data_type      = QMI_OPT_FLAG,
1454 		.elem_len       = 1,
1455 		.elem_size      = sizeof(u8),
1456 		.array_type       = NO_ARRAY,
1457 		.tlv_type       = 0x12,
1458 		.offset         = offsetof(struct
1459 					   wlfw_pin_connect_result_ind_msg_v01,
1460 					   rf_pin_result_valid),
1461 	},
1462 	{
1463 		.data_type      = QMI_UNSIGNED_4_BYTE,
1464 		.elem_len       = 1,
1465 		.elem_size      = sizeof(u32),
1466 		.array_type       = NO_ARRAY,
1467 		.tlv_type       = 0x12,
1468 		.offset         = offsetof(struct
1469 					   wlfw_pin_connect_result_ind_msg_v01,
1470 					   rf_pin_result),
1471 	},
1472 	{
1473 		.data_type      = QMI_EOTI,
1474 		.array_type       = NO_ARRAY,
1475 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1476 	},
1477 };
1478 EXPORT_SYMBOL(wlfw_pin_connect_result_ind_msg_v01_ei);
1479 
1480 struct qmi_elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
1481 	{
1482 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
1483 		.elem_len       = 1,
1484 		.elem_size      = sizeof(enum wlfw_driver_mode_enum_v01),
1485 		.array_type       = NO_ARRAY,
1486 		.tlv_type       = 0x01,
1487 		.offset         = offsetof(struct
1488 					   wlfw_wlan_mode_req_msg_v01,
1489 					   mode),
1490 	},
1491 	{
1492 		.data_type      = QMI_OPT_FLAG,
1493 		.elem_len       = 1,
1494 		.elem_size      = sizeof(u8),
1495 		.array_type       = NO_ARRAY,
1496 		.tlv_type       = 0x10,
1497 		.offset         = offsetof(struct
1498 					   wlfw_wlan_mode_req_msg_v01,
1499 					   hw_debug_valid),
1500 	},
1501 	{
1502 		.data_type      = QMI_UNSIGNED_1_BYTE,
1503 		.elem_len       = 1,
1504 		.elem_size      = sizeof(u8),
1505 		.array_type       = NO_ARRAY,
1506 		.tlv_type       = 0x10,
1507 		.offset         = offsetof(struct
1508 					   wlfw_wlan_mode_req_msg_v01,
1509 					   hw_debug),
1510 	},
1511 	{
1512 		.data_type      = QMI_OPT_FLAG,
1513 		.elem_len       = 1,
1514 		.elem_size      = sizeof(u8),
1515 		.array_type       = NO_ARRAY,
1516 		.tlv_type       = 0x11,
1517 		.offset         = offsetof(struct
1518 					   wlfw_wlan_mode_req_msg_v01,
1519 					   xo_cal_data_valid),
1520 	},
1521 	{
1522 		.data_type      = QMI_UNSIGNED_1_BYTE,
1523 		.elem_len       = 1,
1524 		.elem_size      = sizeof(u8),
1525 		.array_type       = NO_ARRAY,
1526 		.tlv_type       = 0x11,
1527 		.offset         = offsetof(struct
1528 					   wlfw_wlan_mode_req_msg_v01,
1529 					   xo_cal_data),
1530 	},
1531 	{
1532 		.data_type      = QMI_OPT_FLAG,
1533 		.elem_len       = 1,
1534 		.elem_size      = sizeof(u8),
1535 		.array_type       = NO_ARRAY,
1536 		.tlv_type       = 0x12,
1537 		.offset         = offsetof(struct
1538 					   wlfw_wlan_mode_req_msg_v01,
1539 					   wlan_en_delay_valid),
1540 	},
1541 	{
1542 		.data_type      = QMI_UNSIGNED_4_BYTE,
1543 		.elem_len       = 1,
1544 		.elem_size      = sizeof(u32),
1545 		.array_type       = NO_ARRAY,
1546 		.tlv_type       = 0x12,
1547 		.offset         = offsetof(struct
1548 					   wlfw_wlan_mode_req_msg_v01,
1549 					   wlan_en_delay),
1550 	},
1551 	{
1552 		.data_type      = QMI_EOTI,
1553 		.array_type       = NO_ARRAY,
1554 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1555 	},
1556 };
1557 EXPORT_SYMBOL(wlfw_wlan_mode_req_msg_v01_ei);
1558 
1559 struct qmi_elem_info wlfw_wlan_mode_resp_msg_v01_ei[] = {
1560 	{
1561 		.data_type      = QMI_STRUCT,
1562 		.elem_len       = 1,
1563 		.elem_size      = sizeof(struct qmi_response_type_v01),
1564 		.array_type       = NO_ARRAY,
1565 		.tlv_type       = 0x02,
1566 		.offset         = offsetof(struct
1567 					   wlfw_wlan_mode_resp_msg_v01,
1568 					   resp),
1569 		.ei_array      = qmi_response_type_v01_ei,
1570 	},
1571 	{
1572 		.data_type      = QMI_EOTI,
1573 		.array_type       = NO_ARRAY,
1574 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1575 	},
1576 };
1577 EXPORT_SYMBOL(wlfw_wlan_mode_resp_msg_v01_ei);
1578 
1579 struct qmi_elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
1580 	{
1581 		.data_type      = QMI_OPT_FLAG,
1582 		.elem_len       = 1,
1583 		.elem_size      = sizeof(u8),
1584 		.array_type       = NO_ARRAY,
1585 		.tlv_type       = 0x10,
1586 		.offset         = offsetof(struct
1587 					   wlfw_wlan_cfg_req_msg_v01,
1588 					   host_version_valid),
1589 	},
1590 	{
1591 		.data_type      = QMI_STRING,
1592 		.elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
1593 		.elem_size      = sizeof(char),
1594 		.array_type       = NO_ARRAY,
1595 		.tlv_type       = 0x10,
1596 		.offset         = offsetof(struct
1597 					   wlfw_wlan_cfg_req_msg_v01,
1598 					   host_version),
1599 	},
1600 	{
1601 		.data_type      = QMI_OPT_FLAG,
1602 		.elem_len       = 1,
1603 		.elem_size      = sizeof(u8),
1604 		.array_type       = NO_ARRAY,
1605 		.tlv_type       = 0x11,
1606 		.offset         = offsetof(struct
1607 					   wlfw_wlan_cfg_req_msg_v01,
1608 					   tgt_cfg_valid),
1609 	},
1610 	{
1611 		.data_type      = QMI_DATA_LEN,
1612 		.elem_len       = 1,
1613 		.elem_size      = sizeof(u8),
1614 		.array_type       = NO_ARRAY,
1615 		.tlv_type       = 0x11,
1616 		.offset         = offsetof(struct
1617 					   wlfw_wlan_cfg_req_msg_v01,
1618 					   tgt_cfg_len),
1619 	},
1620 	{
1621 		.data_type      = QMI_STRUCT,
1622 		.elem_len       = QMI_WLFW_MAX_NUM_CE_V01,
1623 		.elem_size      = sizeof(struct wlfw_ce_tgt_pipe_cfg_s_v01),
1624 		.array_type       = VAR_LEN_ARRAY,
1625 		.tlv_type       = 0x11,
1626 		.offset         = offsetof(struct
1627 					   wlfw_wlan_cfg_req_msg_v01,
1628 					   tgt_cfg),
1629 		.ei_array      = wlfw_ce_tgt_pipe_cfg_s_v01_ei,
1630 	},
1631 	{
1632 		.data_type      = QMI_OPT_FLAG,
1633 		.elem_len       = 1,
1634 		.elem_size      = sizeof(u8),
1635 		.array_type       = NO_ARRAY,
1636 		.tlv_type       = 0x12,
1637 		.offset         = offsetof(struct
1638 					   wlfw_wlan_cfg_req_msg_v01,
1639 					   svc_cfg_valid),
1640 	},
1641 	{
1642 		.data_type      = QMI_DATA_LEN,
1643 		.elem_len       = 1,
1644 		.elem_size      = sizeof(u8),
1645 		.array_type       = NO_ARRAY,
1646 		.tlv_type       = 0x12,
1647 		.offset         = offsetof(struct
1648 					   wlfw_wlan_cfg_req_msg_v01,
1649 					   svc_cfg_len),
1650 	},
1651 	{
1652 		.data_type      = QMI_STRUCT,
1653 		.elem_len       = QMI_WLFW_MAX_NUM_SVC_V01,
1654 		.elem_size      = sizeof(struct wlfw_ce_svc_pipe_cfg_s_v01),
1655 		.array_type       = VAR_LEN_ARRAY,
1656 		.tlv_type       = 0x12,
1657 		.offset         = offsetof(struct
1658 					   wlfw_wlan_cfg_req_msg_v01,
1659 					   svc_cfg),
1660 		.ei_array      = wlfw_ce_svc_pipe_cfg_s_v01_ei,
1661 	},
1662 	{
1663 		.data_type      = QMI_OPT_FLAG,
1664 		.elem_len       = 1,
1665 		.elem_size      = sizeof(u8),
1666 		.array_type       = NO_ARRAY,
1667 		.tlv_type       = 0x13,
1668 		.offset         = offsetof(struct
1669 					   wlfw_wlan_cfg_req_msg_v01,
1670 					   shadow_reg_valid),
1671 	},
1672 	{
1673 		.data_type      = QMI_DATA_LEN,
1674 		.elem_len       = 1,
1675 		.elem_size      = sizeof(u8),
1676 		.array_type       = NO_ARRAY,
1677 		.tlv_type       = 0x13,
1678 		.offset         = offsetof(struct
1679 					   wlfw_wlan_cfg_req_msg_v01,
1680 					   shadow_reg_len),
1681 	},
1682 	{
1683 		.data_type      = QMI_STRUCT,
1684 		.elem_len       = QMI_WLFW_MAX_NUM_SHADOW_REG_V01,
1685 		.elem_size      = sizeof(struct wlfw_shadow_reg_cfg_s_v01),
1686 		.array_type       = VAR_LEN_ARRAY,
1687 		.tlv_type       = 0x13,
1688 		.offset         = offsetof(struct
1689 					   wlfw_wlan_cfg_req_msg_v01,
1690 					   shadow_reg),
1691 		.ei_array      = wlfw_shadow_reg_cfg_s_v01_ei,
1692 	},
1693 	{
1694 		.data_type      = QMI_OPT_FLAG,
1695 		.elem_len       = 1,
1696 		.elem_size      = sizeof(u8),
1697 		.array_type       = NO_ARRAY,
1698 		.tlv_type       = 0x14,
1699 		.offset         = offsetof(struct
1700 					   wlfw_wlan_cfg_req_msg_v01,
1701 					   shadow_reg_v2_valid),
1702 	},
1703 	{
1704 		.data_type      = QMI_DATA_LEN,
1705 		.elem_len       = 1,
1706 		.elem_size      = sizeof(u8),
1707 		.array_type       = NO_ARRAY,
1708 		.tlv_type       = 0x14,
1709 		.offset         = offsetof(struct
1710 					   wlfw_wlan_cfg_req_msg_v01,
1711 					   shadow_reg_v2_len),
1712 	},
1713 	{
1714 		.data_type      = QMI_STRUCT,
1715 		.elem_len       = QMI_WLFW_MAX_NUM_SHADOW_REG_V2_V01,
1716 		.elem_size      = sizeof(struct wlfw_shadow_reg_v2_cfg_s_v01),
1717 		.array_type       = VAR_LEN_ARRAY,
1718 		.tlv_type       = 0x14,
1719 		.offset         = offsetof(struct
1720 					   wlfw_wlan_cfg_req_msg_v01,
1721 					   shadow_reg_v2),
1722 		.ei_array      = wlfw_shadow_reg_v2_cfg_s_v01_ei,
1723 	},
1724 	{
1725 		.data_type      = QMI_OPT_FLAG,
1726 		.elem_len       = 1,
1727 		.elem_size      = sizeof(u8),
1728 		.array_type       = NO_ARRAY,
1729 		.tlv_type       = 0x15,
1730 		.offset         = offsetof(struct
1731 					   wlfw_wlan_cfg_req_msg_v01,
1732 					   rri_over_ddr_cfg_valid),
1733 	},
1734 	{
1735 		.data_type      = QMI_STRUCT,
1736 		.elem_len       = 1,
1737 		.elem_size      = sizeof(struct wlfw_rri_over_ddr_cfg_s_v01),
1738 		.array_type       = NO_ARRAY,
1739 		.tlv_type       = 0x15,
1740 		.offset         = offsetof(struct
1741 					   wlfw_wlan_cfg_req_msg_v01,
1742 					   rri_over_ddr_cfg),
1743 		.ei_array      = wlfw_rri_over_ddr_cfg_s_v01_ei,
1744 	},
1745 	{
1746 		.data_type      = QMI_OPT_FLAG,
1747 		.elem_len       = 1,
1748 		.elem_size      = sizeof(u8),
1749 		.array_type       = NO_ARRAY,
1750 		.tlv_type       = 0x16,
1751 		.offset         = offsetof(struct
1752 					   wlfw_wlan_cfg_req_msg_v01,
1753 					   msi_cfg_valid),
1754 	},
1755 	{
1756 		.data_type      = QMI_DATA_LEN,
1757 		.elem_len       = 1,
1758 		.elem_size      = sizeof(u8),
1759 		.array_type       = NO_ARRAY,
1760 		.tlv_type       = 0x16,
1761 		.offset         = offsetof(struct
1762 					   wlfw_wlan_cfg_req_msg_v01,
1763 					   msi_cfg_len),
1764 	},
1765 	{
1766 		.data_type      = QMI_STRUCT,
1767 		.elem_len       = QMI_WLFW_MAX_NUM_CE_V01,
1768 		.elem_size      = sizeof(struct wlfw_msi_cfg_s_v01),
1769 		.array_type       = VAR_LEN_ARRAY,
1770 		.tlv_type       = 0x16,
1771 		.offset         = offsetof(struct
1772 					   wlfw_wlan_cfg_req_msg_v01,
1773 					   msi_cfg),
1774 		.ei_array      = wlfw_msi_cfg_s_v01_ei,
1775 	},
1776 	{
1777 		.data_type      = QMI_OPT_FLAG,
1778 		.elem_len       = 1,
1779 		.elem_size      = sizeof(u8),
1780 		.array_type       = NO_ARRAY,
1781 		.tlv_type       = 0x17,
1782 		.offset         = offsetof(struct
1783 					   wlfw_wlan_cfg_req_msg_v01,
1784 					   shadow_reg_v3_valid),
1785 	},
1786 	{
1787 		.data_type      = QMI_DATA_LEN,
1788 		.elem_len       = 1,
1789 		.elem_size      = sizeof(u8),
1790 		.array_type       = NO_ARRAY,
1791 		.tlv_type       = 0x17,
1792 		.offset         = offsetof(struct
1793 					   wlfw_wlan_cfg_req_msg_v01,
1794 					   shadow_reg_v3_len),
1795 	},
1796 	{
1797 		.data_type      = QMI_STRUCT,
1798 		.elem_len       = QMI_WLFW_MAX_NUM_SHADOW_REG_V3_V01,
1799 		.elem_size      = sizeof(struct wlfw_shadow_reg_v3_cfg_s_v01),
1800 		.array_type       = VAR_LEN_ARRAY,
1801 		.tlv_type       = 0x17,
1802 		.offset         = offsetof(struct
1803 					   wlfw_wlan_cfg_req_msg_v01,
1804 					   shadow_reg_v3),
1805 		.ei_array      = wlfw_shadow_reg_v3_cfg_s_v01_ei,
1806 	},
1807 	{
1808 		.data_type      = QMI_EOTI,
1809 		.array_type       = NO_ARRAY,
1810 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1811 	},
1812 };
1813 EXPORT_SYMBOL(wlfw_wlan_cfg_req_msg_v01_ei);
1814 
1815 struct qmi_elem_info wlfw_wlan_cfg_resp_msg_v01_ei[] = {
1816 	{
1817 		.data_type      = QMI_STRUCT,
1818 		.elem_len       = 1,
1819 		.elem_size      = sizeof(struct qmi_response_type_v01),
1820 		.array_type       = NO_ARRAY,
1821 		.tlv_type       = 0x02,
1822 		.offset         = offsetof(struct
1823 					   wlfw_wlan_cfg_resp_msg_v01,
1824 					   resp),
1825 		.ei_array      = qmi_response_type_v01_ei,
1826 	},
1827 	{
1828 		.data_type      = QMI_EOTI,
1829 		.array_type       = NO_ARRAY,
1830 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1831 	},
1832 };
1833 EXPORT_SYMBOL(wlfw_wlan_cfg_resp_msg_v01_ei);
1834 
1835 struct qmi_elem_info wlfw_cap_req_msg_v01_ei[] = {
1836 	{
1837 		.data_type      = QMI_EOTI,
1838 		.array_type       = NO_ARRAY,
1839 		.tlv_type       = QMI_COMMON_TLV_TYPE,
1840 	},
1841 };
1842 EXPORT_SYMBOL(wlfw_cap_req_msg_v01_ei);
1843 
1844 struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = {
1845 	{
1846 		.data_type      = QMI_STRUCT,
1847 		.elem_len       = 1,
1848 		.elem_size      = sizeof(struct qmi_response_type_v01),
1849 		.array_type       = NO_ARRAY,
1850 		.tlv_type       = 0x02,
1851 		.offset         = offsetof(struct
1852 					   wlfw_cap_resp_msg_v01,
1853 					   resp),
1854 		.ei_array      = qmi_response_type_v01_ei,
1855 	},
1856 	{
1857 		.data_type      = QMI_OPT_FLAG,
1858 		.elem_len       = 1,
1859 		.elem_size      = sizeof(u8),
1860 		.array_type       = NO_ARRAY,
1861 		.tlv_type       = 0x10,
1862 		.offset         = offsetof(struct
1863 					   wlfw_cap_resp_msg_v01,
1864 					   chip_info_valid),
1865 	},
1866 	{
1867 		.data_type      = QMI_STRUCT,
1868 		.elem_len       = 1,
1869 		.elem_size      = sizeof(struct wlfw_rf_chip_info_s_v01),
1870 		.array_type       = NO_ARRAY,
1871 		.tlv_type       = 0x10,
1872 		.offset         = offsetof(struct
1873 					   wlfw_cap_resp_msg_v01,
1874 					   chip_info),
1875 		.ei_array      = wlfw_rf_chip_info_s_v01_ei,
1876 	},
1877 	{
1878 		.data_type      = QMI_OPT_FLAG,
1879 		.elem_len       = 1,
1880 		.elem_size      = sizeof(u8),
1881 		.array_type       = NO_ARRAY,
1882 		.tlv_type       = 0x11,
1883 		.offset         = offsetof(struct
1884 					   wlfw_cap_resp_msg_v01,
1885 					   board_info_valid),
1886 	},
1887 	{
1888 		.data_type      = QMI_STRUCT,
1889 		.elem_len       = 1,
1890 		.elem_size      = sizeof(struct wlfw_rf_board_info_s_v01),
1891 		.array_type       = NO_ARRAY,
1892 		.tlv_type       = 0x11,
1893 		.offset         = offsetof(struct
1894 					   wlfw_cap_resp_msg_v01,
1895 					   board_info),
1896 		.ei_array      = wlfw_rf_board_info_s_v01_ei,
1897 	},
1898 	{
1899 		.data_type      = QMI_OPT_FLAG,
1900 		.elem_len       = 1,
1901 		.elem_size      = sizeof(u8),
1902 		.array_type       = NO_ARRAY,
1903 		.tlv_type       = 0x12,
1904 		.offset         = offsetof(struct
1905 					   wlfw_cap_resp_msg_v01,
1906 					   soc_info_valid),
1907 	},
1908 	{
1909 		.data_type      = QMI_STRUCT,
1910 		.elem_len       = 1,
1911 		.elem_size      = sizeof(struct wlfw_soc_info_s_v01),
1912 		.array_type       = NO_ARRAY,
1913 		.tlv_type       = 0x12,
1914 		.offset         = offsetof(struct
1915 					   wlfw_cap_resp_msg_v01,
1916 					   soc_info),
1917 		.ei_array      = wlfw_soc_info_s_v01_ei,
1918 	},
1919 	{
1920 		.data_type      = QMI_OPT_FLAG,
1921 		.elem_len       = 1,
1922 		.elem_size      = sizeof(u8),
1923 		.array_type       = NO_ARRAY,
1924 		.tlv_type       = 0x13,
1925 		.offset         = offsetof(struct
1926 					   wlfw_cap_resp_msg_v01,
1927 					   fw_version_info_valid),
1928 	},
1929 	{
1930 		.data_type      = QMI_STRUCT,
1931 		.elem_len       = 1,
1932 		.elem_size      = sizeof(struct wlfw_fw_version_info_s_v01),
1933 		.array_type       = NO_ARRAY,
1934 		.tlv_type       = 0x13,
1935 		.offset         = offsetof(struct
1936 					   wlfw_cap_resp_msg_v01,
1937 					   fw_version_info),
1938 		.ei_array      = wlfw_fw_version_info_s_v01_ei,
1939 	},
1940 	{
1941 		.data_type      = QMI_OPT_FLAG,
1942 		.elem_len       = 1,
1943 		.elem_size      = sizeof(u8),
1944 		.array_type       = NO_ARRAY,
1945 		.tlv_type       = 0x14,
1946 		.offset         = offsetof(struct
1947 					   wlfw_cap_resp_msg_v01,
1948 					   fw_build_id_valid),
1949 	},
1950 	{
1951 		.data_type      = QMI_STRING,
1952 		.elem_len       = QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1,
1953 		.elem_size      = sizeof(char),
1954 		.array_type       = NO_ARRAY,
1955 		.tlv_type       = 0x14,
1956 		.offset         = offsetof(struct
1957 					   wlfw_cap_resp_msg_v01,
1958 					   fw_build_id),
1959 	},
1960 	{
1961 		.data_type      = QMI_OPT_FLAG,
1962 		.elem_len       = 1,
1963 		.elem_size      = sizeof(u8),
1964 		.array_type       = NO_ARRAY,
1965 		.tlv_type       = 0x15,
1966 		.offset         = offsetof(struct
1967 					   wlfw_cap_resp_msg_v01,
1968 					   num_macs_valid),
1969 	},
1970 	{
1971 		.data_type      = QMI_UNSIGNED_1_BYTE,
1972 		.elem_len       = 1,
1973 		.elem_size      = sizeof(u8),
1974 		.array_type       = NO_ARRAY,
1975 		.tlv_type       = 0x15,
1976 		.offset         = offsetof(struct
1977 					   wlfw_cap_resp_msg_v01,
1978 					   num_macs),
1979 	},
1980 	{
1981 		.data_type      = QMI_OPT_FLAG,
1982 		.elem_len       = 1,
1983 		.elem_size      = sizeof(u8),
1984 		.array_type       = NO_ARRAY,
1985 		.tlv_type       = 0x16,
1986 		.offset         = offsetof(struct
1987 					   wlfw_cap_resp_msg_v01,
1988 					   voltage_mv_valid),
1989 	},
1990 	{
1991 		.data_type      = QMI_UNSIGNED_4_BYTE,
1992 		.elem_len       = 1,
1993 		.elem_size      = sizeof(u32),
1994 		.array_type       = NO_ARRAY,
1995 		.tlv_type       = 0x16,
1996 		.offset         = offsetof(struct
1997 					   wlfw_cap_resp_msg_v01,
1998 					   voltage_mv),
1999 	},
2000 	{
2001 		.data_type      = QMI_OPT_FLAG,
2002 		.elem_len       = 1,
2003 		.elem_size      = sizeof(u8),
2004 		.array_type       = NO_ARRAY,
2005 		.tlv_type       = 0x17,
2006 		.offset         = offsetof(struct
2007 					   wlfw_cap_resp_msg_v01,
2008 					   time_freq_hz_valid),
2009 	},
2010 	{
2011 		.data_type      = QMI_UNSIGNED_4_BYTE,
2012 		.elem_len       = 1,
2013 		.elem_size      = sizeof(u32),
2014 		.array_type       = NO_ARRAY,
2015 		.tlv_type       = 0x17,
2016 		.offset         = offsetof(struct
2017 					   wlfw_cap_resp_msg_v01,
2018 					   time_freq_hz),
2019 	},
2020 	{
2021 		.data_type      = QMI_OPT_FLAG,
2022 		.elem_len       = 1,
2023 		.elem_size      = sizeof(u8),
2024 		.array_type       = NO_ARRAY,
2025 		.tlv_type       = 0x18,
2026 		.offset         = offsetof(struct
2027 					   wlfw_cap_resp_msg_v01,
2028 					   otp_version_valid),
2029 	},
2030 	{
2031 		.data_type      = QMI_UNSIGNED_4_BYTE,
2032 		.elem_len       = 1,
2033 		.elem_size      = sizeof(u32),
2034 		.array_type       = NO_ARRAY,
2035 		.tlv_type       = 0x18,
2036 		.offset         = offsetof(struct
2037 					   wlfw_cap_resp_msg_v01,
2038 					   otp_version),
2039 	},
2040 	{
2041 		.data_type      = QMI_OPT_FLAG,
2042 		.elem_len       = 1,
2043 		.elem_size      = sizeof(u8),
2044 		.array_type       = NO_ARRAY,
2045 		.tlv_type       = 0x19,
2046 		.offset         = offsetof(struct
2047 					   wlfw_cap_resp_msg_v01,
2048 					   eeprom_caldata_read_timeout_valid),
2049 	},
2050 	{
2051 		.data_type      = QMI_UNSIGNED_4_BYTE,
2052 		.elem_len       = 1,
2053 		.elem_size      = sizeof(u32),
2054 		.array_type       = NO_ARRAY,
2055 		.tlv_type       = 0x19,
2056 		.offset         = offsetof(struct
2057 					   wlfw_cap_resp_msg_v01,
2058 					   eeprom_caldata_read_timeout),
2059 	},
2060 	{
2061 		.data_type      = QMI_OPT_FLAG,
2062 		.elem_len       = 1,
2063 		.elem_size      = sizeof(u8),
2064 		.array_type       = NO_ARRAY,
2065 		.tlv_type       = 0x1A,
2066 		.offset         = offsetof(struct
2067 					   wlfw_cap_resp_msg_v01,
2068 					   fw_caps_valid),
2069 	},
2070 	{
2071 		.data_type      = QMI_UNSIGNED_8_BYTE,
2072 		.elem_len       = 1,
2073 		.elem_size      = sizeof(u64),
2074 		.array_type       = NO_ARRAY,
2075 		.tlv_type       = 0x1A,
2076 		.offset         = offsetof(struct
2077 					   wlfw_cap_resp_msg_v01,
2078 					   fw_caps),
2079 	},
2080 	{
2081 		.data_type      = QMI_OPT_FLAG,
2082 		.elem_len       = 1,
2083 		.elem_size      = sizeof(u8),
2084 		.array_type       = NO_ARRAY,
2085 		.tlv_type       = 0x1B,
2086 		.offset         = offsetof(struct
2087 					   wlfw_cap_resp_msg_v01,
2088 					   rd_card_chain_cap_valid),
2089 	},
2090 	{
2091 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2092 		.elem_len       = 1,
2093 		.elem_size      = sizeof(enum wlfw_rd_card_chain_cap_v01),
2094 		.array_type       = NO_ARRAY,
2095 		.tlv_type       = 0x1B,
2096 		.offset         = offsetof(struct
2097 					   wlfw_cap_resp_msg_v01,
2098 					   rd_card_chain_cap),
2099 	},
2100 	{
2101 		.data_type      = QMI_OPT_FLAG,
2102 		.elem_len       = 1,
2103 		.elem_size      = sizeof(u8),
2104 		.array_type       = NO_ARRAY,
2105 		.tlv_type       = 0x1C,
2106 		.offset         = offsetof(struct
2107 					   wlfw_cap_resp_msg_v01,
2108 					   dev_mem_info_valid),
2109 	},
2110 	{
2111 		.data_type      = QMI_STRUCT,
2112 		.elem_len       = QMI_WLFW_MAX_DEV_MEM_NUM_V01,
2113 		.elem_size      = sizeof(struct wlfw_dev_mem_info_s_v01),
2114 		.array_type       = STATIC_ARRAY,
2115 		.tlv_type       = 0x1C,
2116 		.offset         = offsetof(struct
2117 					   wlfw_cap_resp_msg_v01,
2118 					   dev_mem_info),
2119 		.ei_array      = wlfw_dev_mem_info_s_v01_ei,
2120 	},
2121 	{
2122 		.data_type      = QMI_OPT_FLAG,
2123 		.elem_len       = 1,
2124 		.elem_size      = sizeof(u8),
2125 		.array_type       = NO_ARRAY,
2126 		.tlv_type       = 0x1D,
2127 		.offset         = offsetof(struct
2128 					   wlfw_cap_resp_msg_v01,
2129 					   foundry_name_valid),
2130 	},
2131 	{
2132 		.data_type      = QMI_STRING,
2133 		.elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
2134 		.elem_size      = sizeof(char),
2135 		.array_type       = NO_ARRAY,
2136 		.tlv_type       = 0x1D,
2137 		.offset         = offsetof(struct
2138 					   wlfw_cap_resp_msg_v01,
2139 					   foundry_name),
2140 	},
2141 	{
2142 		.data_type      = QMI_OPT_FLAG,
2143 		.elem_len       = 1,
2144 		.elem_size      = sizeof(u8),
2145 		.array_type       = NO_ARRAY,
2146 		.tlv_type       = 0x1E,
2147 		.offset         = offsetof(struct
2148 					   wlfw_cap_resp_msg_v01,
2149 					   hang_data_addr_offset_valid),
2150 	},
2151 	{
2152 		.data_type      = QMI_UNSIGNED_4_BYTE,
2153 		.elem_len       = 1,
2154 		.elem_size      = sizeof(u32),
2155 		.array_type       = NO_ARRAY,
2156 		.tlv_type       = 0x1E,
2157 		.offset         = offsetof(struct
2158 					   wlfw_cap_resp_msg_v01,
2159 					   hang_data_addr_offset),
2160 	},
2161 	{
2162 		.data_type      = QMI_OPT_FLAG,
2163 		.elem_len       = 1,
2164 		.elem_size      = sizeof(u8),
2165 		.array_type       = NO_ARRAY,
2166 		.tlv_type       = 0x1F,
2167 		.offset         = offsetof(struct
2168 					   wlfw_cap_resp_msg_v01,
2169 					   hang_data_length_valid),
2170 	},
2171 	{
2172 		.data_type      = QMI_UNSIGNED_2_BYTE,
2173 		.elem_len       = 1,
2174 		.elem_size      = sizeof(u16),
2175 		.array_type       = NO_ARRAY,
2176 		.tlv_type       = 0x1F,
2177 		.offset         = offsetof(struct
2178 					   wlfw_cap_resp_msg_v01,
2179 					   hang_data_length),
2180 	},
2181 	{
2182 		.data_type      = QMI_OPT_FLAG,
2183 		.elem_len       = 1,
2184 		.elem_size      = sizeof(u8),
2185 		.array_type       = NO_ARRAY,
2186 		.tlv_type       = 0x20,
2187 		.offset         = offsetof(struct
2188 					   wlfw_cap_resp_msg_v01,
2189 					   bdf_dnld_method_valid),
2190 	},
2191 	{
2192 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2193 		.elem_len       = 1,
2194 		.elem_size      = sizeof(enum wlfw_bdf_dnld_method_v01),
2195 		.array_type       = NO_ARRAY,
2196 		.tlv_type       = 0x20,
2197 		.offset         = offsetof(struct
2198 					   wlfw_cap_resp_msg_v01,
2199 					   bdf_dnld_method),
2200 	},
2201 	{
2202 		.data_type      = QMI_OPT_FLAG,
2203 		.elem_len       = 1,
2204 		.elem_size      = sizeof(u8),
2205 		.array_type       = NO_ARRAY,
2206 		.tlv_type       = 0x21,
2207 		.offset         = offsetof(struct
2208 					   wlfw_cap_resp_msg_v01,
2209 					   hwid_bitmap_valid),
2210 	},
2211 	{
2212 		.data_type      = QMI_UNSIGNED_1_BYTE,
2213 		.elem_len       = 1,
2214 		.elem_size      = sizeof(u8),
2215 		.array_type       = NO_ARRAY,
2216 		.tlv_type       = 0x21,
2217 		.offset         = offsetof(struct
2218 					   wlfw_cap_resp_msg_v01,
2219 					   hwid_bitmap),
2220 	},
2221 	{
2222 		.data_type      = QMI_OPT_FLAG,
2223 		.elem_len       = 1,
2224 		.elem_size      = sizeof(u8),
2225 		.array_type       = NO_ARRAY,
2226 		.tlv_type       = 0x22,
2227 		.offset         = offsetof(struct
2228 					   wlfw_cap_resp_msg_v01,
2229 					   ol_cpr_cfg_valid),
2230 	},
2231 	{
2232 		.data_type      = QMI_STRUCT,
2233 		.elem_len       = 1,
2234 		.elem_size      = sizeof(struct wlfw_pmu_cfg_v01),
2235 		.array_type       = NO_ARRAY,
2236 		.tlv_type       = 0x22,
2237 		.offset         = offsetof(struct
2238 					   wlfw_cap_resp_msg_v01,
2239 					   ol_cpr_cfg),
2240 		.ei_array      = wlfw_pmu_cfg_v01_ei,
2241 	},
2242 	{
2243 		.data_type      = QMI_OPT_FLAG,
2244 		.elem_len       = 1,
2245 		.elem_size      = sizeof(u8),
2246 		.array_type       = NO_ARRAY,
2247 		.tlv_type       = 0x23,
2248 		.offset         = offsetof(struct
2249 					   wlfw_cap_resp_msg_v01,
2250 					   regdb_mandatory_valid),
2251 	},
2252 	{
2253 		.data_type      = QMI_UNSIGNED_1_BYTE,
2254 		.elem_len       = 1,
2255 		.elem_size      = sizeof(u8),
2256 		.array_type       = NO_ARRAY,
2257 		.tlv_type       = 0x23,
2258 		.offset         = offsetof(struct
2259 					   wlfw_cap_resp_msg_v01,
2260 					   regdb_mandatory),
2261 	},
2262 	{
2263 		.data_type      = QMI_OPT_FLAG,
2264 		.elem_len       = 1,
2265 		.elem_size      = sizeof(u8),
2266 		.array_type       = NO_ARRAY,
2267 		.tlv_type       = 0x24,
2268 		.offset         = offsetof(struct
2269 					   wlfw_cap_resp_msg_v01,
2270 					   regdb_support_valid),
2271 	},
2272 	{
2273 		.data_type      = QMI_UNSIGNED_1_BYTE,
2274 		.elem_len       = 1,
2275 		.elem_size      = sizeof(u8),
2276 		.array_type       = NO_ARRAY,
2277 		.tlv_type       = 0x24,
2278 		.offset         = offsetof(struct
2279 					   wlfw_cap_resp_msg_v01,
2280 					   regdb_support),
2281 	},
2282 	{
2283 		.data_type      = QMI_OPT_FLAG,
2284 		.elem_len       = 1,
2285 		.elem_size      = sizeof(u8),
2286 		.array_type       = NO_ARRAY,
2287 		.tlv_type       = 0x25,
2288 		.offset         = offsetof(struct
2289 					   wlfw_cap_resp_msg_v01,
2290 					   rxgainlut_support_valid),
2291 	},
2292 	{
2293 		.data_type      = QMI_UNSIGNED_1_BYTE,
2294 		.elem_len       = 1,
2295 		.elem_size      = sizeof(u8),
2296 		.array_type       = NO_ARRAY,
2297 		.tlv_type       = 0x25,
2298 		.offset         = offsetof(struct
2299 					   wlfw_cap_resp_msg_v01,
2300 					   rxgainlut_support),
2301 	},
2302 	{
2303 		.data_type      = QMI_OPT_FLAG,
2304 		.elem_len       = 1,
2305 		.elem_size      = sizeof(u8),
2306 		.array_type       = NO_ARRAY,
2307 		.tlv_type       = 0x26,
2308 		.offset         = offsetof(struct
2309 					   wlfw_cap_resp_msg_v01,
2310 					   he_channel_width_cap_valid),
2311 	},
2312 	{
2313 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2314 		.elem_len       = 1,
2315 		.elem_size      = sizeof(enum wlfw_he_channel_width_cap_v01),
2316 		.array_type       = NO_ARRAY,
2317 		.tlv_type       = 0x26,
2318 		.offset         = offsetof(struct
2319 					   wlfw_cap_resp_msg_v01,
2320 					   he_channel_width_cap),
2321 	},
2322 	{
2323 		.data_type      = QMI_OPT_FLAG,
2324 		.elem_len       = 1,
2325 		.elem_size      = sizeof(u8),
2326 		.array_type       = NO_ARRAY,
2327 		.tlv_type       = 0x27,
2328 		.offset         = offsetof(struct
2329 					   wlfw_cap_resp_msg_v01,
2330 					   phy_qam_cap_valid),
2331 	},
2332 	{
2333 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2334 		.elem_len       = 1,
2335 		.elem_size      = sizeof(enum wlfw_phy_qam_cap_v01),
2336 		.array_type       = NO_ARRAY,
2337 		.tlv_type       = 0x27,
2338 		.offset         = offsetof(struct
2339 					   wlfw_cap_resp_msg_v01,
2340 					   phy_qam_cap),
2341 	},
2342 	{
2343 		.data_type      = QMI_OPT_FLAG,
2344 		.elem_len       = 1,
2345 		.elem_size      = sizeof(u8),
2346 		.array_type       = NO_ARRAY,
2347 		.tlv_type       = 0x28,
2348 		.offset         = offsetof(struct
2349 					   wlfw_cap_resp_msg_v01,
2350 					   serial_id_valid),
2351 	},
2352 	{
2353 		.data_type      = QMI_STRUCT,
2354 		.elem_len       = 1,
2355 		.elem_size      = sizeof(struct wlchip_serial_id_v01),
2356 		.array_type       = NO_ARRAY,
2357 		.tlv_type       = 0x28,
2358 		.offset         = offsetof(struct
2359 					   wlfw_cap_resp_msg_v01,
2360 					   serial_id),
2361 		.ei_array      = wlchip_serial_id_v01_ei,
2362 	},
2363 	{
2364 		.data_type      = QMI_EOTI,
2365 		.array_type       = NO_ARRAY,
2366 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2367 	},
2368 };
2369 EXPORT_SYMBOL(wlfw_cap_resp_msg_v01_ei);
2370 
2371 struct qmi_elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
2372 	{
2373 		.data_type      = QMI_UNSIGNED_1_BYTE,
2374 		.elem_len       = 1,
2375 		.elem_size      = sizeof(u8),
2376 		.array_type       = NO_ARRAY,
2377 		.tlv_type       = 0x01,
2378 		.offset         = offsetof(struct
2379 					   wlfw_bdf_download_req_msg_v01,
2380 					   valid),
2381 	},
2382 	{
2383 		.data_type      = QMI_OPT_FLAG,
2384 		.elem_len       = 1,
2385 		.elem_size      = sizeof(u8),
2386 		.array_type       = NO_ARRAY,
2387 		.tlv_type       = 0x10,
2388 		.offset         = offsetof(struct
2389 					   wlfw_bdf_download_req_msg_v01,
2390 					   file_id_valid),
2391 	},
2392 	{
2393 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2394 		.elem_len       = 1,
2395 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2396 		.array_type       = NO_ARRAY,
2397 		.tlv_type       = 0x10,
2398 		.offset         = offsetof(struct
2399 					   wlfw_bdf_download_req_msg_v01,
2400 					   file_id),
2401 	},
2402 	{
2403 		.data_type      = QMI_OPT_FLAG,
2404 		.elem_len       = 1,
2405 		.elem_size      = sizeof(u8),
2406 		.array_type       = NO_ARRAY,
2407 		.tlv_type       = 0x11,
2408 		.offset         = offsetof(struct
2409 					   wlfw_bdf_download_req_msg_v01,
2410 					   total_size_valid),
2411 	},
2412 	{
2413 		.data_type      = QMI_UNSIGNED_4_BYTE,
2414 		.elem_len       = 1,
2415 		.elem_size      = sizeof(u32),
2416 		.array_type       = NO_ARRAY,
2417 		.tlv_type       = 0x11,
2418 		.offset         = offsetof(struct
2419 					   wlfw_bdf_download_req_msg_v01,
2420 					   total_size),
2421 	},
2422 	{
2423 		.data_type      = QMI_OPT_FLAG,
2424 		.elem_len       = 1,
2425 		.elem_size      = sizeof(u8),
2426 		.array_type       = NO_ARRAY,
2427 		.tlv_type       = 0x12,
2428 		.offset         = offsetof(struct
2429 					   wlfw_bdf_download_req_msg_v01,
2430 					   seg_id_valid),
2431 	},
2432 	{
2433 		.data_type      = QMI_UNSIGNED_4_BYTE,
2434 		.elem_len       = 1,
2435 		.elem_size      = sizeof(u32),
2436 		.array_type       = NO_ARRAY,
2437 		.tlv_type       = 0x12,
2438 		.offset         = offsetof(struct
2439 					   wlfw_bdf_download_req_msg_v01,
2440 					   seg_id),
2441 	},
2442 	{
2443 		.data_type      = QMI_OPT_FLAG,
2444 		.elem_len       = 1,
2445 		.elem_size      = sizeof(u8),
2446 		.array_type       = NO_ARRAY,
2447 		.tlv_type       = 0x13,
2448 		.offset         = offsetof(struct
2449 					   wlfw_bdf_download_req_msg_v01,
2450 					   data_valid),
2451 	},
2452 	{
2453 		.data_type      = QMI_DATA_LEN,
2454 		.elem_len       = 1,
2455 		.elem_size      = sizeof(u16),
2456 		.array_type       = NO_ARRAY,
2457 		.tlv_type       = 0x13,
2458 		.offset         = offsetof(struct
2459 					   wlfw_bdf_download_req_msg_v01,
2460 					   data_len),
2461 	},
2462 	{
2463 		.data_type      = QMI_UNSIGNED_1_BYTE,
2464 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
2465 		.elem_size      = sizeof(u8),
2466 		.array_type       = VAR_LEN_ARRAY,
2467 		.tlv_type       = 0x13,
2468 		.offset         = offsetof(struct
2469 					   wlfw_bdf_download_req_msg_v01,
2470 					   data),
2471 	},
2472 	{
2473 		.data_type      = QMI_OPT_FLAG,
2474 		.elem_len       = 1,
2475 		.elem_size      = sizeof(u8),
2476 		.array_type       = NO_ARRAY,
2477 		.tlv_type       = 0x14,
2478 		.offset         = offsetof(struct
2479 					   wlfw_bdf_download_req_msg_v01,
2480 					   end_valid),
2481 	},
2482 	{
2483 		.data_type      = QMI_UNSIGNED_1_BYTE,
2484 		.elem_len       = 1,
2485 		.elem_size      = sizeof(u8),
2486 		.array_type       = NO_ARRAY,
2487 		.tlv_type       = 0x14,
2488 		.offset         = offsetof(struct
2489 					   wlfw_bdf_download_req_msg_v01,
2490 					   end),
2491 	},
2492 	{
2493 		.data_type      = QMI_OPT_FLAG,
2494 		.elem_len       = 1,
2495 		.elem_size      = sizeof(u8),
2496 		.array_type       = NO_ARRAY,
2497 		.tlv_type       = 0x15,
2498 		.offset         = offsetof(struct
2499 					   wlfw_bdf_download_req_msg_v01,
2500 					   bdf_type_valid),
2501 	},
2502 	{
2503 		.data_type      = QMI_UNSIGNED_1_BYTE,
2504 		.elem_len       = 1,
2505 		.elem_size      = sizeof(u8),
2506 		.array_type       = NO_ARRAY,
2507 		.tlv_type       = 0x15,
2508 		.offset         = offsetof(struct
2509 					   wlfw_bdf_download_req_msg_v01,
2510 					   bdf_type),
2511 	},
2512 	{
2513 		.data_type      = QMI_EOTI,
2514 		.array_type       = NO_ARRAY,
2515 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2516 	},
2517 };
2518 EXPORT_SYMBOL(wlfw_bdf_download_req_msg_v01_ei);
2519 
2520 struct qmi_elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {
2521 	{
2522 		.data_type      = QMI_STRUCT,
2523 		.elem_len       = 1,
2524 		.elem_size      = sizeof(struct qmi_response_type_v01),
2525 		.array_type       = NO_ARRAY,
2526 		.tlv_type       = 0x02,
2527 		.offset         = offsetof(struct
2528 					   wlfw_bdf_download_resp_msg_v01,
2529 					   resp),
2530 		.ei_array      = qmi_response_type_v01_ei,
2531 	},
2532 	{
2533 		.data_type      = QMI_OPT_FLAG,
2534 		.elem_len       = 1,
2535 		.elem_size      = sizeof(u8),
2536 		.array_type       = NO_ARRAY,
2537 		.tlv_type       = 0x10,
2538 		.offset         = offsetof(struct
2539 					   wlfw_bdf_download_resp_msg_v01,
2540 					   host_bdf_data_valid),
2541 	},
2542 	{
2543 		.data_type      = QMI_UNSIGNED_8_BYTE,
2544 		.elem_len       = 1,
2545 		.elem_size      = sizeof(u64),
2546 		.array_type       = NO_ARRAY,
2547 		.tlv_type       = 0x10,
2548 		.offset         = offsetof(struct
2549 					   wlfw_bdf_download_resp_msg_v01,
2550 					   host_bdf_data),
2551 	},
2552 	{
2553 		.data_type      = QMI_EOTI,
2554 		.array_type       = NO_ARRAY,
2555 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2556 	},
2557 };
2558 EXPORT_SYMBOL(wlfw_bdf_download_resp_msg_v01_ei);
2559 
2560 struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = {
2561 	{
2562 		.data_type      = QMI_DATA_LEN,
2563 		.elem_len       = 1,
2564 		.elem_size      = sizeof(u8),
2565 		.array_type       = NO_ARRAY,
2566 		.tlv_type       = 0x01,
2567 		.offset         = offsetof(struct
2568 					   wlfw_cal_report_req_msg_v01,
2569 					   meta_data_len),
2570 	},
2571 	{
2572 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2573 		.elem_len       = QMI_WLFW_MAX_NUM_CAL_V01,
2574 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2575 		.array_type       = VAR_LEN_ARRAY,
2576 		.tlv_type       = 0x01,
2577 		.offset         = offsetof(struct
2578 					   wlfw_cal_report_req_msg_v01,
2579 					   meta_data),
2580 	},
2581 	{
2582 		.data_type      = QMI_OPT_FLAG,
2583 		.elem_len       = 1,
2584 		.elem_size      = sizeof(u8),
2585 		.array_type       = NO_ARRAY,
2586 		.tlv_type       = 0x10,
2587 		.offset         = offsetof(struct
2588 					   wlfw_cal_report_req_msg_v01,
2589 					   xo_cal_data_valid),
2590 	},
2591 	{
2592 		.data_type      = QMI_UNSIGNED_1_BYTE,
2593 		.elem_len       = 1,
2594 		.elem_size      = sizeof(u8),
2595 		.array_type       = NO_ARRAY,
2596 		.tlv_type       = 0x10,
2597 		.offset         = offsetof(struct
2598 					   wlfw_cal_report_req_msg_v01,
2599 					   xo_cal_data),
2600 	},
2601 	{
2602 		.data_type      = QMI_OPT_FLAG,
2603 		.elem_len       = 1,
2604 		.elem_size      = sizeof(u8),
2605 		.array_type       = NO_ARRAY,
2606 		.tlv_type       = 0x11,
2607 		.offset         = offsetof(struct
2608 					   wlfw_cal_report_req_msg_v01,
2609 					   cal_remove_supported_valid),
2610 	},
2611 	{
2612 		.data_type      = QMI_UNSIGNED_1_BYTE,
2613 		.elem_len       = 1,
2614 		.elem_size      = sizeof(u8),
2615 		.array_type       = NO_ARRAY,
2616 		.tlv_type       = 0x11,
2617 		.offset         = offsetof(struct
2618 					   wlfw_cal_report_req_msg_v01,
2619 					   cal_remove_supported),
2620 	},
2621 	{
2622 		.data_type      = QMI_OPT_FLAG,
2623 		.elem_len       = 1,
2624 		.elem_size      = sizeof(u8),
2625 		.array_type       = NO_ARRAY,
2626 		.tlv_type       = 0x12,
2627 		.offset         = offsetof(struct
2628 					   wlfw_cal_report_req_msg_v01,
2629 					   cal_file_download_size_valid),
2630 	},
2631 	{
2632 		.data_type      = QMI_UNSIGNED_8_BYTE,
2633 		.elem_len       = 1,
2634 		.elem_size      = sizeof(u64),
2635 		.array_type       = NO_ARRAY,
2636 		.tlv_type       = 0x12,
2637 		.offset         = offsetof(struct
2638 					   wlfw_cal_report_req_msg_v01,
2639 					   cal_file_download_size),
2640 	},
2641 	{
2642 		.data_type      = QMI_EOTI,
2643 		.array_type       = NO_ARRAY,
2644 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2645 	},
2646 };
2647 EXPORT_SYMBOL(wlfw_cal_report_req_msg_v01_ei);
2648 
2649 struct qmi_elem_info wlfw_cal_report_resp_msg_v01_ei[] = {
2650 	{
2651 		.data_type      = QMI_STRUCT,
2652 		.elem_len       = 1,
2653 		.elem_size      = sizeof(struct qmi_response_type_v01),
2654 		.array_type       = NO_ARRAY,
2655 		.tlv_type       = 0x02,
2656 		.offset         = offsetof(struct
2657 					   wlfw_cal_report_resp_msg_v01,
2658 					   resp),
2659 		.ei_array      = qmi_response_type_v01_ei,
2660 	},
2661 	{
2662 		.data_type      = QMI_EOTI,
2663 		.array_type       = NO_ARRAY,
2664 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2665 	},
2666 };
2667 EXPORT_SYMBOL(wlfw_cal_report_resp_msg_v01_ei);
2668 
2669 struct qmi_elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = {
2670 	{
2671 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2672 		.elem_len       = 1,
2673 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2674 		.array_type       = NO_ARRAY,
2675 		.tlv_type       = 0x01,
2676 		.offset         = offsetof(struct
2677 					   wlfw_initiate_cal_download_ind_msg_v01,
2678 					   cal_id),
2679 	},
2680 	{
2681 		.data_type      = QMI_OPT_FLAG,
2682 		.elem_len       = 1,
2683 		.elem_size      = sizeof(u8),
2684 		.array_type       = NO_ARRAY,
2685 		.tlv_type       = 0x10,
2686 		.offset         = offsetof(struct
2687 					   wlfw_initiate_cal_download_ind_msg_v01,
2688 					   total_size_valid),
2689 	},
2690 	{
2691 		.data_type      = QMI_UNSIGNED_4_BYTE,
2692 		.elem_len       = 1,
2693 		.elem_size      = sizeof(u32),
2694 		.array_type       = NO_ARRAY,
2695 		.tlv_type       = 0x10,
2696 		.offset         = offsetof(struct
2697 					   wlfw_initiate_cal_download_ind_msg_v01,
2698 					   total_size),
2699 	},
2700 	{
2701 		.data_type      = QMI_OPT_FLAG,
2702 		.elem_len       = 1,
2703 		.elem_size      = sizeof(u8),
2704 		.array_type       = NO_ARRAY,
2705 		.tlv_type       = 0x11,
2706 		.offset         = offsetof(struct
2707 					   wlfw_initiate_cal_download_ind_msg_v01,
2708 					   cal_data_location_valid),
2709 	},
2710 	{
2711 		.data_type      = QMI_UNSIGNED_4_BYTE,
2712 		.elem_len       = 1,
2713 		.elem_size      = sizeof(u32),
2714 		.array_type       = NO_ARRAY,
2715 		.tlv_type       = 0x11,
2716 		.offset         = offsetof(struct
2717 					   wlfw_initiate_cal_download_ind_msg_v01,
2718 					   cal_data_location),
2719 	},
2720 	{
2721 		.data_type      = QMI_EOTI,
2722 		.array_type       = NO_ARRAY,
2723 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2724 	},
2725 };
2726 EXPORT_SYMBOL(wlfw_initiate_cal_download_ind_msg_v01_ei);
2727 
2728 struct qmi_elem_info wlfw_cal_download_req_msg_v01_ei[] = {
2729 	{
2730 		.data_type      = QMI_UNSIGNED_1_BYTE,
2731 		.elem_len       = 1,
2732 		.elem_size      = sizeof(u8),
2733 		.array_type       = NO_ARRAY,
2734 		.tlv_type       = 0x01,
2735 		.offset         = offsetof(struct
2736 					   wlfw_cal_download_req_msg_v01,
2737 					   valid),
2738 	},
2739 	{
2740 		.data_type      = QMI_OPT_FLAG,
2741 		.elem_len       = 1,
2742 		.elem_size      = sizeof(u8),
2743 		.array_type       = NO_ARRAY,
2744 		.tlv_type       = 0x10,
2745 		.offset         = offsetof(struct
2746 					   wlfw_cal_download_req_msg_v01,
2747 					   file_id_valid),
2748 	},
2749 	{
2750 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2751 		.elem_len       = 1,
2752 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2753 		.array_type       = NO_ARRAY,
2754 		.tlv_type       = 0x10,
2755 		.offset         = offsetof(struct
2756 					   wlfw_cal_download_req_msg_v01,
2757 					   file_id),
2758 	},
2759 	{
2760 		.data_type      = QMI_OPT_FLAG,
2761 		.elem_len       = 1,
2762 		.elem_size      = sizeof(u8),
2763 		.array_type       = NO_ARRAY,
2764 		.tlv_type       = 0x11,
2765 		.offset         = offsetof(struct
2766 					   wlfw_cal_download_req_msg_v01,
2767 					   total_size_valid),
2768 	},
2769 	{
2770 		.data_type      = QMI_UNSIGNED_4_BYTE,
2771 		.elem_len       = 1,
2772 		.elem_size      = sizeof(u32),
2773 		.array_type       = NO_ARRAY,
2774 		.tlv_type       = 0x11,
2775 		.offset         = offsetof(struct
2776 					   wlfw_cal_download_req_msg_v01,
2777 					   total_size),
2778 	},
2779 	{
2780 		.data_type      = QMI_OPT_FLAG,
2781 		.elem_len       = 1,
2782 		.elem_size      = sizeof(u8),
2783 		.array_type       = NO_ARRAY,
2784 		.tlv_type       = 0x12,
2785 		.offset         = offsetof(struct
2786 					   wlfw_cal_download_req_msg_v01,
2787 					   seg_id_valid),
2788 	},
2789 	{
2790 		.data_type      = QMI_UNSIGNED_4_BYTE,
2791 		.elem_len       = 1,
2792 		.elem_size      = sizeof(u32),
2793 		.array_type       = NO_ARRAY,
2794 		.tlv_type       = 0x12,
2795 		.offset         = offsetof(struct
2796 					   wlfw_cal_download_req_msg_v01,
2797 					   seg_id),
2798 	},
2799 	{
2800 		.data_type      = QMI_OPT_FLAG,
2801 		.elem_len       = 1,
2802 		.elem_size      = sizeof(u8),
2803 		.array_type       = NO_ARRAY,
2804 		.tlv_type       = 0x13,
2805 		.offset         = offsetof(struct
2806 					   wlfw_cal_download_req_msg_v01,
2807 					   data_valid),
2808 	},
2809 	{
2810 		.data_type      = QMI_DATA_LEN,
2811 		.elem_len       = 1,
2812 		.elem_size      = sizeof(u16),
2813 		.array_type       = NO_ARRAY,
2814 		.tlv_type       = 0x13,
2815 		.offset         = offsetof(struct
2816 					   wlfw_cal_download_req_msg_v01,
2817 					   data_len),
2818 	},
2819 	{
2820 		.data_type      = QMI_UNSIGNED_1_BYTE,
2821 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
2822 		.elem_size      = sizeof(u8),
2823 		.array_type       = VAR_LEN_ARRAY,
2824 		.tlv_type       = 0x13,
2825 		.offset         = offsetof(struct
2826 					   wlfw_cal_download_req_msg_v01,
2827 					   data),
2828 	},
2829 	{
2830 		.data_type      = QMI_OPT_FLAG,
2831 		.elem_len       = 1,
2832 		.elem_size      = sizeof(u8),
2833 		.array_type       = NO_ARRAY,
2834 		.tlv_type       = 0x14,
2835 		.offset         = offsetof(struct
2836 					   wlfw_cal_download_req_msg_v01,
2837 					   end_valid),
2838 	},
2839 	{
2840 		.data_type      = QMI_UNSIGNED_1_BYTE,
2841 		.elem_len       = 1,
2842 		.elem_size      = sizeof(u8),
2843 		.array_type       = NO_ARRAY,
2844 		.tlv_type       = 0x14,
2845 		.offset         = offsetof(struct
2846 					   wlfw_cal_download_req_msg_v01,
2847 					   end),
2848 	},
2849 	{
2850 		.data_type      = QMI_OPT_FLAG,
2851 		.elem_len       = 1,
2852 		.elem_size      = sizeof(u8),
2853 		.array_type       = NO_ARRAY,
2854 		.tlv_type       = 0x15,
2855 		.offset         = offsetof(struct
2856 					   wlfw_cal_download_req_msg_v01,
2857 					   cal_data_location_valid),
2858 	},
2859 	{
2860 		.data_type      = QMI_UNSIGNED_4_BYTE,
2861 		.elem_len       = 1,
2862 		.elem_size      = sizeof(u32),
2863 		.array_type       = NO_ARRAY,
2864 		.tlv_type       = 0x15,
2865 		.offset         = offsetof(struct
2866 					   wlfw_cal_download_req_msg_v01,
2867 					   cal_data_location),
2868 	},
2869 	{
2870 		.data_type      = QMI_EOTI,
2871 		.array_type       = NO_ARRAY,
2872 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2873 	},
2874 };
2875 EXPORT_SYMBOL(wlfw_cal_download_req_msg_v01_ei);
2876 
2877 struct qmi_elem_info wlfw_cal_download_resp_msg_v01_ei[] = {
2878 	{
2879 		.data_type      = QMI_STRUCT,
2880 		.elem_len       = 1,
2881 		.elem_size      = sizeof(struct qmi_response_type_v01),
2882 		.array_type       = NO_ARRAY,
2883 		.tlv_type       = 0x02,
2884 		.offset         = offsetof(struct
2885 					   wlfw_cal_download_resp_msg_v01,
2886 					   resp),
2887 		.ei_array      = qmi_response_type_v01_ei,
2888 	},
2889 	{
2890 		.data_type      = QMI_EOTI,
2891 		.array_type       = NO_ARRAY,
2892 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2893 	},
2894 };
2895 EXPORT_SYMBOL(wlfw_cal_download_resp_msg_v01_ei);
2896 
2897 struct qmi_elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = {
2898 	{
2899 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2900 		.elem_len       = 1,
2901 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2902 		.array_type       = NO_ARRAY,
2903 		.tlv_type       = 0x01,
2904 		.offset         = offsetof(struct
2905 					   wlfw_initiate_cal_update_ind_msg_v01,
2906 					   cal_id),
2907 	},
2908 	{
2909 		.data_type      = QMI_UNSIGNED_4_BYTE,
2910 		.elem_len       = 1,
2911 		.elem_size      = sizeof(u32),
2912 		.array_type       = NO_ARRAY,
2913 		.tlv_type       = 0x02,
2914 		.offset         = offsetof(struct
2915 					   wlfw_initiate_cal_update_ind_msg_v01,
2916 					   total_size),
2917 	},
2918 	{
2919 		.data_type      = QMI_OPT_FLAG,
2920 		.elem_len       = 1,
2921 		.elem_size      = sizeof(u8),
2922 		.array_type       = NO_ARRAY,
2923 		.tlv_type       = 0x10,
2924 		.offset         = offsetof(struct
2925 					   wlfw_initiate_cal_update_ind_msg_v01,
2926 					   cal_data_location_valid),
2927 	},
2928 	{
2929 		.data_type      = QMI_UNSIGNED_4_BYTE,
2930 		.elem_len       = 1,
2931 		.elem_size      = sizeof(u32),
2932 		.array_type       = NO_ARRAY,
2933 		.tlv_type       = 0x10,
2934 		.offset         = offsetof(struct
2935 					   wlfw_initiate_cal_update_ind_msg_v01,
2936 					   cal_data_location),
2937 	},
2938 	{
2939 		.data_type      = QMI_EOTI,
2940 		.array_type       = NO_ARRAY,
2941 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2942 	},
2943 };
2944 EXPORT_SYMBOL(wlfw_initiate_cal_update_ind_msg_v01_ei);
2945 
2946 struct qmi_elem_info wlfw_cal_update_req_msg_v01_ei[] = {
2947 	{
2948 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2949 		.elem_len       = 1,
2950 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
2951 		.array_type       = NO_ARRAY,
2952 		.tlv_type       = 0x01,
2953 		.offset         = offsetof(struct
2954 					   wlfw_cal_update_req_msg_v01,
2955 					   cal_id),
2956 	},
2957 	{
2958 		.data_type      = QMI_UNSIGNED_4_BYTE,
2959 		.elem_len       = 1,
2960 		.elem_size      = sizeof(u32),
2961 		.array_type       = NO_ARRAY,
2962 		.tlv_type       = 0x02,
2963 		.offset         = offsetof(struct
2964 					   wlfw_cal_update_req_msg_v01,
2965 					   seg_id),
2966 	},
2967 	{
2968 		.data_type      = QMI_EOTI,
2969 		.array_type       = NO_ARRAY,
2970 		.tlv_type       = QMI_COMMON_TLV_TYPE,
2971 	},
2972 };
2973 EXPORT_SYMBOL(wlfw_cal_update_req_msg_v01_ei);
2974 
2975 struct qmi_elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
2976 	{
2977 		.data_type      = QMI_STRUCT,
2978 		.elem_len       = 1,
2979 		.elem_size      = sizeof(struct qmi_response_type_v01),
2980 		.array_type       = NO_ARRAY,
2981 		.tlv_type       = 0x02,
2982 		.offset         = offsetof(struct
2983 					   wlfw_cal_update_resp_msg_v01,
2984 					   resp),
2985 		.ei_array      = qmi_response_type_v01_ei,
2986 	},
2987 	{
2988 		.data_type      = QMI_OPT_FLAG,
2989 		.elem_len       = 1,
2990 		.elem_size      = sizeof(u8),
2991 		.array_type       = NO_ARRAY,
2992 		.tlv_type       = 0x10,
2993 		.offset         = offsetof(struct
2994 					   wlfw_cal_update_resp_msg_v01,
2995 					   file_id_valid),
2996 	},
2997 	{
2998 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
2999 		.elem_len       = 1,
3000 		.elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
3001 		.array_type       = NO_ARRAY,
3002 		.tlv_type       = 0x10,
3003 		.offset         = offsetof(struct
3004 					   wlfw_cal_update_resp_msg_v01,
3005 					   file_id),
3006 	},
3007 	{
3008 		.data_type      = QMI_OPT_FLAG,
3009 		.elem_len       = 1,
3010 		.elem_size      = sizeof(u8),
3011 		.array_type       = NO_ARRAY,
3012 		.tlv_type       = 0x11,
3013 		.offset         = offsetof(struct
3014 					   wlfw_cal_update_resp_msg_v01,
3015 					   total_size_valid),
3016 	},
3017 	{
3018 		.data_type      = QMI_UNSIGNED_4_BYTE,
3019 		.elem_len       = 1,
3020 		.elem_size      = sizeof(u32),
3021 		.array_type       = NO_ARRAY,
3022 		.tlv_type       = 0x11,
3023 		.offset         = offsetof(struct
3024 					   wlfw_cal_update_resp_msg_v01,
3025 					   total_size),
3026 	},
3027 	{
3028 		.data_type      = QMI_OPT_FLAG,
3029 		.elem_len       = 1,
3030 		.elem_size      = sizeof(u8),
3031 		.array_type       = NO_ARRAY,
3032 		.tlv_type       = 0x12,
3033 		.offset         = offsetof(struct
3034 					   wlfw_cal_update_resp_msg_v01,
3035 					   seg_id_valid),
3036 	},
3037 	{
3038 		.data_type      = QMI_UNSIGNED_4_BYTE,
3039 		.elem_len       = 1,
3040 		.elem_size      = sizeof(u32),
3041 		.array_type       = NO_ARRAY,
3042 		.tlv_type       = 0x12,
3043 		.offset         = offsetof(struct
3044 					   wlfw_cal_update_resp_msg_v01,
3045 					   seg_id),
3046 	},
3047 	{
3048 		.data_type      = QMI_OPT_FLAG,
3049 		.elem_len       = 1,
3050 		.elem_size      = sizeof(u8),
3051 		.array_type       = NO_ARRAY,
3052 		.tlv_type       = 0x13,
3053 		.offset         = offsetof(struct
3054 					   wlfw_cal_update_resp_msg_v01,
3055 					   data_valid),
3056 	},
3057 	{
3058 		.data_type      = QMI_DATA_LEN,
3059 		.elem_len       = 1,
3060 		.elem_size      = sizeof(u16),
3061 		.array_type       = NO_ARRAY,
3062 		.tlv_type       = 0x13,
3063 		.offset         = offsetof(struct
3064 					   wlfw_cal_update_resp_msg_v01,
3065 					   data_len),
3066 	},
3067 	{
3068 		.data_type      = QMI_UNSIGNED_1_BYTE,
3069 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
3070 		.elem_size      = sizeof(u8),
3071 		.array_type       = VAR_LEN_ARRAY,
3072 		.tlv_type       = 0x13,
3073 		.offset         = offsetof(struct
3074 					   wlfw_cal_update_resp_msg_v01,
3075 					   data),
3076 	},
3077 	{
3078 		.data_type      = QMI_OPT_FLAG,
3079 		.elem_len       = 1,
3080 		.elem_size      = sizeof(u8),
3081 		.array_type       = NO_ARRAY,
3082 		.tlv_type       = 0x14,
3083 		.offset         = offsetof(struct
3084 					   wlfw_cal_update_resp_msg_v01,
3085 					   end_valid),
3086 	},
3087 	{
3088 		.data_type      = QMI_UNSIGNED_1_BYTE,
3089 		.elem_len       = 1,
3090 		.elem_size      = sizeof(u8),
3091 		.array_type       = NO_ARRAY,
3092 		.tlv_type       = 0x14,
3093 		.offset         = offsetof(struct
3094 					   wlfw_cal_update_resp_msg_v01,
3095 					   end),
3096 	},
3097 	{
3098 		.data_type      = QMI_OPT_FLAG,
3099 		.elem_len       = 1,
3100 		.elem_size      = sizeof(u8),
3101 		.array_type       = NO_ARRAY,
3102 		.tlv_type       = 0x15,
3103 		.offset         = offsetof(struct
3104 					   wlfw_cal_update_resp_msg_v01,
3105 					   cal_data_location_valid),
3106 	},
3107 	{
3108 		.data_type      = QMI_UNSIGNED_4_BYTE,
3109 		.elem_len       = 1,
3110 		.elem_size      = sizeof(u32),
3111 		.array_type       = NO_ARRAY,
3112 		.tlv_type       = 0x15,
3113 		.offset         = offsetof(struct
3114 					   wlfw_cal_update_resp_msg_v01,
3115 					   cal_data_location),
3116 	},
3117 	{
3118 		.data_type      = QMI_EOTI,
3119 		.array_type       = NO_ARRAY,
3120 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3121 	},
3122 };
3123 EXPORT_SYMBOL(wlfw_cal_update_resp_msg_v01_ei);
3124 
3125 struct qmi_elem_info wlfw_msa_info_req_msg_v01_ei[] = {
3126 	{
3127 		.data_type      = QMI_UNSIGNED_8_BYTE,
3128 		.elem_len       = 1,
3129 		.elem_size      = sizeof(u64),
3130 		.array_type       = NO_ARRAY,
3131 		.tlv_type       = 0x01,
3132 		.offset         = offsetof(struct
3133 					   wlfw_msa_info_req_msg_v01,
3134 					   msa_addr),
3135 	},
3136 	{
3137 		.data_type      = QMI_UNSIGNED_4_BYTE,
3138 		.elem_len       = 1,
3139 		.elem_size      = sizeof(u32),
3140 		.array_type       = NO_ARRAY,
3141 		.tlv_type       = 0x02,
3142 		.offset         = offsetof(struct
3143 					   wlfw_msa_info_req_msg_v01,
3144 					   size),
3145 	},
3146 	{
3147 		.data_type      = QMI_EOTI,
3148 		.array_type       = NO_ARRAY,
3149 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3150 	},
3151 };
3152 EXPORT_SYMBOL(wlfw_msa_info_req_msg_v01_ei);
3153 
3154 struct qmi_elem_info wlfw_msa_info_resp_msg_v01_ei[] = {
3155 	{
3156 		.data_type      = QMI_STRUCT,
3157 		.elem_len       = 1,
3158 		.elem_size      = sizeof(struct qmi_response_type_v01),
3159 		.array_type       = NO_ARRAY,
3160 		.tlv_type       = 0x02,
3161 		.offset         = offsetof(struct
3162 					   wlfw_msa_info_resp_msg_v01,
3163 					   resp),
3164 		.ei_array      = qmi_response_type_v01_ei,
3165 	},
3166 	{
3167 		.data_type      = QMI_DATA_LEN,
3168 		.elem_len       = 1,
3169 		.elem_size      = sizeof(u8),
3170 		.array_type       = NO_ARRAY,
3171 		.tlv_type       = 0x03,
3172 		.offset         = offsetof(struct
3173 					   wlfw_msa_info_resp_msg_v01,
3174 					   mem_region_info_len),
3175 	},
3176 	{
3177 		.data_type      = QMI_STRUCT,
3178 		.elem_len       = QMI_WLFW_MAX_NUM_MEMORY_REGIONS_V01,
3179 		.elem_size      = sizeof(struct wlfw_memory_region_info_s_v01),
3180 		.array_type       = VAR_LEN_ARRAY,
3181 		.tlv_type       = 0x03,
3182 		.offset         = offsetof(struct
3183 					   wlfw_msa_info_resp_msg_v01,
3184 					   mem_region_info),
3185 		.ei_array      = wlfw_memory_region_info_s_v01_ei,
3186 	},
3187 	{
3188 		.data_type      = QMI_EOTI,
3189 		.array_type       = NO_ARRAY,
3190 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3191 	},
3192 };
3193 EXPORT_SYMBOL(wlfw_msa_info_resp_msg_v01_ei);
3194 
3195 struct qmi_elem_info wlfw_msa_ready_req_msg_v01_ei[] = {
3196 	{
3197 		.data_type      = QMI_EOTI,
3198 		.array_type       = NO_ARRAY,
3199 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3200 	},
3201 };
3202 EXPORT_SYMBOL(wlfw_msa_ready_req_msg_v01_ei);
3203 
3204 struct qmi_elem_info wlfw_msa_ready_resp_msg_v01_ei[] = {
3205 	{
3206 		.data_type      = QMI_STRUCT,
3207 		.elem_len       = 1,
3208 		.elem_size      = sizeof(struct qmi_response_type_v01),
3209 		.array_type       = NO_ARRAY,
3210 		.tlv_type       = 0x02,
3211 		.offset         = offsetof(struct
3212 					   wlfw_msa_ready_resp_msg_v01,
3213 					   resp),
3214 		.ei_array      = qmi_response_type_v01_ei,
3215 	},
3216 	{
3217 		.data_type      = QMI_EOTI,
3218 		.array_type       = NO_ARRAY,
3219 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3220 	},
3221 };
3222 EXPORT_SYMBOL(wlfw_msa_ready_resp_msg_v01_ei);
3223 
3224 struct qmi_elem_info wlfw_ini_req_msg_v01_ei[] = {
3225 	{
3226 		.data_type      = QMI_OPT_FLAG,
3227 		.elem_len       = 1,
3228 		.elem_size      = sizeof(u8),
3229 		.array_type       = NO_ARRAY,
3230 		.tlv_type       = 0x10,
3231 		.offset         = offsetof(struct
3232 					   wlfw_ini_req_msg_v01,
3233 					   enablefwlog_valid),
3234 	},
3235 	{
3236 		.data_type      = QMI_UNSIGNED_1_BYTE,
3237 		.elem_len       = 1,
3238 		.elem_size      = sizeof(u8),
3239 		.array_type       = NO_ARRAY,
3240 		.tlv_type       = 0x10,
3241 		.offset         = offsetof(struct
3242 					   wlfw_ini_req_msg_v01,
3243 					   enablefwlog),
3244 	},
3245 	{
3246 		.data_type      = QMI_EOTI,
3247 		.array_type       = NO_ARRAY,
3248 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3249 	},
3250 };
3251 EXPORT_SYMBOL(wlfw_ini_req_msg_v01_ei);
3252 
3253 struct qmi_elem_info wlfw_ini_resp_msg_v01_ei[] = {
3254 	{
3255 		.data_type      = QMI_STRUCT,
3256 		.elem_len       = 1,
3257 		.elem_size      = sizeof(struct qmi_response_type_v01),
3258 		.array_type       = NO_ARRAY,
3259 		.tlv_type       = 0x02,
3260 		.offset         = offsetof(struct
3261 					   wlfw_ini_resp_msg_v01,
3262 					   resp),
3263 		.ei_array      = qmi_response_type_v01_ei,
3264 	},
3265 	{
3266 		.data_type      = QMI_EOTI,
3267 		.array_type       = NO_ARRAY,
3268 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3269 	},
3270 };
3271 EXPORT_SYMBOL(wlfw_ini_resp_msg_v01_ei);
3272 
3273 struct qmi_elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
3274 	{
3275 		.data_type      = QMI_UNSIGNED_4_BYTE,
3276 		.elem_len       = 1,
3277 		.elem_size      = sizeof(u32),
3278 		.array_type       = NO_ARRAY,
3279 		.tlv_type       = 0x01,
3280 		.offset         = offsetof(struct
3281 					   wlfw_athdiag_read_req_msg_v01,
3282 					   offset),
3283 	},
3284 	{
3285 		.data_type      = QMI_UNSIGNED_4_BYTE,
3286 		.elem_len       = 1,
3287 		.elem_size      = sizeof(u32),
3288 		.array_type       = NO_ARRAY,
3289 		.tlv_type       = 0x02,
3290 		.offset         = offsetof(struct
3291 					   wlfw_athdiag_read_req_msg_v01,
3292 					   mem_type),
3293 	},
3294 	{
3295 		.data_type      = QMI_UNSIGNED_4_BYTE,
3296 		.elem_len       = 1,
3297 		.elem_size      = sizeof(u32),
3298 		.array_type       = NO_ARRAY,
3299 		.tlv_type       = 0x03,
3300 		.offset         = offsetof(struct
3301 					   wlfw_athdiag_read_req_msg_v01,
3302 					   data_len),
3303 	},
3304 	{
3305 		.data_type      = QMI_EOTI,
3306 		.array_type       = NO_ARRAY,
3307 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3308 	},
3309 };
3310 EXPORT_SYMBOL(wlfw_athdiag_read_req_msg_v01_ei);
3311 
3312 struct qmi_elem_info wlfw_athdiag_read_resp_msg_v01_ei[] = {
3313 	{
3314 		.data_type      = QMI_STRUCT,
3315 		.elem_len       = 1,
3316 		.elem_size      = sizeof(struct qmi_response_type_v01),
3317 		.array_type       = NO_ARRAY,
3318 		.tlv_type       = 0x02,
3319 		.offset         = offsetof(struct
3320 					   wlfw_athdiag_read_resp_msg_v01,
3321 					   resp),
3322 		.ei_array      = qmi_response_type_v01_ei,
3323 	},
3324 	{
3325 		.data_type      = QMI_OPT_FLAG,
3326 		.elem_len       = 1,
3327 		.elem_size      = sizeof(u8),
3328 		.array_type       = NO_ARRAY,
3329 		.tlv_type       = 0x10,
3330 		.offset         = offsetof(struct
3331 					   wlfw_athdiag_read_resp_msg_v01,
3332 					   data_valid),
3333 	},
3334 	{
3335 		.data_type      = QMI_DATA_LEN,
3336 		.elem_len       = 1,
3337 		.elem_size      = sizeof(u16),
3338 		.array_type       = NO_ARRAY,
3339 		.tlv_type       = 0x10,
3340 		.offset         = offsetof(struct
3341 					   wlfw_athdiag_read_resp_msg_v01,
3342 					   data_len),
3343 	},
3344 	{
3345 		.data_type      = QMI_UNSIGNED_1_BYTE,
3346 		.elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
3347 		.elem_size      = sizeof(u8),
3348 		.array_type       = VAR_LEN_ARRAY,
3349 		.tlv_type       = 0x10,
3350 		.offset         = offsetof(struct
3351 					   wlfw_athdiag_read_resp_msg_v01,
3352 					   data),
3353 	},
3354 	{
3355 		.data_type      = QMI_EOTI,
3356 		.array_type       = NO_ARRAY,
3357 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3358 	},
3359 };
3360 EXPORT_SYMBOL(wlfw_athdiag_read_resp_msg_v01_ei);
3361 
3362 struct qmi_elem_info wlfw_athdiag_write_req_msg_v01_ei[] = {
3363 	{
3364 		.data_type      = QMI_UNSIGNED_4_BYTE,
3365 		.elem_len       = 1,
3366 		.elem_size      = sizeof(u32),
3367 		.array_type       = NO_ARRAY,
3368 		.tlv_type       = 0x01,
3369 		.offset         = offsetof(struct
3370 					   wlfw_athdiag_write_req_msg_v01,
3371 					   offset),
3372 	},
3373 	{
3374 		.data_type      = QMI_UNSIGNED_4_BYTE,
3375 		.elem_len       = 1,
3376 		.elem_size      = sizeof(u32),
3377 		.array_type       = NO_ARRAY,
3378 		.tlv_type       = 0x02,
3379 		.offset         = offsetof(struct
3380 					   wlfw_athdiag_write_req_msg_v01,
3381 					   mem_type),
3382 	},
3383 	{
3384 		.data_type      = QMI_DATA_LEN,
3385 		.elem_len       = 1,
3386 		.elem_size      = sizeof(u16),
3387 		.array_type       = NO_ARRAY,
3388 		.tlv_type       = 0x03,
3389 		.offset         = offsetof(struct
3390 					   wlfw_athdiag_write_req_msg_v01,
3391 					   data_len),
3392 	},
3393 	{
3394 		.data_type      = QMI_UNSIGNED_1_BYTE,
3395 		.elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
3396 		.elem_size      = sizeof(u8),
3397 		.array_type       = VAR_LEN_ARRAY,
3398 		.tlv_type       = 0x03,
3399 		.offset         = offsetof(struct
3400 					   wlfw_athdiag_write_req_msg_v01,
3401 					   data),
3402 	},
3403 	{
3404 		.data_type      = QMI_EOTI,
3405 		.array_type       = NO_ARRAY,
3406 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3407 	},
3408 };
3409 EXPORT_SYMBOL(wlfw_athdiag_write_req_msg_v01_ei);
3410 
3411 struct qmi_elem_info wlfw_athdiag_write_resp_msg_v01_ei[] = {
3412 	{
3413 		.data_type      = QMI_STRUCT,
3414 		.elem_len       = 1,
3415 		.elem_size      = sizeof(struct qmi_response_type_v01),
3416 		.array_type       = NO_ARRAY,
3417 		.tlv_type       = 0x02,
3418 		.offset         = offsetof(struct
3419 					   wlfw_athdiag_write_resp_msg_v01,
3420 					   resp),
3421 		.ei_array      = qmi_response_type_v01_ei,
3422 	},
3423 	{
3424 		.data_type      = QMI_EOTI,
3425 		.array_type       = NO_ARRAY,
3426 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3427 	},
3428 };
3429 EXPORT_SYMBOL(wlfw_athdiag_write_resp_msg_v01_ei);
3430 
3431 struct qmi_elem_info wlfw_vbatt_req_msg_v01_ei[] = {
3432 	{
3433 		.data_type      = QMI_UNSIGNED_8_BYTE,
3434 		.elem_len       = 1,
3435 		.elem_size      = sizeof(u64),
3436 		.array_type       = NO_ARRAY,
3437 		.tlv_type       = 0x01,
3438 		.offset         = offsetof(struct
3439 					   wlfw_vbatt_req_msg_v01,
3440 					   voltage_uv),
3441 	},
3442 	{
3443 		.data_type      = QMI_EOTI,
3444 		.array_type       = NO_ARRAY,
3445 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3446 	},
3447 };
3448 EXPORT_SYMBOL(wlfw_vbatt_req_msg_v01_ei);
3449 
3450 struct qmi_elem_info wlfw_vbatt_resp_msg_v01_ei[] = {
3451 	{
3452 		.data_type      = QMI_STRUCT,
3453 		.elem_len       = 1,
3454 		.elem_size      = sizeof(struct qmi_response_type_v01),
3455 		.array_type       = NO_ARRAY,
3456 		.tlv_type       = 0x02,
3457 		.offset         = offsetof(struct
3458 					   wlfw_vbatt_resp_msg_v01,
3459 					   resp),
3460 		.ei_array      = qmi_response_type_v01_ei,
3461 	},
3462 	{
3463 		.data_type      = QMI_EOTI,
3464 		.array_type       = NO_ARRAY,
3465 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3466 	},
3467 };
3468 EXPORT_SYMBOL(wlfw_vbatt_resp_msg_v01_ei);
3469 
3470 struct qmi_elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
3471 	{
3472 		.data_type      = QMI_OPT_FLAG,
3473 		.elem_len       = 1,
3474 		.elem_size      = sizeof(u8),
3475 		.array_type       = NO_ARRAY,
3476 		.tlv_type       = 0x10,
3477 		.offset         = offsetof(struct
3478 					   wlfw_mac_addr_req_msg_v01,
3479 					   mac_addr_valid),
3480 	},
3481 	{
3482 		.data_type      = QMI_UNSIGNED_1_BYTE,
3483 		.elem_len       = QMI_WLFW_MAC_ADDR_SIZE_V01,
3484 		.elem_size      = sizeof(u8),
3485 		.array_type       = STATIC_ARRAY,
3486 		.tlv_type       = 0x10,
3487 		.offset         = offsetof(struct
3488 					   wlfw_mac_addr_req_msg_v01,
3489 					   mac_addr),
3490 	},
3491 	{
3492 		.data_type      = QMI_EOTI,
3493 		.array_type       = NO_ARRAY,
3494 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3495 	},
3496 };
3497 EXPORT_SYMBOL(wlfw_mac_addr_req_msg_v01_ei);
3498 
3499 struct qmi_elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {
3500 	{
3501 		.data_type      = QMI_STRUCT,
3502 		.elem_len       = 1,
3503 		.elem_size      = sizeof(struct qmi_response_type_v01),
3504 		.array_type       = NO_ARRAY,
3505 		.tlv_type       = 0x02,
3506 		.offset         = offsetof(struct
3507 					   wlfw_mac_addr_resp_msg_v01,
3508 					   resp),
3509 		.ei_array      = qmi_response_type_v01_ei,
3510 	},
3511 	{
3512 		.data_type      = QMI_EOTI,
3513 		.array_type       = NO_ARRAY,
3514 		.tlv_type       = QMI_COMMON_TLV_TYPE,
3515 	},
3516 };
3517 EXPORT_SYMBOL(wlfw_mac_addr_resp_msg_v01_ei);
3518 
3519 struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = {
3520 	{
3521 		.data_type      = QMI_OPT_FLAG,
3522 		.elem_len       = 1,
3523 		.elem_size      = sizeof(u8),
3524 		.array_type       = NO_ARRAY,
3525 		.tlv_type       = 0x10,
3526 		.offset         = offsetof(struct
3527 					   wlfw_host_cap_req_msg_v01,
3528 					   num_clients_valid),
3529 	},
3530 	{
3531 		.data_type      = QMI_UNSIGNED_4_BYTE,
3532 		.elem_len       = 1,
3533 		.elem_size      = sizeof(u32),
3534 		.array_type       = NO_ARRAY,
3535 		.tlv_type       = 0x10,
3536 		.offset         = offsetof(struct
3537 					   wlfw_host_cap_req_msg_v01,
3538 					   num_clients),
3539 	},
3540 	{
3541 		.data_type      = QMI_OPT_FLAG,
3542 		.elem_len       = 1,
3543 		.elem_size      = sizeof(u8),
3544 		.array_type       = NO_ARRAY,
3545 		.tlv_type       = 0x11,
3546 		.offset         = offsetof(struct
3547 					   wlfw_host_cap_req_msg_v01,
3548 					   wake_msi_valid),
3549 	},
3550 	{
3551 		.data_type      = QMI_UNSIGNED_4_BYTE,
3552 		.elem_len       = 1,
3553 		.elem_size      = sizeof(u32),
3554 		.array_type       = NO_ARRAY,
3555 		.tlv_type       = 0x11,
3556 		.offset         = offsetof(struct
3557 					   wlfw_host_cap_req_msg_v01,
3558 					   wake_msi),
3559 	},
3560 	{
3561 		.data_type      = QMI_OPT_FLAG,
3562 		.elem_len       = 1,
3563 		.elem_size      = sizeof(u8),
3564 		.array_type       = NO_ARRAY,
3565 		.tlv_type       = 0x12,
3566 		.offset         = offsetof(struct
3567 					   wlfw_host_cap_req_msg_v01,
3568 					   gpios_valid),
3569 	},
3570 	{
3571 		.data_type      = QMI_DATA_LEN,
3572 		.elem_len       = 1,
3573 		.elem_size      = sizeof(u8),
3574 		.array_type       = NO_ARRAY,
3575 		.tlv_type       = 0x12,
3576 		.offset         = offsetof(struct
3577 					   wlfw_host_cap_req_msg_v01,
3578 					   gpios_len),
3579 	},
3580 	{
3581 		.data_type      = QMI_UNSIGNED_4_BYTE,
3582 		.elem_len       = QMI_WLFW_MAX_NUM_GPIO_V01,
3583 		.elem_size      = sizeof(u32),
3584 		.array_type       = VAR_LEN_ARRAY,
3585 		.tlv_type       = 0x12,
3586 		.offset         = offsetof(struct
3587 					   wlfw_host_cap_req_msg_v01,
3588 					   gpios),
3589 	},
3590 	{
3591 		.data_type      = QMI_OPT_FLAG,
3592 		.elem_len       = 1,
3593 		.elem_size      = sizeof(u8),
3594 		.array_type       = NO_ARRAY,
3595 		.tlv_type       = 0x13,
3596 		.offset         = offsetof(struct
3597 					   wlfw_host_cap_req_msg_v01,
3598 					   nm_modem_valid),
3599 	},
3600 	{
3601 		.data_type      = QMI_UNSIGNED_1_BYTE,
3602 		.elem_len       = 1,
3603 		.elem_size      = sizeof(u8),
3604 		.array_type       = NO_ARRAY,
3605 		.tlv_type       = 0x13,
3606 		.offset         = offsetof(struct
3607 					   wlfw_host_cap_req_msg_v01,
3608 					   nm_modem),
3609 	},
3610 	{
3611 		.data_type      = QMI_OPT_FLAG,
3612 		.elem_len       = 1,
3613 		.elem_size      = sizeof(u8),
3614 		.array_type       = NO_ARRAY,
3615 		.tlv_type       = 0x14,
3616 		.offset         = offsetof(struct
3617 					   wlfw_host_cap_req_msg_v01,
3618 					   bdf_support_valid),
3619 	},
3620 	{
3621 		.data_type      = QMI_UNSIGNED_1_BYTE,
3622 		.elem_len       = 1,
3623 		.elem_size      = sizeof(u8),
3624 		.array_type       = NO_ARRAY,
3625 		.tlv_type       = 0x14,
3626 		.offset         = offsetof(struct
3627 					   wlfw_host_cap_req_msg_v01,
3628 					   bdf_support),
3629 	},
3630 	{
3631 		.data_type      = QMI_OPT_FLAG,
3632 		.elem_len       = 1,
3633 		.elem_size      = sizeof(u8),
3634 		.array_type       = NO_ARRAY,
3635 		.tlv_type       = 0x15,
3636 		.offset         = offsetof(struct
3637 					   wlfw_host_cap_req_msg_v01,
3638 					   bdf_cache_support_valid),
3639 	},
3640 	{
3641 		.data_type      = QMI_UNSIGNED_1_BYTE,
3642 		.elem_len       = 1,
3643 		.elem_size      = sizeof(u8),
3644 		.array_type       = NO_ARRAY,
3645 		.tlv_type       = 0x15,
3646 		.offset         = offsetof(struct
3647 					   wlfw_host_cap_req_msg_v01,
3648 					   bdf_cache_support),
3649 	},
3650 	{
3651 		.data_type      = QMI_OPT_FLAG,
3652 		.elem_len       = 1,
3653 		.elem_size      = sizeof(u8),
3654 		.array_type       = NO_ARRAY,
3655 		.tlv_type       = 0x16,
3656 		.offset         = offsetof(struct
3657 					   wlfw_host_cap_req_msg_v01,
3658 					   m3_support_valid),
3659 	},
3660 	{
3661 		.data_type      = QMI_UNSIGNED_1_BYTE,
3662 		.elem_len       = 1,
3663 		.elem_size      = sizeof(u8),
3664 		.array_type       = NO_ARRAY,
3665 		.tlv_type       = 0x16,
3666 		.offset         = offsetof(struct
3667 					   wlfw_host_cap_req_msg_v01,
3668 					   m3_support),
3669 	},
3670 	{
3671 		.data_type      = QMI_OPT_FLAG,
3672 		.elem_len       = 1,
3673 		.elem_size      = sizeof(u8),
3674 		.array_type       = NO_ARRAY,
3675 		.tlv_type       = 0x17,
3676 		.offset         = offsetof(struct
3677 					   wlfw_host_cap_req_msg_v01,
3678 					   m3_cache_support_valid),
3679 	},
3680 	{
3681 		.data_type      = QMI_UNSIGNED_1_BYTE,
3682 		.elem_len       = 1,
3683 		.elem_size      = sizeof(u8),
3684 		.array_type       = NO_ARRAY,
3685 		.tlv_type       = 0x17,
3686 		.offset         = offsetof(struct
3687 					   wlfw_host_cap_req_msg_v01,
3688 					   m3_cache_support),
3689 	},
3690 	{
3691 		.data_type      = QMI_OPT_FLAG,
3692 		.elem_len       = 1,
3693 		.elem_size      = sizeof(u8),
3694 		.array_type       = NO_ARRAY,
3695 		.tlv_type       = 0x18,
3696 		.offset         = offsetof(struct
3697 					   wlfw_host_cap_req_msg_v01,
3698 					   cal_filesys_support_valid),
3699 	},
3700 	{
3701 		.data_type      = QMI_UNSIGNED_1_BYTE,
3702 		.elem_len       = 1,
3703 		.elem_size      = sizeof(u8),
3704 		.array_type       = NO_ARRAY,
3705 		.tlv_type       = 0x18,
3706 		.offset         = offsetof(struct
3707 					   wlfw_host_cap_req_msg_v01,
3708 					   cal_filesys_support),
3709 	},
3710 	{
3711 		.data_type      = QMI_OPT_FLAG,
3712 		.elem_len       = 1,
3713 		.elem_size      = sizeof(u8),
3714 		.array_type       = NO_ARRAY,
3715 		.tlv_type       = 0x19,
3716 		.offset         = offsetof(struct
3717 					   wlfw_host_cap_req_msg_v01,
3718 					   cal_cache_support_valid),
3719 	},
3720 	{
3721 		.data_type      = QMI_UNSIGNED_1_BYTE,
3722 		.elem_len       = 1,
3723 		.elem_size      = sizeof(u8),
3724 		.array_type       = NO_ARRAY,
3725 		.tlv_type       = 0x19,
3726 		.offset         = offsetof(struct
3727 					   wlfw_host_cap_req_msg_v01,
3728 					   cal_cache_support),
3729 	},
3730 	{
3731 		.data_type      = QMI_OPT_FLAG,
3732 		.elem_len       = 1,
3733 		.elem_size      = sizeof(u8),
3734 		.array_type       = NO_ARRAY,
3735 		.tlv_type       = 0x1A,
3736 		.offset         = offsetof(struct
3737 					   wlfw_host_cap_req_msg_v01,
3738 					   cal_done_valid),
3739 	},
3740 	{
3741 		.data_type      = QMI_UNSIGNED_1_BYTE,
3742 		.elem_len       = 1,
3743 		.elem_size      = sizeof(u8),
3744 		.array_type       = NO_ARRAY,
3745 		.tlv_type       = 0x1A,
3746 		.offset         = offsetof(struct
3747 					   wlfw_host_cap_req_msg_v01,
3748 					   cal_done),
3749 	},
3750 	{
3751 		.data_type      = QMI_OPT_FLAG,
3752 		.elem_len       = 1,
3753 		.elem_size      = sizeof(u8),
3754 		.array_type       = NO_ARRAY,
3755 		.tlv_type       = 0x1B,
3756 		.offset         = offsetof(struct
3757 					   wlfw_host_cap_req_msg_v01,
3758 					   mem_bucket_valid),
3759 	},
3760 	{
3761 		.data_type      = QMI_UNSIGNED_4_BYTE,
3762 		.elem_len       = 1,
3763 		.elem_size      = sizeof(u32),
3764 		.array_type       = NO_ARRAY,
3765 		.tlv_type       = 0x1B,
3766 		.offset         = offsetof(struct
3767 					   wlfw_host_cap_req_msg_v01,
3768 					   mem_bucket),
3769 	},
3770 	{
3771 		.data_type      = QMI_OPT_FLAG,
3772 		.elem_len       = 1,
3773 		.elem_size      = sizeof(u8),
3774 		.array_type       = NO_ARRAY,
3775 		.tlv_type       = 0x1C,
3776 		.offset         = offsetof(struct
3777 					   wlfw_host_cap_req_msg_v01,
3778 					   mem_cfg_mode_valid),
3779 	},
3780 	{
3781 		.data_type      = QMI_UNSIGNED_1_BYTE,
3782 		.elem_len       = 1,
3783 		.elem_size      = sizeof(u8),
3784 		.array_type       = NO_ARRAY,
3785 		.tlv_type       = 0x1C,
3786 		.offset         = offsetof(struct
3787 					   wlfw_host_cap_req_msg_v01,
3788 					   mem_cfg_mode),
3789 	},
3790 	{
3791 		.data_type      = QMI_OPT_FLAG,
3792 		.elem_len       = 1,
3793 		.elem_size      = sizeof(u8),
3794 		.array_type       = NO_ARRAY,
3795 		.tlv_type       = 0x1D,
3796 		.offset         = offsetof(struct
3797 					   wlfw_host_cap_req_msg_v01,
3798 					   cal_duration_valid),
3799 	},
3800 	{
3801 		.data_type      = QMI_UNSIGNED_2_BYTE,
3802 		.elem_len       = 1,
3803 		.elem_size      = sizeof(u16),
3804 		.array_type       = NO_ARRAY,
3805 		.tlv_type       = 0x1D,
3806 		.offset         = offsetof(struct
3807 					   wlfw_host_cap_req_msg_v01,
3808 					   cal_duration),
3809 	},
3810 	{
3811 		.data_type      = QMI_OPT_FLAG,
3812 		.elem_len       = 1,
3813 		.elem_size      = sizeof(u8),
3814 		.array_type       = NO_ARRAY,
3815 		.tlv_type       = 0x1E,
3816 		.offset         = offsetof(struct
3817 					   wlfw_host_cap_req_msg_v01,
3818 					   platform_name_valid),
3819 	},
3820 	{
3821 		.data_type      = QMI_STRING,
3822 		.elem_len       = QMI_WLFW_MAX_PLATFORM_NAME_LEN_V01 + 1,
3823 		.elem_size      = sizeof(char),
3824 		.array_type       = NO_ARRAY,
3825 		.tlv_type       = 0x1E,
3826 		.offset         = offsetof(struct
3827 					   wlfw_host_cap_req_msg_v01,
3828 					   platform_name),
3829 	},
3830 	{
3831 		.data_type      = QMI_OPT_FLAG,
3832 		.elem_len       = 1,
3833 		.elem_size      = sizeof(u8),
3834 		.array_type       = NO_ARRAY,
3835 		.tlv_type       = 0x1F,
3836 		.offset         = offsetof(struct
3837 					   wlfw_host_cap_req_msg_v01,
3838 					   ddr_range_valid),
3839 	},
3840 	{
3841 		.data_type      = QMI_STRUCT,
3842 		.elem_len       = QMI_WLFW_MAX_HOST_DDR_RANGE_SIZE_V01,
3843 		.elem_size      = sizeof(struct wlfw_host_ddr_range_s_v01),
3844 		.array_type       = STATIC_ARRAY,
3845 		.tlv_type       = 0x1F,
3846 		.offset         = offsetof(struct
3847 					   wlfw_host_cap_req_msg_v01,
3848 					   ddr_range),
3849 		.ei_array      = wlfw_host_ddr_range_s_v01_ei,
3850 	},
3851 	{
3852 		.data_type      = QMI_OPT_FLAG,
3853 		.elem_len       = 1,
3854 		.elem_size      = sizeof(u8),
3855 		.array_type       = NO_ARRAY,
3856 		.tlv_type       = 0x20,
3857 		.offset         = offsetof(struct
3858 					   wlfw_host_cap_req_msg_v01,
3859 					   host_build_type_valid),
3860 	},
3861 	{
3862 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
3863 		.elem_len       = 1,
3864 		.elem_size      = sizeof(enum wlfw_host_build_type_v01),
3865 		.array_type       = NO_ARRAY,
3866 		.tlv_type       = 0x20,
3867 		.offset         = offsetof(struct
3868 					   wlfw_host_cap_req_msg_v01,
3869 					   host_build_type),
3870 	},
3871 	{
3872 		.data_type      = QMI_OPT_FLAG,
3873 		.elem_len       = 1,
3874 		.elem_size      = sizeof(u8),
3875 		.array_type       = NO_ARRAY,
3876 		.tlv_type       = 0x21,
3877 		.offset         = offsetof(struct
3878 					   wlfw_host_cap_req_msg_v01,
3879 					   mlo_capable_valid),
3880 	},
3881 	{
3882 		.data_type      = QMI_UNSIGNED_1_BYTE,
3883 		.elem_len       = 1,
3884 		.elem_size      = sizeof(u8),
3885 		.array_type       = NO_ARRAY,
3886 		.tlv_type       = 0x21,
3887 		.offset         = offsetof(struct
3888 					   wlfw_host_cap_req_msg_v01,
3889 					   mlo_capable),
3890 	},
3891 	{
3892 		.data_type      = QMI_OPT_FLAG,
3893 		.elem_len       = 1,
3894 		.elem_size      = sizeof(u8),
3895 		.array_type       = NO_ARRAY,
3896 		.tlv_type       = 0x22,
3897 		.offset         = offsetof(struct
3898 					   wlfw_host_cap_req_msg_v01,
3899 					   mlo_chip_id_valid),
3900 	},
3901 	{
3902 		.data_type      = QMI_UNSIGNED_2_BYTE,
3903 		.elem_len       = 1,
3904 		.elem_size      = sizeof(u16),
3905 		.array_type       = NO_ARRAY,
3906 		.tlv_type       = 0x22,
3907 		.offset         = offsetof(struct
3908 					   wlfw_host_cap_req_msg_v01,
3909 					   mlo_chip_id),
3910 	},
3911 	{
3912 		.data_type      = QMI_OPT_FLAG,
3913 		.elem_len       = 1,
3914 		.elem_size      = sizeof(u8),
3915 		.array_type       = NO_ARRAY,
3916 		.tlv_type       = 0x23,
3917 		.offset         = offsetof(struct
3918 					   wlfw_host_cap_req_msg_v01,
3919 					   mlo_group_id_valid),
3920 	},
3921 	{
3922 		.data_type      = QMI_UNSIGNED_1_BYTE,
3923 		.elem_len       = 1,
3924 		.elem_size      = sizeof(u8),
3925 		.array_type       = NO_ARRAY,
3926 		.tlv_type       = 0x23,
3927 		.offset         = offsetof(struct
3928 					   wlfw_host_cap_req_msg_v01,
3929 					   mlo_group_id),
3930 	},
3931 	{
3932 		.data_type      = QMI_OPT_FLAG,
3933 		.elem_len       = 1,
3934 		.elem_size      = sizeof(u8),
3935 		.array_type       = NO_ARRAY,
3936 		.tlv_type       = 0x24,
3937 		.offset         = offsetof(struct
3938 					   wlfw_host_cap_req_msg_v01,
3939 					   max_mlo_peer_valid),
3940 	},
3941 	{
3942 		.data_type      = QMI_UNSIGNED_2_BYTE,
3943 		.elem_len       = 1,
3944 		.elem_size      = sizeof(u16),
3945 		.array_type       = NO_ARRAY,
3946 		.tlv_type       = 0x24,
3947 		.offset         = offsetof(struct
3948 					   wlfw_host_cap_req_msg_v01,
3949 					   max_mlo_peer),
3950 	},
3951 	{
3952 		.data_type      = QMI_OPT_FLAG,
3953 		.elem_len       = 1,
3954 		.elem_size      = sizeof(u8),
3955 		.array_type       = NO_ARRAY,
3956 		.tlv_type       = 0x25,
3957 		.offset         = offsetof(struct
3958 					   wlfw_host_cap_req_msg_v01,
3959 					   mlo_num_chips_valid),
3960 	},
3961 	{
3962 		.data_type      = QMI_UNSIGNED_1_BYTE,
3963 		.elem_len       = 1,
3964 		.elem_size      = sizeof(u8),
3965 		.array_type       = NO_ARRAY,
3966 		.tlv_type       = 0x25,
3967 		.offset         = offsetof(struct
3968 					   wlfw_host_cap_req_msg_v01,
3969 					   mlo_num_chips),
3970 	},
3971 	{
3972 		.data_type      = QMI_OPT_FLAG,
3973 		.elem_len       = 1,
3974 		.elem_size      = sizeof(u8),
3975 		.array_type       = NO_ARRAY,
3976 		.tlv_type       = 0x26,
3977 		.offset         = offsetof(struct
3978 					   wlfw_host_cap_req_msg_v01,
3979 					   mlo_chip_info_valid),
3980 	},
3981 	{
3982 		.data_type      = QMI_STRUCT,
3983 		.elem_len       = QMI_WLFW_MAX_MLO_CHIP_V01,
3984 		.elem_size      = sizeof(struct mlo_chip_info_s_v01),
3985 		.array_type       = STATIC_ARRAY,
3986 		.tlv_type       = 0x26,
3987 		.offset         = offsetof(struct
3988 					   wlfw_host_cap_req_msg_v01,
3989 					   mlo_chip_info),
3990 		.ei_array      = mlo_chip_info_s_v01_ei,
3991 	},
3992 	{
3993 		.data_type      = QMI_OPT_FLAG,
3994 		.elem_len       = 1,
3995 		.elem_size      = sizeof(u8),
3996 		.array_type       = NO_ARRAY,
3997 		.tlv_type       = 0x27,
3998 		.offset         = offsetof(struct
3999 					   wlfw_host_cap_req_msg_v01,
4000 					   feature_list_valid),
4001 	},
4002 	{
4003 		.data_type      = QMI_UNSIGNED_8_BYTE,
4004 		.elem_len       = 1,
4005 		.elem_size      = sizeof(u64),
4006 		.array_type       = NO_ARRAY,
4007 		.tlv_type       = 0x27,
4008 		.offset         = offsetof(struct
4009 					   wlfw_host_cap_req_msg_v01,
4010 					   feature_list),
4011 	},
4012 	{
4013 		.data_type      = QMI_OPT_FLAG,
4014 		.elem_len       = 1,
4015 		.elem_size      = sizeof(u8),
4016 		.array_type       = NO_ARRAY,
4017 		.tlv_type       = 0x28,
4018 		.offset         = offsetof(struct
4019 					   wlfw_host_cap_req_msg_v01,
4020 					   num_wlan_clients_valid),
4021 	},
4022 	{
4023 		.data_type      = QMI_UNSIGNED_2_BYTE,
4024 		.elem_len       = 1,
4025 		.elem_size      = sizeof(u16),
4026 		.array_type       = NO_ARRAY,
4027 		.tlv_type       = 0x28,
4028 		.offset         = offsetof(struct
4029 					   wlfw_host_cap_req_msg_v01,
4030 					   num_wlan_clients),
4031 	},
4032 	{
4033 		.data_type      = QMI_OPT_FLAG,
4034 		.elem_len       = 1,
4035 		.elem_size      = sizeof(u8),
4036 		.array_type       = NO_ARRAY,
4037 		.tlv_type       = 0x29,
4038 		.offset         = offsetof(struct
4039 					   wlfw_host_cap_req_msg_v01,
4040 					   num_wlan_vaps_valid),
4041 	},
4042 	{
4043 		.data_type      = QMI_UNSIGNED_1_BYTE,
4044 		.elem_len       = 1,
4045 		.elem_size      = sizeof(u8),
4046 		.array_type       = NO_ARRAY,
4047 		.tlv_type       = 0x29,
4048 		.offset         = offsetof(struct
4049 					   wlfw_host_cap_req_msg_v01,
4050 					   num_wlan_vaps),
4051 	},
4052 	{
4053 		.data_type      = QMI_OPT_FLAG,
4054 		.elem_len       = 1,
4055 		.elem_size      = sizeof(u8),
4056 		.array_type       = NO_ARRAY,
4057 		.tlv_type       = 0x2A,
4058 		.offset         = offsetof(struct
4059 					   wlfw_host_cap_req_msg_v01,
4060 					   wake_msi_addr_valid),
4061 	},
4062 	{
4063 		.data_type      = QMI_UNSIGNED_4_BYTE,
4064 		.elem_len       = 1,
4065 		.elem_size      = sizeof(u32),
4066 		.array_type       = NO_ARRAY,
4067 		.tlv_type       = 0x2A,
4068 		.offset         = offsetof(struct
4069 					   wlfw_host_cap_req_msg_v01,
4070 					   wake_msi_addr),
4071 	},
4072 	{
4073 		.data_type      = QMI_OPT_FLAG,
4074 		.elem_len       = 1,
4075 		.elem_size      = sizeof(u8),
4076 		.array_type       = NO_ARRAY,
4077 		.tlv_type       = 0x2B,
4078 		.offset         = offsetof(struct
4079 					   wlfw_host_cap_req_msg_v01,
4080 					   wlan_enable_delay_valid),
4081 	},
4082 	{
4083 		.data_type      = QMI_UNSIGNED_4_BYTE,
4084 		.elem_len       = 1,
4085 		.elem_size      = sizeof(u32),
4086 		.array_type       = NO_ARRAY,
4087 		.tlv_type       = 0x2B,
4088 		.offset         = offsetof(struct
4089 					   wlfw_host_cap_req_msg_v01,
4090 					   wlan_enable_delay),
4091 	},
4092 	{
4093 		.data_type      = QMI_OPT_FLAG,
4094 		.elem_len       = 1,
4095 		.elem_size      = sizeof(u8),
4096 		.array_type       = NO_ARRAY,
4097 		.tlv_type       = 0x2C,
4098 		.offset         = offsetof(struct
4099 					   wlfw_host_cap_req_msg_v01,
4100 					   ddr_type_valid),
4101 	},
4102 	{
4103 		.data_type      = QMI_UNSIGNED_4_BYTE,
4104 		.elem_len       = 1,
4105 		.elem_size      = sizeof(u32),
4106 		.array_type       = NO_ARRAY,
4107 		.tlv_type       = 0x2C,
4108 		.offset         = offsetof(struct
4109 					   wlfw_host_cap_req_msg_v01,
4110 					   ddr_type),
4111 	},
4112 	{
4113 		.data_type      = QMI_OPT_FLAG,
4114 		.elem_len       = 1,
4115 		.elem_size      = sizeof(u8),
4116 		.array_type       = NO_ARRAY,
4117 		.tlv_type       = 0x2D,
4118 		.offset         = offsetof(struct
4119 					   wlfw_host_cap_req_msg_v01,
4120 					   gpio_info_valid),
4121 	},
4122 	{
4123 		.data_type      = QMI_DATA_LEN,
4124 		.elem_len       = 1,
4125 		.elem_size      = sizeof(u8),
4126 		.array_type       = NO_ARRAY,
4127 		.tlv_type       = 0x2D,
4128 		.offset         = offsetof(struct
4129 					   wlfw_host_cap_req_msg_v01,
4130 					   gpio_info_len),
4131 	},
4132 	{
4133 		.data_type      = QMI_UNSIGNED_4_BYTE,
4134 		.elem_len       = QMI_WLFW_MAX_NUM_GPIO_INFO_V01,
4135 		.elem_size      = sizeof(u32),
4136 		.array_type       = VAR_LEN_ARRAY,
4137 		.tlv_type       = 0x2D,
4138 		.offset         = offsetof(struct
4139 					   wlfw_host_cap_req_msg_v01,
4140 					   gpio_info),
4141 	},
4142 	{
4143 		.data_type      = QMI_OPT_FLAG,
4144 		.elem_len       = 1,
4145 		.elem_size      = sizeof(u8),
4146 		.array_type       = NO_ARRAY,
4147 		.tlv_type       = 0x2E,
4148 		.offset         = offsetof(struct
4149 					   wlfw_host_cap_req_msg_v01,
4150 					   fw_ini_cfg_support_valid),
4151 	},
4152 	{
4153 		.data_type      = QMI_UNSIGNED_1_BYTE,
4154 		.elem_len       = 1,
4155 		.elem_size      = sizeof(u8),
4156 		.array_type       = NO_ARRAY,
4157 		.tlv_type       = 0x2E,
4158 		.offset         = offsetof(struct
4159 					   wlfw_host_cap_req_msg_v01,
4160 					   fw_ini_cfg_support),
4161 	},
4162 	{
4163 		.data_type      = QMI_OPT_FLAG,
4164 		.elem_len       = 1,
4165 		.elem_size      = sizeof(u8),
4166 		.array_type       = NO_ARRAY,
4167 		.tlv_type       = 0x2F,
4168 		.offset         = offsetof(struct
4169 					   wlfw_host_cap_req_msg_v01,
4170 					   mlo_chip_v2_info_valid),
4171 	},
4172 	{
4173 		.data_type      = QMI_STRUCT,
4174 		.elem_len       = QMI_WLFW_MLO_V2_CHP_V01,
4175 		.elem_size      = sizeof(struct mlo_chip_v2_info_s_v01),
4176 		.array_type       = STATIC_ARRAY,
4177 		.tlv_type       = 0x2F,
4178 		.offset         = offsetof(struct
4179 					   wlfw_host_cap_req_msg_v01,
4180 					   mlo_chip_v2_info),
4181 		.ei_array      = mlo_chip_v2_info_s_v01_ei,
4182 	},
4183 	{
4184 		.data_type      = QMI_OPT_FLAG,
4185 		.elem_len       = 1,
4186 		.elem_size      = sizeof(u8),
4187 		.array_type       = NO_ARRAY,
4188 		.tlv_type       = 0x30,
4189 		.offset         = offsetof(struct
4190 					   wlfw_host_cap_req_msg_v01,
4191 					   pcie_link_info_valid),
4192 	},
4193 	{
4194 		.data_type      = QMI_STRUCT,
4195 		.elem_len       = 1,
4196 		.elem_size      = sizeof(struct wlfw_host_pcie_link_info_s_v01),
4197 		.array_type       = NO_ARRAY,
4198 		.tlv_type       = 0x30,
4199 		.offset         = offsetof(struct
4200 					   wlfw_host_cap_req_msg_v01,
4201 					   pcie_link_info),
4202 		.ei_array      = wlfw_host_pcie_link_info_s_v01_ei,
4203 	},
4204 	{
4205 		.data_type      = QMI_EOTI,
4206 		.array_type       = NO_ARRAY,
4207 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4208 	},
4209 };
4210 EXPORT_SYMBOL(wlfw_host_cap_req_msg_v01_ei);
4211 
4212 struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
4213 	{
4214 		.data_type      = QMI_STRUCT,
4215 		.elem_len       = 1,
4216 		.elem_size      = sizeof(struct qmi_response_type_v01),
4217 		.array_type       = NO_ARRAY,
4218 		.tlv_type       = 0x02,
4219 		.offset         = offsetof(struct
4220 					   wlfw_host_cap_resp_msg_v01,
4221 					   resp),
4222 		.ei_array      = qmi_response_type_v01_ei,
4223 	},
4224 	{
4225 		.data_type      = QMI_EOTI,
4226 		.array_type       = NO_ARRAY,
4227 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4228 	},
4229 };
4230 EXPORT_SYMBOL(wlfw_host_cap_resp_msg_v01_ei);
4231 
4232 struct qmi_elem_info wlfw_request_mem_ind_msg_v01_ei[] = {
4233 	{
4234 		.data_type      = QMI_DATA_LEN,
4235 		.elem_len       = 1,
4236 		.elem_size      = sizeof(u8),
4237 		.array_type       = NO_ARRAY,
4238 		.tlv_type       = 0x01,
4239 		.offset         = offsetof(struct
4240 					   wlfw_request_mem_ind_msg_v01,
4241 					   mem_seg_len),
4242 	},
4243 	{
4244 		.data_type      = QMI_STRUCT,
4245 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
4246 		.elem_size      = sizeof(struct wlfw_mem_seg_s_v01),
4247 		.array_type       = VAR_LEN_ARRAY,
4248 		.tlv_type       = 0x01,
4249 		.offset         = offsetof(struct
4250 					   wlfw_request_mem_ind_msg_v01,
4251 					   mem_seg),
4252 		.ei_array      = wlfw_mem_seg_s_v01_ei,
4253 	},
4254 	{
4255 		.data_type      = QMI_EOTI,
4256 		.array_type       = NO_ARRAY,
4257 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4258 	},
4259 };
4260 EXPORT_SYMBOL(wlfw_request_mem_ind_msg_v01_ei);
4261 
4262 struct qmi_elem_info wlfw_respond_mem_req_msg_v01_ei[] = {
4263 	{
4264 		.data_type      = QMI_DATA_LEN,
4265 		.elem_len       = 1,
4266 		.elem_size      = sizeof(u8),
4267 		.array_type       = NO_ARRAY,
4268 		.tlv_type       = 0x01,
4269 		.offset         = offsetof(struct
4270 					   wlfw_respond_mem_req_msg_v01,
4271 					   mem_seg_len),
4272 	},
4273 	{
4274 		.data_type      = QMI_STRUCT,
4275 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
4276 		.elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),
4277 		.array_type       = VAR_LEN_ARRAY,
4278 		.tlv_type       = 0x01,
4279 		.offset         = offsetof(struct
4280 					   wlfw_respond_mem_req_msg_v01,
4281 					   mem_seg),
4282 		.ei_array      = wlfw_mem_seg_resp_s_v01_ei,
4283 	},
4284 	{
4285 		.data_type      = QMI_EOTI,
4286 		.array_type       = NO_ARRAY,
4287 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4288 	},
4289 };
4290 EXPORT_SYMBOL(wlfw_respond_mem_req_msg_v01_ei);
4291 
4292 struct qmi_elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {
4293 	{
4294 		.data_type      = QMI_STRUCT,
4295 		.elem_len       = 1,
4296 		.elem_size      = sizeof(struct qmi_response_type_v01),
4297 		.array_type       = NO_ARRAY,
4298 		.tlv_type       = 0x02,
4299 		.offset         = offsetof(struct
4300 					   wlfw_respond_mem_resp_msg_v01,
4301 					   resp),
4302 		.ei_array      = qmi_response_type_v01_ei,
4303 	},
4304 	{
4305 		.data_type      = QMI_OPT_FLAG,
4306 		.elem_len       = 1,
4307 		.elem_size      = sizeof(u8),
4308 		.array_type       = NO_ARRAY,
4309 		.tlv_type       = 0x10,
4310 		.offset         = offsetof(struct
4311 					   wlfw_respond_mem_resp_msg_v01,
4312 					   share_mem_valid),
4313 	},
4314 	{
4315 		.data_type      = QMI_DATA_LEN,
4316 		.elem_len       = 1,
4317 		.elem_size      = sizeof(u8),
4318 		.array_type       = NO_ARRAY,
4319 		.tlv_type       = 0x10,
4320 		.offset         = offsetof(struct
4321 					   wlfw_respond_mem_resp_msg_v01,
4322 					   share_mem_len),
4323 	},
4324 	{
4325 		.data_type      = QMI_STRUCT,
4326 		.elem_len       = QMI_WLFW_MAX_NUM_SHARE_MEM_V01,
4327 		.elem_size      = sizeof(struct wlfw_share_mem_info_s_v01),
4328 		.array_type       = VAR_LEN_ARRAY,
4329 		.tlv_type       = 0x10,
4330 		.offset         = offsetof(struct
4331 					   wlfw_respond_mem_resp_msg_v01,
4332 					   share_mem),
4333 		.ei_array      = wlfw_share_mem_info_s_v01_ei,
4334 	},
4335 	{
4336 		.data_type      = QMI_EOTI,
4337 		.array_type       = NO_ARRAY,
4338 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4339 	},
4340 };
4341 EXPORT_SYMBOL(wlfw_respond_mem_resp_msg_v01_ei);
4342 
4343 struct qmi_elem_info wlfw_fw_mem_ready_ind_msg_v01_ei[] = {
4344 	{
4345 		.data_type      = QMI_EOTI,
4346 		.array_type       = NO_ARRAY,
4347 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4348 	},
4349 };
4350 EXPORT_SYMBOL(wlfw_fw_mem_ready_ind_msg_v01_ei);
4351 
4352 struct qmi_elem_info wlfw_fw_init_done_ind_msg_v01_ei[] = {
4353 	{
4354 		.data_type      = QMI_OPT_FLAG,
4355 		.elem_len       = 1,
4356 		.elem_size      = sizeof(u8),
4357 		.array_type       = NO_ARRAY,
4358 		.tlv_type       = 0x10,
4359 		.offset         = offsetof(struct
4360 					   wlfw_fw_init_done_ind_msg_v01,
4361 					   hang_data_addr_offset_valid),
4362 	},
4363 	{
4364 		.data_type      = QMI_UNSIGNED_4_BYTE,
4365 		.elem_len       = 1,
4366 		.elem_size      = sizeof(u32),
4367 		.array_type       = NO_ARRAY,
4368 		.tlv_type       = 0x10,
4369 		.offset         = offsetof(struct
4370 					   wlfw_fw_init_done_ind_msg_v01,
4371 					   hang_data_addr_offset),
4372 	},
4373 	{
4374 		.data_type      = QMI_OPT_FLAG,
4375 		.elem_len       = 1,
4376 		.elem_size      = sizeof(u8),
4377 		.array_type       = NO_ARRAY,
4378 		.tlv_type       = 0x11,
4379 		.offset         = offsetof(struct
4380 					   wlfw_fw_init_done_ind_msg_v01,
4381 					   hang_data_length_valid),
4382 	},
4383 	{
4384 		.data_type      = QMI_UNSIGNED_2_BYTE,
4385 		.elem_len       = 1,
4386 		.elem_size      = sizeof(u16),
4387 		.array_type       = NO_ARRAY,
4388 		.tlv_type       = 0x11,
4389 		.offset         = offsetof(struct
4390 					   wlfw_fw_init_done_ind_msg_v01,
4391 					   hang_data_length),
4392 	},
4393 	{
4394 		.data_type      = QMI_OPT_FLAG,
4395 		.elem_len       = 1,
4396 		.elem_size      = sizeof(u8),
4397 		.array_type       = NO_ARRAY,
4398 		.tlv_type       = 0x12,
4399 		.offset         = offsetof(struct
4400 					   wlfw_fw_init_done_ind_msg_v01,
4401 					   soft_sku_features_valid),
4402 	},
4403 	{
4404 		.data_type      = QMI_UNSIGNED_8_BYTE,
4405 		.elem_len       = 1,
4406 		.elem_size      = sizeof(u64),
4407 		.array_type       = NO_ARRAY,
4408 		.tlv_type       = 0x12,
4409 		.offset         = offsetof(struct
4410 					   wlfw_fw_init_done_ind_msg_v01,
4411 					   soft_sku_features),
4412 	},
4413 	{
4414 		.data_type      = QMI_EOTI,
4415 		.array_type       = NO_ARRAY,
4416 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4417 	},
4418 };
4419 EXPORT_SYMBOL(wlfw_fw_init_done_ind_msg_v01_ei);
4420 
4421 struct qmi_elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {
4422 	{
4423 		.data_type      = QMI_OPT_FLAG,
4424 		.elem_len       = 1,
4425 		.elem_size      = sizeof(u8),
4426 		.array_type       = NO_ARRAY,
4427 		.tlv_type       = 0x10,
4428 		.offset         = offsetof(struct
4429 					   wlfw_rejuvenate_ind_msg_v01,
4430 					   cause_for_rejuvenation_valid),
4431 	},
4432 	{
4433 		.data_type      = QMI_UNSIGNED_1_BYTE,
4434 		.elem_len       = 1,
4435 		.elem_size      = sizeof(u8),
4436 		.array_type       = NO_ARRAY,
4437 		.tlv_type       = 0x10,
4438 		.offset         = offsetof(struct
4439 					   wlfw_rejuvenate_ind_msg_v01,
4440 					   cause_for_rejuvenation),
4441 	},
4442 	{
4443 		.data_type      = QMI_OPT_FLAG,
4444 		.elem_len       = 1,
4445 		.elem_size      = sizeof(u8),
4446 		.array_type       = NO_ARRAY,
4447 		.tlv_type       = 0x11,
4448 		.offset         = offsetof(struct
4449 					   wlfw_rejuvenate_ind_msg_v01,
4450 					   requesting_sub_system_valid),
4451 	},
4452 	{
4453 		.data_type      = QMI_UNSIGNED_1_BYTE,
4454 		.elem_len       = 1,
4455 		.elem_size      = sizeof(u8),
4456 		.array_type       = NO_ARRAY,
4457 		.tlv_type       = 0x11,
4458 		.offset         = offsetof(struct
4459 					   wlfw_rejuvenate_ind_msg_v01,
4460 					   requesting_sub_system),
4461 	},
4462 	{
4463 		.data_type      = QMI_OPT_FLAG,
4464 		.elem_len       = 1,
4465 		.elem_size      = sizeof(u8),
4466 		.array_type       = NO_ARRAY,
4467 		.tlv_type       = 0x12,
4468 		.offset         = offsetof(struct
4469 					   wlfw_rejuvenate_ind_msg_v01,
4470 					   line_number_valid),
4471 	},
4472 	{
4473 		.data_type      = QMI_UNSIGNED_2_BYTE,
4474 		.elem_len       = 1,
4475 		.elem_size      = sizeof(u16),
4476 		.array_type       = NO_ARRAY,
4477 		.tlv_type       = 0x12,
4478 		.offset         = offsetof(struct
4479 					   wlfw_rejuvenate_ind_msg_v01,
4480 					   line_number),
4481 	},
4482 	{
4483 		.data_type      = QMI_OPT_FLAG,
4484 		.elem_len       = 1,
4485 		.elem_size      = sizeof(u8),
4486 		.array_type       = NO_ARRAY,
4487 		.tlv_type       = 0x13,
4488 		.offset         = offsetof(struct
4489 					   wlfw_rejuvenate_ind_msg_v01,
4490 					   function_name_valid),
4491 	},
4492 	{
4493 		.data_type      = QMI_STRING,
4494 		.elem_len       = QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1,
4495 		.elem_size      = sizeof(char),
4496 		.array_type       = NO_ARRAY,
4497 		.tlv_type       = 0x13,
4498 		.offset         = offsetof(struct
4499 					   wlfw_rejuvenate_ind_msg_v01,
4500 					   function_name),
4501 	},
4502 	{
4503 		.data_type      = QMI_EOTI,
4504 		.array_type       = NO_ARRAY,
4505 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4506 	},
4507 };
4508 EXPORT_SYMBOL(wlfw_rejuvenate_ind_msg_v01_ei);
4509 
4510 struct qmi_elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {
4511 	{
4512 		.data_type      = QMI_EOTI,
4513 		.array_type       = NO_ARRAY,
4514 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4515 	},
4516 };
4517 EXPORT_SYMBOL(wlfw_rejuvenate_ack_req_msg_v01_ei);
4518 
4519 struct qmi_elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[] = {
4520 	{
4521 		.data_type      = QMI_STRUCT,
4522 		.elem_len       = 1,
4523 		.elem_size      = sizeof(struct qmi_response_type_v01),
4524 		.array_type       = NO_ARRAY,
4525 		.tlv_type       = 0x02,
4526 		.offset         = offsetof(struct
4527 					   wlfw_rejuvenate_ack_resp_msg_v01,
4528 					   resp),
4529 		.ei_array      = qmi_response_type_v01_ei,
4530 	},
4531 	{
4532 		.data_type      = QMI_EOTI,
4533 		.array_type       = NO_ARRAY,
4534 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4535 	},
4536 };
4537 EXPORT_SYMBOL(wlfw_rejuvenate_ack_resp_msg_v01_ei);
4538 
4539 struct qmi_elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[] = {
4540 	{
4541 		.data_type      = QMI_OPT_FLAG,
4542 		.elem_len       = 1,
4543 		.elem_size      = sizeof(u8),
4544 		.array_type       = NO_ARRAY,
4545 		.tlv_type       = 0x10,
4546 		.offset         = offsetof(struct
4547 					   wlfw_dynamic_feature_mask_req_msg_v01,
4548 					   mask_valid),
4549 	},
4550 	{
4551 		.data_type      = QMI_UNSIGNED_8_BYTE,
4552 		.elem_len       = 1,
4553 		.elem_size      = sizeof(u64),
4554 		.array_type       = NO_ARRAY,
4555 		.tlv_type       = 0x10,
4556 		.offset         = offsetof(struct
4557 					   wlfw_dynamic_feature_mask_req_msg_v01,
4558 					   mask),
4559 	},
4560 	{
4561 		.data_type      = QMI_EOTI,
4562 		.array_type       = NO_ARRAY,
4563 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4564 	},
4565 };
4566 EXPORT_SYMBOL(wlfw_dynamic_feature_mask_req_msg_v01_ei);
4567 
4568 struct qmi_elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[] = {
4569 	{
4570 		.data_type      = QMI_STRUCT,
4571 		.elem_len       = 1,
4572 		.elem_size      = sizeof(struct qmi_response_type_v01),
4573 		.array_type       = NO_ARRAY,
4574 		.tlv_type       = 0x02,
4575 		.offset         = offsetof(struct
4576 					   wlfw_dynamic_feature_mask_resp_msg_v01,
4577 					   resp),
4578 		.ei_array      = qmi_response_type_v01_ei,
4579 	},
4580 	{
4581 		.data_type      = QMI_OPT_FLAG,
4582 		.elem_len       = 1,
4583 		.elem_size      = sizeof(u8),
4584 		.array_type       = NO_ARRAY,
4585 		.tlv_type       = 0x10,
4586 		.offset         = offsetof(struct
4587 					   wlfw_dynamic_feature_mask_resp_msg_v01,
4588 					   prev_mask_valid),
4589 	},
4590 	{
4591 		.data_type      = QMI_UNSIGNED_8_BYTE,
4592 		.elem_len       = 1,
4593 		.elem_size      = sizeof(u64),
4594 		.array_type       = NO_ARRAY,
4595 		.tlv_type       = 0x10,
4596 		.offset         = offsetof(struct
4597 					   wlfw_dynamic_feature_mask_resp_msg_v01,
4598 					   prev_mask),
4599 	},
4600 	{
4601 		.data_type      = QMI_OPT_FLAG,
4602 		.elem_len       = 1,
4603 		.elem_size      = sizeof(u8),
4604 		.array_type       = NO_ARRAY,
4605 		.tlv_type       = 0x11,
4606 		.offset         = offsetof(struct
4607 					   wlfw_dynamic_feature_mask_resp_msg_v01,
4608 					   curr_mask_valid),
4609 	},
4610 	{
4611 		.data_type      = QMI_UNSIGNED_8_BYTE,
4612 		.elem_len       = 1,
4613 		.elem_size      = sizeof(u64),
4614 		.array_type       = NO_ARRAY,
4615 		.tlv_type       = 0x11,
4616 		.offset         = offsetof(struct
4617 					   wlfw_dynamic_feature_mask_resp_msg_v01,
4618 					   curr_mask),
4619 	},
4620 	{
4621 		.data_type      = QMI_EOTI,
4622 		.array_type       = NO_ARRAY,
4623 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4624 	},
4625 };
4626 EXPORT_SYMBOL(wlfw_dynamic_feature_mask_resp_msg_v01_ei);
4627 
4628 struct qmi_elem_info wlfw_m3_info_req_msg_v01_ei[] = {
4629 	{
4630 		.data_type      = QMI_UNSIGNED_8_BYTE,
4631 		.elem_len       = 1,
4632 		.elem_size      = sizeof(u64),
4633 		.array_type       = NO_ARRAY,
4634 		.tlv_type       = 0x01,
4635 		.offset         = offsetof(struct
4636 					   wlfw_m3_info_req_msg_v01,
4637 					   addr),
4638 	},
4639 	{
4640 		.data_type      = QMI_UNSIGNED_4_BYTE,
4641 		.elem_len       = 1,
4642 		.elem_size      = sizeof(u32),
4643 		.array_type       = NO_ARRAY,
4644 		.tlv_type       = 0x02,
4645 		.offset         = offsetof(struct
4646 					   wlfw_m3_info_req_msg_v01,
4647 					   size),
4648 	},
4649 	{
4650 		.data_type      = QMI_EOTI,
4651 		.array_type       = NO_ARRAY,
4652 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4653 	},
4654 };
4655 EXPORT_SYMBOL(wlfw_m3_info_req_msg_v01_ei);
4656 
4657 struct qmi_elem_info wlfw_m3_info_resp_msg_v01_ei[] = {
4658 	{
4659 		.data_type      = QMI_STRUCT,
4660 		.elem_len       = 1,
4661 		.elem_size      = sizeof(struct qmi_response_type_v01),
4662 		.array_type       = NO_ARRAY,
4663 		.tlv_type       = 0x02,
4664 		.offset         = offsetof(struct
4665 					   wlfw_m3_info_resp_msg_v01,
4666 					   resp),
4667 		.ei_array      = qmi_response_type_v01_ei,
4668 	},
4669 	{
4670 		.data_type      = QMI_EOTI,
4671 		.array_type       = NO_ARRAY,
4672 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4673 	},
4674 };
4675 EXPORT_SYMBOL(wlfw_m3_info_resp_msg_v01_ei);
4676 
4677 struct qmi_elem_info wlfw_xo_cal_ind_msg_v01_ei[] = {
4678 	{
4679 		.data_type      = QMI_UNSIGNED_1_BYTE,
4680 		.elem_len       = 1,
4681 		.elem_size      = sizeof(u8),
4682 		.array_type       = NO_ARRAY,
4683 		.tlv_type       = 0x01,
4684 		.offset         = offsetof(struct
4685 					   wlfw_xo_cal_ind_msg_v01,
4686 					   xo_cal_data),
4687 	},
4688 	{
4689 		.data_type      = QMI_EOTI,
4690 		.array_type       = NO_ARRAY,
4691 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4692 	},
4693 };
4694 EXPORT_SYMBOL(wlfw_xo_cal_ind_msg_v01_ei);
4695 
4696 struct qmi_elem_info wlfw_cal_done_ind_msg_v01_ei[] = {
4697 	{
4698 		.data_type      = QMI_OPT_FLAG,
4699 		.elem_len       = 1,
4700 		.elem_size      = sizeof(u8),
4701 		.array_type       = NO_ARRAY,
4702 		.tlv_type       = 0x10,
4703 		.offset         = offsetof(struct
4704 					   wlfw_cal_done_ind_msg_v01,
4705 					   cal_file_upload_size_valid),
4706 	},
4707 	{
4708 		.data_type      = QMI_UNSIGNED_8_BYTE,
4709 		.elem_len       = 1,
4710 		.elem_size      = sizeof(u64),
4711 		.array_type       = NO_ARRAY,
4712 		.tlv_type       = 0x10,
4713 		.offset         = offsetof(struct
4714 					   wlfw_cal_done_ind_msg_v01,
4715 					   cal_file_upload_size),
4716 	},
4717 	{
4718 		.data_type      = QMI_EOTI,
4719 		.array_type       = NO_ARRAY,
4720 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4721 	},
4722 };
4723 EXPORT_SYMBOL(wlfw_cal_done_ind_msg_v01_ei);
4724 
4725 struct qmi_elem_info wlfw_qdss_trace_req_mem_ind_msg_v01_ei[] = {
4726 	{
4727 		.data_type      = QMI_DATA_LEN,
4728 		.elem_len       = 1,
4729 		.elem_size      = sizeof(u8),
4730 		.array_type       = NO_ARRAY,
4731 		.tlv_type       = 0x01,
4732 		.offset         = offsetof(struct
4733 					   wlfw_qdss_trace_req_mem_ind_msg_v01,
4734 					   mem_seg_len),
4735 	},
4736 	{
4737 		.data_type      = QMI_STRUCT,
4738 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
4739 		.elem_size      = sizeof(struct wlfw_mem_seg_s_v01),
4740 		.array_type       = VAR_LEN_ARRAY,
4741 		.tlv_type       = 0x01,
4742 		.offset         = offsetof(struct
4743 					   wlfw_qdss_trace_req_mem_ind_msg_v01,
4744 					   mem_seg),
4745 		.ei_array      = wlfw_mem_seg_s_v01_ei,
4746 	},
4747 	{
4748 		.data_type      = QMI_EOTI,
4749 		.array_type       = NO_ARRAY,
4750 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4751 	},
4752 };
4753 EXPORT_SYMBOL(wlfw_qdss_trace_req_mem_ind_msg_v01_ei);
4754 
4755 struct qmi_elem_info wlfw_qdss_trace_mem_info_req_msg_v01_ei[] = {
4756 	{
4757 		.data_type      = QMI_DATA_LEN,
4758 		.elem_len       = 1,
4759 		.elem_size      = sizeof(u8),
4760 		.array_type       = NO_ARRAY,
4761 		.tlv_type       = 0x01,
4762 		.offset         = offsetof(struct
4763 					   wlfw_qdss_trace_mem_info_req_msg_v01,
4764 					   mem_seg_len),
4765 	},
4766 	{
4767 		.data_type      = QMI_STRUCT,
4768 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
4769 		.elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),
4770 		.array_type       = VAR_LEN_ARRAY,
4771 		.tlv_type       = 0x01,
4772 		.offset         = offsetof(struct
4773 					   wlfw_qdss_trace_mem_info_req_msg_v01,
4774 					   mem_seg),
4775 		.ei_array      = wlfw_mem_seg_resp_s_v01_ei,
4776 	},
4777 	{
4778 		.data_type      = QMI_OPT_FLAG,
4779 		.elem_len       = 1,
4780 		.elem_size      = sizeof(u8),
4781 		.array_type       = NO_ARRAY,
4782 		.tlv_type       = 0x10,
4783 		.offset         = offsetof(struct
4784 					   wlfw_qdss_trace_mem_info_req_msg_v01,
4785 					   end_valid),
4786 	},
4787 	{
4788 		.data_type      = QMI_UNSIGNED_1_BYTE,
4789 		.elem_len       = 1,
4790 		.elem_size      = sizeof(u8),
4791 		.array_type       = NO_ARRAY,
4792 		.tlv_type       = 0x10,
4793 		.offset         = offsetof(struct
4794 					   wlfw_qdss_trace_mem_info_req_msg_v01,
4795 					   end),
4796 	},
4797 	{
4798 		.data_type      = QMI_EOTI,
4799 		.array_type       = NO_ARRAY,
4800 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4801 	},
4802 };
4803 EXPORT_SYMBOL(wlfw_qdss_trace_mem_info_req_msg_v01_ei);
4804 
4805 struct qmi_elem_info wlfw_qdss_trace_mem_info_resp_msg_v01_ei[] = {
4806 	{
4807 		.data_type      = QMI_STRUCT,
4808 		.elem_len       = 1,
4809 		.elem_size      = sizeof(struct qmi_response_type_v01),
4810 		.array_type       = NO_ARRAY,
4811 		.tlv_type       = 0x02,
4812 		.offset         = offsetof(struct
4813 					   wlfw_qdss_trace_mem_info_resp_msg_v01,
4814 					   resp),
4815 		.ei_array      = qmi_response_type_v01_ei,
4816 	},
4817 	{
4818 		.data_type      = QMI_EOTI,
4819 		.array_type       = NO_ARRAY,
4820 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4821 	},
4822 };
4823 EXPORT_SYMBOL(wlfw_qdss_trace_mem_info_resp_msg_v01_ei);
4824 
4825 struct qmi_elem_info wlfw_qdss_trace_save_ind_msg_v01_ei[] = {
4826 	{
4827 		.data_type      = QMI_UNSIGNED_4_BYTE,
4828 		.elem_len       = 1,
4829 		.elem_size      = sizeof(u32),
4830 		.array_type       = NO_ARRAY,
4831 		.tlv_type       = 0x01,
4832 		.offset         = offsetof(struct
4833 					   wlfw_qdss_trace_save_ind_msg_v01,
4834 					   source),
4835 	},
4836 	{
4837 		.data_type      = QMI_UNSIGNED_4_BYTE,
4838 		.elem_len       = 1,
4839 		.elem_size      = sizeof(u32),
4840 		.array_type       = NO_ARRAY,
4841 		.tlv_type       = 0x02,
4842 		.offset         = offsetof(struct
4843 					   wlfw_qdss_trace_save_ind_msg_v01,
4844 					   total_size),
4845 	},
4846 	{
4847 		.data_type      = QMI_OPT_FLAG,
4848 		.elem_len       = 1,
4849 		.elem_size      = sizeof(u8),
4850 		.array_type       = NO_ARRAY,
4851 		.tlv_type       = 0x10,
4852 		.offset         = offsetof(struct
4853 					   wlfw_qdss_trace_save_ind_msg_v01,
4854 					   mem_seg_valid),
4855 	},
4856 	{
4857 		.data_type      = QMI_DATA_LEN,
4858 		.elem_len       = 1,
4859 		.elem_size      = sizeof(u8),
4860 		.array_type       = NO_ARRAY,
4861 		.tlv_type       = 0x10,
4862 		.offset         = offsetof(struct
4863 					   wlfw_qdss_trace_save_ind_msg_v01,
4864 					   mem_seg_len),
4865 	},
4866 	{
4867 		.data_type      = QMI_STRUCT,
4868 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
4869 		.elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),
4870 		.array_type       = VAR_LEN_ARRAY,
4871 		.tlv_type       = 0x10,
4872 		.offset         = offsetof(struct
4873 					   wlfw_qdss_trace_save_ind_msg_v01,
4874 					   mem_seg),
4875 		.ei_array      = wlfw_mem_seg_resp_s_v01_ei,
4876 	},
4877 	{
4878 		.data_type      = QMI_OPT_FLAG,
4879 		.elem_len       = 1,
4880 		.elem_size      = sizeof(u8),
4881 		.array_type       = NO_ARRAY,
4882 		.tlv_type       = 0x11,
4883 		.offset         = offsetof(struct
4884 					   wlfw_qdss_trace_save_ind_msg_v01,
4885 					   file_name_valid),
4886 	},
4887 	{
4888 		.data_type      = QMI_STRING,
4889 		.elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
4890 		.elem_size      = sizeof(char),
4891 		.array_type       = NO_ARRAY,
4892 		.tlv_type       = 0x11,
4893 		.offset         = offsetof(struct
4894 					   wlfw_qdss_trace_save_ind_msg_v01,
4895 					   file_name),
4896 	},
4897 	{
4898 		.data_type      = QMI_EOTI,
4899 		.array_type       = NO_ARRAY,
4900 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4901 	},
4902 };
4903 EXPORT_SYMBOL(wlfw_qdss_trace_save_ind_msg_v01_ei);
4904 
4905 struct qmi_elem_info wlfw_qdss_trace_data_req_msg_v01_ei[] = {
4906 	{
4907 		.data_type      = QMI_UNSIGNED_4_BYTE,
4908 		.elem_len       = 1,
4909 		.elem_size      = sizeof(u32),
4910 		.array_type       = NO_ARRAY,
4911 		.tlv_type       = 0x01,
4912 		.offset         = offsetof(struct
4913 					   wlfw_qdss_trace_data_req_msg_v01,
4914 					   seg_id),
4915 	},
4916 	{
4917 		.data_type      = QMI_EOTI,
4918 		.array_type       = NO_ARRAY,
4919 		.tlv_type       = QMI_COMMON_TLV_TYPE,
4920 	},
4921 };
4922 EXPORT_SYMBOL(wlfw_qdss_trace_data_req_msg_v01_ei);
4923 
4924 struct qmi_elem_info wlfw_qdss_trace_data_resp_msg_v01_ei[] = {
4925 	{
4926 		.data_type      = QMI_STRUCT,
4927 		.elem_len       = 1,
4928 		.elem_size      = sizeof(struct qmi_response_type_v01),
4929 		.array_type       = NO_ARRAY,
4930 		.tlv_type       = 0x02,
4931 		.offset         = offsetof(struct
4932 					   wlfw_qdss_trace_data_resp_msg_v01,
4933 					   resp),
4934 		.ei_array      = qmi_response_type_v01_ei,
4935 	},
4936 	{
4937 		.data_type      = QMI_OPT_FLAG,
4938 		.elem_len       = 1,
4939 		.elem_size      = sizeof(u8),
4940 		.array_type       = NO_ARRAY,
4941 		.tlv_type       = 0x10,
4942 		.offset         = offsetof(struct
4943 					   wlfw_qdss_trace_data_resp_msg_v01,
4944 					   total_size_valid),
4945 	},
4946 	{
4947 		.data_type      = QMI_UNSIGNED_4_BYTE,
4948 		.elem_len       = 1,
4949 		.elem_size      = sizeof(u32),
4950 		.array_type       = NO_ARRAY,
4951 		.tlv_type       = 0x10,
4952 		.offset         = offsetof(struct
4953 					   wlfw_qdss_trace_data_resp_msg_v01,
4954 					   total_size),
4955 	},
4956 	{
4957 		.data_type      = QMI_OPT_FLAG,
4958 		.elem_len       = 1,
4959 		.elem_size      = sizeof(u8),
4960 		.array_type       = NO_ARRAY,
4961 		.tlv_type       = 0x11,
4962 		.offset         = offsetof(struct
4963 					   wlfw_qdss_trace_data_resp_msg_v01,
4964 					   seg_id_valid),
4965 	},
4966 	{
4967 		.data_type      = QMI_UNSIGNED_4_BYTE,
4968 		.elem_len       = 1,
4969 		.elem_size      = sizeof(u32),
4970 		.array_type       = NO_ARRAY,
4971 		.tlv_type       = 0x11,
4972 		.offset         = offsetof(struct
4973 					   wlfw_qdss_trace_data_resp_msg_v01,
4974 					   seg_id),
4975 	},
4976 	{
4977 		.data_type      = QMI_OPT_FLAG,
4978 		.elem_len       = 1,
4979 		.elem_size      = sizeof(u8),
4980 		.array_type       = NO_ARRAY,
4981 		.tlv_type       = 0x12,
4982 		.offset         = offsetof(struct
4983 					   wlfw_qdss_trace_data_resp_msg_v01,
4984 					   data_valid),
4985 	},
4986 	{
4987 		.data_type      = QMI_DATA_LEN,
4988 		.elem_len       = 1,
4989 		.elem_size      = sizeof(u16),
4990 		.array_type       = NO_ARRAY,
4991 		.tlv_type       = 0x12,
4992 		.offset         = offsetof(struct
4993 					   wlfw_qdss_trace_data_resp_msg_v01,
4994 					   data_len),
4995 	},
4996 	{
4997 		.data_type      = QMI_UNSIGNED_1_BYTE,
4998 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
4999 		.elem_size      = sizeof(u8),
5000 		.array_type       = VAR_LEN_ARRAY,
5001 		.tlv_type       = 0x12,
5002 		.offset         = offsetof(struct
5003 					   wlfw_qdss_trace_data_resp_msg_v01,
5004 					   data),
5005 	},
5006 	{
5007 		.data_type      = QMI_OPT_FLAG,
5008 		.elem_len       = 1,
5009 		.elem_size      = sizeof(u8),
5010 		.array_type       = NO_ARRAY,
5011 		.tlv_type       = 0x13,
5012 		.offset         = offsetof(struct
5013 					   wlfw_qdss_trace_data_resp_msg_v01,
5014 					   end_valid),
5015 	},
5016 	{
5017 		.data_type      = QMI_UNSIGNED_1_BYTE,
5018 		.elem_len       = 1,
5019 		.elem_size      = sizeof(u8),
5020 		.array_type       = NO_ARRAY,
5021 		.tlv_type       = 0x13,
5022 		.offset         = offsetof(struct
5023 					   wlfw_qdss_trace_data_resp_msg_v01,
5024 					   end),
5025 	},
5026 	{
5027 		.data_type      = QMI_EOTI,
5028 		.array_type       = NO_ARRAY,
5029 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5030 	},
5031 };
5032 EXPORT_SYMBOL(wlfw_qdss_trace_data_resp_msg_v01_ei);
5033 
5034 struct qmi_elem_info wlfw_qdss_trace_config_download_req_msg_v01_ei[] = {
5035 	{
5036 		.data_type      = QMI_OPT_FLAG,
5037 		.elem_len       = 1,
5038 		.elem_size      = sizeof(u8),
5039 		.array_type       = NO_ARRAY,
5040 		.tlv_type       = 0x10,
5041 		.offset         = offsetof(struct
5042 					   wlfw_qdss_trace_config_download_req_msg_v01,
5043 					   total_size_valid),
5044 	},
5045 	{
5046 		.data_type      = QMI_UNSIGNED_4_BYTE,
5047 		.elem_len       = 1,
5048 		.elem_size      = sizeof(u32),
5049 		.array_type       = NO_ARRAY,
5050 		.tlv_type       = 0x10,
5051 		.offset         = offsetof(struct
5052 					   wlfw_qdss_trace_config_download_req_msg_v01,
5053 					   total_size),
5054 	},
5055 	{
5056 		.data_type      = QMI_OPT_FLAG,
5057 		.elem_len       = 1,
5058 		.elem_size      = sizeof(u8),
5059 		.array_type       = NO_ARRAY,
5060 		.tlv_type       = 0x11,
5061 		.offset         = offsetof(struct
5062 					   wlfw_qdss_trace_config_download_req_msg_v01,
5063 					   seg_id_valid),
5064 	},
5065 	{
5066 		.data_type      = QMI_UNSIGNED_4_BYTE,
5067 		.elem_len       = 1,
5068 		.elem_size      = sizeof(u32),
5069 		.array_type       = NO_ARRAY,
5070 		.tlv_type       = 0x11,
5071 		.offset         = offsetof(struct
5072 					   wlfw_qdss_trace_config_download_req_msg_v01,
5073 					   seg_id),
5074 	},
5075 	{
5076 		.data_type      = QMI_OPT_FLAG,
5077 		.elem_len       = 1,
5078 		.elem_size      = sizeof(u8),
5079 		.array_type       = NO_ARRAY,
5080 		.tlv_type       = 0x12,
5081 		.offset         = offsetof(struct
5082 					   wlfw_qdss_trace_config_download_req_msg_v01,
5083 					   data_valid),
5084 	},
5085 	{
5086 		.data_type      = QMI_DATA_LEN,
5087 		.elem_len       = 1,
5088 		.elem_size      = sizeof(u16),
5089 		.array_type       = NO_ARRAY,
5090 		.tlv_type       = 0x12,
5091 		.offset         = offsetof(struct
5092 					   wlfw_qdss_trace_config_download_req_msg_v01,
5093 					   data_len),
5094 	},
5095 	{
5096 		.data_type      = QMI_UNSIGNED_1_BYTE,
5097 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
5098 		.elem_size      = sizeof(u8),
5099 		.array_type       = VAR_LEN_ARRAY,
5100 		.tlv_type       = 0x12,
5101 		.offset         = offsetof(struct
5102 					   wlfw_qdss_trace_config_download_req_msg_v01,
5103 					   data),
5104 	},
5105 	{
5106 		.data_type      = QMI_OPT_FLAG,
5107 		.elem_len       = 1,
5108 		.elem_size      = sizeof(u8),
5109 		.array_type       = NO_ARRAY,
5110 		.tlv_type       = 0x13,
5111 		.offset         = offsetof(struct
5112 					   wlfw_qdss_trace_config_download_req_msg_v01,
5113 					   end_valid),
5114 	},
5115 	{
5116 		.data_type      = QMI_UNSIGNED_1_BYTE,
5117 		.elem_len       = 1,
5118 		.elem_size      = sizeof(u8),
5119 		.array_type       = NO_ARRAY,
5120 		.tlv_type       = 0x13,
5121 		.offset         = offsetof(struct
5122 					   wlfw_qdss_trace_config_download_req_msg_v01,
5123 					   end),
5124 	},
5125 	{
5126 		.data_type      = QMI_EOTI,
5127 		.array_type       = NO_ARRAY,
5128 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5129 	},
5130 };
5131 EXPORT_SYMBOL(wlfw_qdss_trace_config_download_req_msg_v01_ei);
5132 
5133 struct qmi_elem_info wlfw_qdss_trace_config_download_resp_msg_v01_ei[] = {
5134 	{
5135 		.data_type      = QMI_STRUCT,
5136 		.elem_len       = 1,
5137 		.elem_size      = sizeof(struct qmi_response_type_v01),
5138 		.array_type       = NO_ARRAY,
5139 		.tlv_type       = 0x02,
5140 		.offset         = offsetof(struct
5141 					   wlfw_qdss_trace_config_download_resp_msg_v01,
5142 					   resp),
5143 		.ei_array      = qmi_response_type_v01_ei,
5144 	},
5145 	{
5146 		.data_type      = QMI_EOTI,
5147 		.array_type       = NO_ARRAY,
5148 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5149 	},
5150 };
5151 EXPORT_SYMBOL(wlfw_qdss_trace_config_download_resp_msg_v01_ei);
5152 
5153 struct qmi_elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[] = {
5154 	{
5155 		.data_type      = QMI_OPT_FLAG,
5156 		.elem_len       = 1,
5157 		.elem_size      = sizeof(u8),
5158 		.array_type       = NO_ARRAY,
5159 		.tlv_type       = 0x10,
5160 		.offset         = offsetof(struct
5161 					   wlfw_qdss_trace_mode_req_msg_v01,
5162 					   mode_valid),
5163 	},
5164 	{
5165 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
5166 		.elem_len       = 1,
5167 		.elem_size      = sizeof(enum wlfw_qdss_trace_mode_enum_v01),
5168 		.array_type       = NO_ARRAY,
5169 		.tlv_type       = 0x10,
5170 		.offset         = offsetof(struct
5171 					   wlfw_qdss_trace_mode_req_msg_v01,
5172 					   mode),
5173 	},
5174 	{
5175 		.data_type      = QMI_OPT_FLAG,
5176 		.elem_len       = 1,
5177 		.elem_size      = sizeof(u8),
5178 		.array_type       = NO_ARRAY,
5179 		.tlv_type       = 0x11,
5180 		.offset         = offsetof(struct
5181 					   wlfw_qdss_trace_mode_req_msg_v01,
5182 					   option_valid),
5183 	},
5184 	{
5185 		.data_type      = QMI_UNSIGNED_8_BYTE,
5186 		.elem_len       = 1,
5187 		.elem_size      = sizeof(u64),
5188 		.array_type       = NO_ARRAY,
5189 		.tlv_type       = 0x11,
5190 		.offset         = offsetof(struct
5191 					   wlfw_qdss_trace_mode_req_msg_v01,
5192 					   option),
5193 	},
5194 	{
5195 		.data_type      = QMI_OPT_FLAG,
5196 		.elem_len       = 1,
5197 		.elem_size      = sizeof(u8),
5198 		.array_type       = NO_ARRAY,
5199 		.tlv_type       = 0x12,
5200 		.offset         = offsetof(struct
5201 					   wlfw_qdss_trace_mode_req_msg_v01,
5202 					   hw_trc_disable_override_valid),
5203 	},
5204 	{
5205 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
5206 		.elem_len       = 1,
5207 		.elem_size      = sizeof(enum wlfw_qmi_param_value_v01),
5208 		.array_type       = NO_ARRAY,
5209 		.tlv_type       = 0x12,
5210 		.offset         = offsetof(struct
5211 					   wlfw_qdss_trace_mode_req_msg_v01,
5212 					   hw_trc_disable_override),
5213 	},
5214 	{
5215 		.data_type      = QMI_EOTI,
5216 		.array_type       = NO_ARRAY,
5217 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5218 	},
5219 };
5220 EXPORT_SYMBOL(wlfw_qdss_trace_mode_req_msg_v01_ei);
5221 
5222 struct qmi_elem_info wlfw_qdss_trace_mode_resp_msg_v01_ei[] = {
5223 	{
5224 		.data_type      = QMI_STRUCT,
5225 		.elem_len       = 1,
5226 		.elem_size      = sizeof(struct qmi_response_type_v01),
5227 		.array_type       = NO_ARRAY,
5228 		.tlv_type       = 0x02,
5229 		.offset         = offsetof(struct
5230 					   wlfw_qdss_trace_mode_resp_msg_v01,
5231 					   resp),
5232 		.ei_array      = qmi_response_type_v01_ei,
5233 	},
5234 	{
5235 		.data_type      = QMI_EOTI,
5236 		.array_type       = NO_ARRAY,
5237 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5238 	},
5239 };
5240 EXPORT_SYMBOL(wlfw_qdss_trace_mode_resp_msg_v01_ei);
5241 
5242 struct qmi_elem_info wlfw_qdss_trace_free_ind_msg_v01_ei[] = {
5243 	{
5244 		.data_type      = QMI_OPT_FLAG,
5245 		.elem_len       = 1,
5246 		.elem_size      = sizeof(u8),
5247 		.array_type       = NO_ARRAY,
5248 		.tlv_type       = 0x10,
5249 		.offset         = offsetof(struct
5250 					   wlfw_qdss_trace_free_ind_msg_v01,
5251 					   mem_seg_valid),
5252 	},
5253 	{
5254 		.data_type      = QMI_DATA_LEN,
5255 		.elem_len       = 1,
5256 		.elem_size      = sizeof(u8),
5257 		.array_type       = NO_ARRAY,
5258 		.tlv_type       = 0x10,
5259 		.offset         = offsetof(struct
5260 					   wlfw_qdss_trace_free_ind_msg_v01,
5261 					   mem_seg_len),
5262 	},
5263 	{
5264 		.data_type      = QMI_STRUCT,
5265 		.elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
5266 		.elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),
5267 		.array_type       = VAR_LEN_ARRAY,
5268 		.tlv_type       = 0x10,
5269 		.offset         = offsetof(struct
5270 					   wlfw_qdss_trace_free_ind_msg_v01,
5271 					   mem_seg),
5272 		.ei_array      = wlfw_mem_seg_resp_s_v01_ei,
5273 	},
5274 	{
5275 		.data_type      = QMI_EOTI,
5276 		.array_type       = NO_ARRAY,
5277 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5278 	},
5279 };
5280 EXPORT_SYMBOL(wlfw_qdss_trace_free_ind_msg_v01_ei);
5281 
5282 struct qmi_elem_info wlfw_shutdown_req_msg_v01_ei[] = {
5283 	{
5284 		.data_type      = QMI_OPT_FLAG,
5285 		.elem_len       = 1,
5286 		.elem_size      = sizeof(u8),
5287 		.array_type       = NO_ARRAY,
5288 		.tlv_type       = 0x10,
5289 		.offset         = offsetof(struct
5290 					   wlfw_shutdown_req_msg_v01,
5291 					   shutdown_valid),
5292 	},
5293 	{
5294 		.data_type      = QMI_UNSIGNED_1_BYTE,
5295 		.elem_len       = 1,
5296 		.elem_size      = sizeof(u8),
5297 		.array_type       = NO_ARRAY,
5298 		.tlv_type       = 0x10,
5299 		.offset         = offsetof(struct
5300 					   wlfw_shutdown_req_msg_v01,
5301 					   shutdown),
5302 	},
5303 	{
5304 		.data_type      = QMI_EOTI,
5305 		.array_type       = NO_ARRAY,
5306 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5307 	},
5308 };
5309 EXPORT_SYMBOL(wlfw_shutdown_req_msg_v01_ei);
5310 
5311 struct qmi_elem_info wlfw_shutdown_resp_msg_v01_ei[] = {
5312 	{
5313 		.data_type      = QMI_STRUCT,
5314 		.elem_len       = 1,
5315 		.elem_size      = sizeof(struct qmi_response_type_v01),
5316 		.array_type       = NO_ARRAY,
5317 		.tlv_type       = 0x02,
5318 		.offset         = offsetof(struct
5319 					   wlfw_shutdown_resp_msg_v01,
5320 					   resp),
5321 		.ei_array      = qmi_response_type_v01_ei,
5322 	},
5323 	{
5324 		.data_type      = QMI_EOTI,
5325 		.array_type       = NO_ARRAY,
5326 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5327 	},
5328 };
5329 EXPORT_SYMBOL(wlfw_shutdown_resp_msg_v01_ei);
5330 
5331 struct qmi_elem_info wlfw_antenna_switch_req_msg_v01_ei[] = {
5332 	{
5333 		.data_type      = QMI_EOTI,
5334 		.array_type       = NO_ARRAY,
5335 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5336 	},
5337 };
5338 EXPORT_SYMBOL(wlfw_antenna_switch_req_msg_v01_ei);
5339 
5340 struct qmi_elem_info wlfw_antenna_switch_resp_msg_v01_ei[] = {
5341 	{
5342 		.data_type      = QMI_STRUCT,
5343 		.elem_len       = 1,
5344 		.elem_size      = sizeof(struct qmi_response_type_v01),
5345 		.array_type       = NO_ARRAY,
5346 		.tlv_type       = 0x02,
5347 		.offset         = offsetof(struct
5348 					   wlfw_antenna_switch_resp_msg_v01,
5349 					   resp),
5350 		.ei_array      = qmi_response_type_v01_ei,
5351 	},
5352 	{
5353 		.data_type      = QMI_OPT_FLAG,
5354 		.elem_len       = 1,
5355 		.elem_size      = sizeof(u8),
5356 		.array_type       = NO_ARRAY,
5357 		.tlv_type       = 0x10,
5358 		.offset         = offsetof(struct
5359 					   wlfw_antenna_switch_resp_msg_v01,
5360 					   antenna_valid),
5361 	},
5362 	{
5363 		.data_type      = QMI_UNSIGNED_8_BYTE,
5364 		.elem_len       = 1,
5365 		.elem_size      = sizeof(u64),
5366 		.array_type       = NO_ARRAY,
5367 		.tlv_type       = 0x10,
5368 		.offset         = offsetof(struct
5369 					   wlfw_antenna_switch_resp_msg_v01,
5370 					   antenna),
5371 	},
5372 	{
5373 		.data_type      = QMI_EOTI,
5374 		.array_type       = NO_ARRAY,
5375 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5376 	},
5377 };
5378 EXPORT_SYMBOL(wlfw_antenna_switch_resp_msg_v01_ei);
5379 
5380 struct qmi_elem_info wlfw_antenna_grant_req_msg_v01_ei[] = {
5381 	{
5382 		.data_type      = QMI_OPT_FLAG,
5383 		.elem_len       = 1,
5384 		.elem_size      = sizeof(u8),
5385 		.array_type       = NO_ARRAY,
5386 		.tlv_type       = 0x10,
5387 		.offset         = offsetof(struct
5388 					   wlfw_antenna_grant_req_msg_v01,
5389 					   grant_valid),
5390 	},
5391 	{
5392 		.data_type      = QMI_UNSIGNED_8_BYTE,
5393 		.elem_len       = 1,
5394 		.elem_size      = sizeof(u64),
5395 		.array_type       = NO_ARRAY,
5396 		.tlv_type       = 0x10,
5397 		.offset         = offsetof(struct
5398 					   wlfw_antenna_grant_req_msg_v01,
5399 					   grant),
5400 	},
5401 	{
5402 		.data_type      = QMI_EOTI,
5403 		.array_type       = NO_ARRAY,
5404 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5405 	},
5406 };
5407 EXPORT_SYMBOL(wlfw_antenna_grant_req_msg_v01_ei);
5408 
5409 struct qmi_elem_info wlfw_antenna_grant_resp_msg_v01_ei[] = {
5410 	{
5411 		.data_type      = QMI_STRUCT,
5412 		.elem_len       = 1,
5413 		.elem_size      = sizeof(struct qmi_response_type_v01),
5414 		.array_type       = NO_ARRAY,
5415 		.tlv_type       = 0x02,
5416 		.offset         = offsetof(struct
5417 					   wlfw_antenna_grant_resp_msg_v01,
5418 					   resp),
5419 		.ei_array      = qmi_response_type_v01_ei,
5420 	},
5421 	{
5422 		.data_type      = QMI_EOTI,
5423 		.array_type       = NO_ARRAY,
5424 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5425 	},
5426 };
5427 EXPORT_SYMBOL(wlfw_antenna_grant_resp_msg_v01_ei);
5428 
5429 struct qmi_elem_info wlfw_wfc_call_status_req_msg_v01_ei[] = {
5430 	{
5431 		.data_type      = QMI_DATA_LEN,
5432 		.elem_len       = 1,
5433 		.elem_size      = sizeof(u16),
5434 		.array_type       = NO_ARRAY,
5435 		.tlv_type       = 0x01,
5436 		.offset         = offsetof(struct
5437 					   wlfw_wfc_call_status_req_msg_v01,
5438 					   wfc_call_status_len),
5439 	},
5440 	{
5441 		.data_type      = QMI_UNSIGNED_1_BYTE,
5442 		.elem_len       = QMI_WLFW_MAX_WFC_CALL_STATUS_DATA_SIZE_V01,
5443 		.elem_size      = sizeof(u8),
5444 		.array_type       = VAR_LEN_ARRAY,
5445 		.tlv_type       = 0x01,
5446 		.offset         = offsetof(struct
5447 					   wlfw_wfc_call_status_req_msg_v01,
5448 					   wfc_call_status),
5449 	},
5450 	{
5451 		.data_type      = QMI_OPT_FLAG,
5452 		.elem_len       = 1,
5453 		.elem_size      = sizeof(u8),
5454 		.array_type       = NO_ARRAY,
5455 		.tlv_type       = 0x10,
5456 		.offset         = offsetof(struct
5457 					   wlfw_wfc_call_status_req_msg_v01,
5458 					   wfc_call_active_valid),
5459 	},
5460 	{
5461 		.data_type      = QMI_UNSIGNED_1_BYTE,
5462 		.elem_len       = 1,
5463 		.elem_size      = sizeof(u8),
5464 		.array_type       = NO_ARRAY,
5465 		.tlv_type       = 0x10,
5466 		.offset         = offsetof(struct
5467 					   wlfw_wfc_call_status_req_msg_v01,
5468 					   wfc_call_active),
5469 	},
5470 	{
5471 		.data_type      = QMI_OPT_FLAG,
5472 		.elem_len       = 1,
5473 		.elem_size      = sizeof(u8),
5474 		.array_type       = NO_ARRAY,
5475 		.tlv_type       = 0x11,
5476 		.offset         = offsetof(struct
5477 					   wlfw_wfc_call_status_req_msg_v01,
5478 					   all_wfc_calls_held_valid),
5479 	},
5480 	{
5481 		.data_type      = QMI_UNSIGNED_1_BYTE,
5482 		.elem_len       = 1,
5483 		.elem_size      = sizeof(u8),
5484 		.array_type       = NO_ARRAY,
5485 		.tlv_type       = 0x11,
5486 		.offset         = offsetof(struct
5487 					   wlfw_wfc_call_status_req_msg_v01,
5488 					   all_wfc_calls_held),
5489 	},
5490 	{
5491 		.data_type      = QMI_OPT_FLAG,
5492 		.elem_len       = 1,
5493 		.elem_size      = sizeof(u8),
5494 		.array_type       = NO_ARRAY,
5495 		.tlv_type       = 0x12,
5496 		.offset         = offsetof(struct
5497 					   wlfw_wfc_call_status_req_msg_v01,
5498 					   is_wfc_emergency_valid),
5499 	},
5500 	{
5501 		.data_type      = QMI_UNSIGNED_1_BYTE,
5502 		.elem_len       = 1,
5503 		.elem_size      = sizeof(u8),
5504 		.array_type       = NO_ARRAY,
5505 		.tlv_type       = 0x12,
5506 		.offset         = offsetof(struct
5507 					   wlfw_wfc_call_status_req_msg_v01,
5508 					   is_wfc_emergency),
5509 	},
5510 	{
5511 		.data_type      = QMI_OPT_FLAG,
5512 		.elem_len       = 1,
5513 		.elem_size      = sizeof(u8),
5514 		.array_type       = NO_ARRAY,
5515 		.tlv_type       = 0x13,
5516 		.offset         = offsetof(struct
5517 					   wlfw_wfc_call_status_req_msg_v01,
5518 					   twt_ims_start_valid),
5519 	},
5520 	{
5521 		.data_type      = QMI_UNSIGNED_8_BYTE,
5522 		.elem_len       = 1,
5523 		.elem_size      = sizeof(u64),
5524 		.array_type       = NO_ARRAY,
5525 		.tlv_type       = 0x13,
5526 		.offset         = offsetof(struct
5527 					   wlfw_wfc_call_status_req_msg_v01,
5528 					   twt_ims_start),
5529 	},
5530 	{
5531 		.data_type      = QMI_OPT_FLAG,
5532 		.elem_len       = 1,
5533 		.elem_size      = sizeof(u8),
5534 		.array_type       = NO_ARRAY,
5535 		.tlv_type       = 0x14,
5536 		.offset         = offsetof(struct
5537 					   wlfw_wfc_call_status_req_msg_v01,
5538 					   twt_ims_int_valid),
5539 	},
5540 	{
5541 		.data_type      = QMI_UNSIGNED_2_BYTE,
5542 		.elem_len       = 1,
5543 		.elem_size      = sizeof(u16),
5544 		.array_type       = NO_ARRAY,
5545 		.tlv_type       = 0x14,
5546 		.offset         = offsetof(struct
5547 					   wlfw_wfc_call_status_req_msg_v01,
5548 					   twt_ims_int),
5549 	},
5550 	{
5551 		.data_type      = QMI_OPT_FLAG,
5552 		.elem_len       = 1,
5553 		.elem_size      = sizeof(u8),
5554 		.array_type       = NO_ARRAY,
5555 		.tlv_type       = 0x15,
5556 		.offset         = offsetof(struct
5557 					   wlfw_wfc_call_status_req_msg_v01,
5558 					   media_quality_valid),
5559 	},
5560 	{
5561 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
5562 		.elem_len       = 1,
5563 		.elem_size      = sizeof(enum wlfw_wfc_media_quality_v01),
5564 		.array_type       = NO_ARRAY,
5565 		.tlv_type       = 0x15,
5566 		.offset         = offsetof(struct
5567 					   wlfw_wfc_call_status_req_msg_v01,
5568 					   media_quality),
5569 	},
5570 	{
5571 		.data_type      = QMI_EOTI,
5572 		.array_type       = NO_ARRAY,
5573 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5574 	},
5575 };
5576 EXPORT_SYMBOL(wlfw_wfc_call_status_req_msg_v01_ei);
5577 
5578 struct qmi_elem_info wlfw_wfc_call_status_resp_msg_v01_ei[] = {
5579 	{
5580 		.data_type      = QMI_STRUCT,
5581 		.elem_len       = 1,
5582 		.elem_size      = sizeof(struct qmi_response_type_v01),
5583 		.array_type       = NO_ARRAY,
5584 		.tlv_type       = 0x02,
5585 		.offset         = offsetof(struct
5586 					   wlfw_wfc_call_status_resp_msg_v01,
5587 					   resp),
5588 		.ei_array      = qmi_response_type_v01_ei,
5589 	},
5590 	{
5591 		.data_type      = QMI_EOTI,
5592 		.array_type       = NO_ARRAY,
5593 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5594 	},
5595 };
5596 EXPORT_SYMBOL(wlfw_wfc_call_status_resp_msg_v01_ei);
5597 
5598 struct qmi_elem_info wlfw_get_info_req_msg_v01_ei[] = {
5599 	{
5600 		.data_type      = QMI_UNSIGNED_1_BYTE,
5601 		.elem_len       = 1,
5602 		.elem_size      = sizeof(u8),
5603 		.array_type       = NO_ARRAY,
5604 		.tlv_type       = 0x01,
5605 		.offset         = offsetof(struct
5606 					   wlfw_get_info_req_msg_v01,
5607 					   type),
5608 	},
5609 	{
5610 		.data_type      = QMI_DATA_LEN,
5611 		.elem_len       = 1,
5612 		.elem_size      = sizeof(u16),
5613 		.array_type       = NO_ARRAY,
5614 		.tlv_type       = 0x02,
5615 		.offset         = offsetof(struct
5616 					   wlfw_get_info_req_msg_v01,
5617 					   data_len),
5618 	},
5619 	{
5620 		.data_type      = QMI_UNSIGNED_1_BYTE,
5621 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
5622 		.elem_size      = sizeof(u8),
5623 		.array_type       = VAR_LEN_ARRAY,
5624 		.tlv_type       = 0x02,
5625 		.offset         = offsetof(struct
5626 					   wlfw_get_info_req_msg_v01,
5627 					   data),
5628 	},
5629 	{
5630 		.data_type      = QMI_EOTI,
5631 		.array_type       = NO_ARRAY,
5632 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5633 	},
5634 };
5635 EXPORT_SYMBOL(wlfw_get_info_req_msg_v01_ei);
5636 
5637 struct qmi_elem_info wlfw_get_info_resp_msg_v01_ei[] = {
5638 	{
5639 		.data_type      = QMI_STRUCT,
5640 		.elem_len       = 1,
5641 		.elem_size      = sizeof(struct qmi_response_type_v01),
5642 		.array_type       = NO_ARRAY,
5643 		.tlv_type       = 0x02,
5644 		.offset         = offsetof(struct
5645 					   wlfw_get_info_resp_msg_v01,
5646 					   resp),
5647 		.ei_array      = qmi_response_type_v01_ei,
5648 	},
5649 	{
5650 		.data_type      = QMI_EOTI,
5651 		.array_type       = NO_ARRAY,
5652 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5653 	},
5654 };
5655 EXPORT_SYMBOL(wlfw_get_info_resp_msg_v01_ei);
5656 
5657 struct qmi_elem_info wlfw_respond_get_info_ind_msg_v01_ei[] = {
5658 	{
5659 		.data_type      = QMI_DATA_LEN,
5660 		.elem_len       = 1,
5661 		.elem_size      = sizeof(u16),
5662 		.array_type       = NO_ARRAY,
5663 		.tlv_type       = 0x01,
5664 		.offset         = offsetof(struct
5665 					   wlfw_respond_get_info_ind_msg_v01,
5666 					   data_len),
5667 	},
5668 	{
5669 		.data_type      = QMI_UNSIGNED_1_BYTE,
5670 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
5671 		.elem_size      = sizeof(u8),
5672 		.array_type       = VAR_LEN_ARRAY,
5673 		.tlv_type       = 0x01,
5674 		.offset         = offsetof(struct
5675 					   wlfw_respond_get_info_ind_msg_v01,
5676 					   data),
5677 	},
5678 	{
5679 		.data_type      = QMI_OPT_FLAG,
5680 		.elem_len       = 1,
5681 		.elem_size      = sizeof(u8),
5682 		.array_type       = NO_ARRAY,
5683 		.tlv_type       = 0x10,
5684 		.offset         = offsetof(struct
5685 					   wlfw_respond_get_info_ind_msg_v01,
5686 					   type_valid),
5687 	},
5688 	{
5689 		.data_type      = QMI_UNSIGNED_1_BYTE,
5690 		.elem_len       = 1,
5691 		.elem_size      = sizeof(u8),
5692 		.array_type       = NO_ARRAY,
5693 		.tlv_type       = 0x10,
5694 		.offset         = offsetof(struct
5695 					   wlfw_respond_get_info_ind_msg_v01,
5696 					   type),
5697 	},
5698 	{
5699 		.data_type      = QMI_OPT_FLAG,
5700 		.elem_len       = 1,
5701 		.elem_size      = sizeof(u8),
5702 		.array_type       = NO_ARRAY,
5703 		.tlv_type       = 0x11,
5704 		.offset         = offsetof(struct
5705 					   wlfw_respond_get_info_ind_msg_v01,
5706 					   is_last_valid),
5707 	},
5708 	{
5709 		.data_type      = QMI_UNSIGNED_1_BYTE,
5710 		.elem_len       = 1,
5711 		.elem_size      = sizeof(u8),
5712 		.array_type       = NO_ARRAY,
5713 		.tlv_type       = 0x11,
5714 		.offset         = offsetof(struct
5715 					   wlfw_respond_get_info_ind_msg_v01,
5716 					   is_last),
5717 	},
5718 	{
5719 		.data_type      = QMI_OPT_FLAG,
5720 		.elem_len       = 1,
5721 		.elem_size      = sizeof(u8),
5722 		.array_type       = NO_ARRAY,
5723 		.tlv_type       = 0x12,
5724 		.offset         = offsetof(struct
5725 					   wlfw_respond_get_info_ind_msg_v01,
5726 					   seq_no_valid),
5727 	},
5728 	{
5729 		.data_type      = QMI_UNSIGNED_4_BYTE,
5730 		.elem_len       = 1,
5731 		.elem_size      = sizeof(u32),
5732 		.array_type       = NO_ARRAY,
5733 		.tlv_type       = 0x12,
5734 		.offset         = offsetof(struct
5735 					   wlfw_respond_get_info_ind_msg_v01,
5736 					   seq_no),
5737 	},
5738 	{
5739 		.data_type      = QMI_EOTI,
5740 		.array_type       = NO_ARRAY,
5741 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5742 	},
5743 };
5744 EXPORT_SYMBOL(wlfw_respond_get_info_ind_msg_v01_ei);
5745 
5746 struct qmi_elem_info wlfw_device_info_req_msg_v01_ei[] = {
5747 	{
5748 		.data_type      = QMI_EOTI,
5749 		.array_type       = NO_ARRAY,
5750 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5751 	},
5752 };
5753 EXPORT_SYMBOL(wlfw_device_info_req_msg_v01_ei);
5754 
5755 struct qmi_elem_info wlfw_device_info_resp_msg_v01_ei[] = {
5756 	{
5757 		.data_type      = QMI_STRUCT,
5758 		.elem_len       = 1,
5759 		.elem_size      = sizeof(struct qmi_response_type_v01),
5760 		.array_type       = NO_ARRAY,
5761 		.tlv_type       = 0x02,
5762 		.offset         = offsetof(struct
5763 					   wlfw_device_info_resp_msg_v01,
5764 					   resp),
5765 		.ei_array      = qmi_response_type_v01_ei,
5766 	},
5767 	{
5768 		.data_type      = QMI_OPT_FLAG,
5769 		.elem_len       = 1,
5770 		.elem_size      = sizeof(u8),
5771 		.array_type       = NO_ARRAY,
5772 		.tlv_type       = 0x10,
5773 		.offset         = offsetof(struct
5774 					   wlfw_device_info_resp_msg_v01,
5775 					   bar_addr_valid),
5776 	},
5777 	{
5778 		.data_type      = QMI_UNSIGNED_8_BYTE,
5779 		.elem_len       = 1,
5780 		.elem_size      = sizeof(u64),
5781 		.array_type       = NO_ARRAY,
5782 		.tlv_type       = 0x10,
5783 		.offset         = offsetof(struct
5784 					   wlfw_device_info_resp_msg_v01,
5785 					   bar_addr),
5786 	},
5787 	{
5788 		.data_type      = QMI_OPT_FLAG,
5789 		.elem_len       = 1,
5790 		.elem_size      = sizeof(u8),
5791 		.array_type       = NO_ARRAY,
5792 		.tlv_type       = 0x11,
5793 		.offset         = offsetof(struct
5794 					   wlfw_device_info_resp_msg_v01,
5795 					   bar_size_valid),
5796 	},
5797 	{
5798 		.data_type      = QMI_UNSIGNED_4_BYTE,
5799 		.elem_len       = 1,
5800 		.elem_size      = sizeof(u32),
5801 		.array_type       = NO_ARRAY,
5802 		.tlv_type       = 0x11,
5803 		.offset         = offsetof(struct
5804 					   wlfw_device_info_resp_msg_v01,
5805 					   bar_size),
5806 	},
5807 	{
5808 		.data_type      = QMI_OPT_FLAG,
5809 		.elem_len       = 1,
5810 		.elem_size      = sizeof(u8),
5811 		.array_type       = NO_ARRAY,
5812 		.tlv_type       = 0x12,
5813 		.offset         = offsetof(struct
5814 					   wlfw_device_info_resp_msg_v01,
5815 					   mhi_state_info_addr_valid),
5816 	},
5817 	{
5818 		.data_type      = QMI_UNSIGNED_8_BYTE,
5819 		.elem_len       = 1,
5820 		.elem_size      = sizeof(u64),
5821 		.array_type       = NO_ARRAY,
5822 		.tlv_type       = 0x12,
5823 		.offset         = offsetof(struct
5824 					   wlfw_device_info_resp_msg_v01,
5825 					   mhi_state_info_addr),
5826 	},
5827 	{
5828 		.data_type      = QMI_OPT_FLAG,
5829 		.elem_len       = 1,
5830 		.elem_size      = sizeof(u8),
5831 		.array_type       = NO_ARRAY,
5832 		.tlv_type       = 0x13,
5833 		.offset         = offsetof(struct
5834 					   wlfw_device_info_resp_msg_v01,
5835 					   mhi_state_info_size_valid),
5836 	},
5837 	{
5838 		.data_type      = QMI_UNSIGNED_4_BYTE,
5839 		.elem_len       = 1,
5840 		.elem_size      = sizeof(u32),
5841 		.array_type       = NO_ARRAY,
5842 		.tlv_type       = 0x13,
5843 		.offset         = offsetof(struct
5844 					   wlfw_device_info_resp_msg_v01,
5845 					   mhi_state_info_size),
5846 	},
5847 	{
5848 		.data_type      = QMI_EOTI,
5849 		.array_type       = NO_ARRAY,
5850 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5851 	},
5852 };
5853 EXPORT_SYMBOL(wlfw_device_info_resp_msg_v01_ei);
5854 
5855 struct qmi_elem_info wlfw_m3_dump_upload_req_ind_msg_v01_ei[] = {
5856 	{
5857 		.data_type      = QMI_UNSIGNED_4_BYTE,
5858 		.elem_len       = 1,
5859 		.elem_size      = sizeof(u32),
5860 		.array_type       = NO_ARRAY,
5861 		.tlv_type       = 0x01,
5862 		.offset         = offsetof(struct
5863 					   wlfw_m3_dump_upload_req_ind_msg_v01,
5864 					   pdev_id),
5865 	},
5866 	{
5867 		.data_type      = QMI_UNSIGNED_8_BYTE,
5868 		.elem_len       = 1,
5869 		.elem_size      = sizeof(u64),
5870 		.array_type       = NO_ARRAY,
5871 		.tlv_type       = 0x02,
5872 		.offset         = offsetof(struct
5873 					   wlfw_m3_dump_upload_req_ind_msg_v01,
5874 					   addr),
5875 	},
5876 	{
5877 		.data_type      = QMI_UNSIGNED_8_BYTE,
5878 		.elem_len       = 1,
5879 		.elem_size      = sizeof(u64),
5880 		.array_type       = NO_ARRAY,
5881 		.tlv_type       = 0x03,
5882 		.offset         = offsetof(struct
5883 					   wlfw_m3_dump_upload_req_ind_msg_v01,
5884 					   size),
5885 	},
5886 	{
5887 		.data_type      = QMI_EOTI,
5888 		.array_type       = NO_ARRAY,
5889 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5890 	},
5891 };
5892 EXPORT_SYMBOL(wlfw_m3_dump_upload_req_ind_msg_v01_ei);
5893 
5894 struct qmi_elem_info wlfw_m3_dump_upload_done_req_msg_v01_ei[] = {
5895 	{
5896 		.data_type      = QMI_UNSIGNED_4_BYTE,
5897 		.elem_len       = 1,
5898 		.elem_size      = sizeof(u32),
5899 		.array_type       = NO_ARRAY,
5900 		.tlv_type       = 0x01,
5901 		.offset         = offsetof(struct
5902 					   wlfw_m3_dump_upload_done_req_msg_v01,
5903 					   pdev_id),
5904 	},
5905 	{
5906 		.data_type      = QMI_UNSIGNED_4_BYTE,
5907 		.elem_len       = 1,
5908 		.elem_size      = sizeof(u32),
5909 		.array_type       = NO_ARRAY,
5910 		.tlv_type       = 0x02,
5911 		.offset         = offsetof(struct
5912 					   wlfw_m3_dump_upload_done_req_msg_v01,
5913 					   status),
5914 	},
5915 	{
5916 		.data_type      = QMI_EOTI,
5917 		.array_type       = NO_ARRAY,
5918 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5919 	},
5920 };
5921 EXPORT_SYMBOL(wlfw_m3_dump_upload_done_req_msg_v01_ei);
5922 
5923 struct qmi_elem_info wlfw_m3_dump_upload_done_resp_msg_v01_ei[] = {
5924 	{
5925 		.data_type      = QMI_STRUCT,
5926 		.elem_len       = 1,
5927 		.elem_size      = sizeof(struct qmi_response_type_v01),
5928 		.array_type       = NO_ARRAY,
5929 		.tlv_type       = 0x02,
5930 		.offset         = offsetof(struct
5931 					   wlfw_m3_dump_upload_done_resp_msg_v01,
5932 					   resp),
5933 		.ei_array      = qmi_response_type_v01_ei,
5934 	},
5935 	{
5936 		.data_type      = QMI_EOTI,
5937 		.array_type       = NO_ARRAY,
5938 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5939 	},
5940 };
5941 EXPORT_SYMBOL(wlfw_m3_dump_upload_done_resp_msg_v01_ei);
5942 
5943 struct qmi_elem_info wlfw_soc_wake_req_msg_v01_ei[] = {
5944 	{
5945 		.data_type      = QMI_OPT_FLAG,
5946 		.elem_len       = 1,
5947 		.elem_size      = sizeof(u8),
5948 		.array_type       = NO_ARRAY,
5949 		.tlv_type       = 0x10,
5950 		.offset         = offsetof(struct
5951 					   wlfw_soc_wake_req_msg_v01,
5952 					   wake_valid),
5953 	},
5954 	{
5955 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
5956 		.elem_len       = 1,
5957 		.elem_size      = sizeof(enum wlfw_soc_wake_enum_v01),
5958 		.array_type       = NO_ARRAY,
5959 		.tlv_type       = 0x10,
5960 		.offset         = offsetof(struct
5961 					   wlfw_soc_wake_req_msg_v01,
5962 					   wake),
5963 	},
5964 	{
5965 		.data_type      = QMI_EOTI,
5966 		.array_type       = NO_ARRAY,
5967 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5968 	},
5969 };
5970 EXPORT_SYMBOL(wlfw_soc_wake_req_msg_v01_ei);
5971 
5972 struct qmi_elem_info wlfw_soc_wake_resp_msg_v01_ei[] = {
5973 	{
5974 		.data_type      = QMI_STRUCT,
5975 		.elem_len       = 1,
5976 		.elem_size      = sizeof(struct qmi_response_type_v01),
5977 		.array_type       = NO_ARRAY,
5978 		.tlv_type       = 0x02,
5979 		.offset         = offsetof(struct
5980 					   wlfw_soc_wake_resp_msg_v01,
5981 					   resp),
5982 		.ei_array      = qmi_response_type_v01_ei,
5983 	},
5984 	{
5985 		.data_type      = QMI_EOTI,
5986 		.array_type       = NO_ARRAY,
5987 		.tlv_type       = QMI_COMMON_TLV_TYPE,
5988 	},
5989 };
5990 EXPORT_SYMBOL(wlfw_soc_wake_resp_msg_v01_ei);
5991 
5992 struct qmi_elem_info wlfw_power_save_req_msg_v01_ei[] = {
5993 	{
5994 		.data_type      = QMI_OPT_FLAG,
5995 		.elem_len       = 1,
5996 		.elem_size      = sizeof(u8),
5997 		.array_type       = NO_ARRAY,
5998 		.tlv_type       = 0x10,
5999 		.offset         = offsetof(struct
6000 					   wlfw_power_save_req_msg_v01,
6001 					   power_save_mode_valid),
6002 	},
6003 	{
6004 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6005 		.elem_len       = 1,
6006 		.elem_size      = sizeof(enum wlfw_power_save_mode_v01),
6007 		.array_type       = NO_ARRAY,
6008 		.tlv_type       = 0x10,
6009 		.offset         = offsetof(struct
6010 					   wlfw_power_save_req_msg_v01,
6011 					   power_save_mode),
6012 	},
6013 	{
6014 		.data_type      = QMI_EOTI,
6015 		.array_type       = NO_ARRAY,
6016 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6017 	},
6018 };
6019 EXPORT_SYMBOL(wlfw_power_save_req_msg_v01_ei);
6020 
6021 struct qmi_elem_info wlfw_power_save_resp_msg_v01_ei[] = {
6022 	{
6023 		.data_type      = QMI_STRUCT,
6024 		.elem_len       = 1,
6025 		.elem_size      = sizeof(struct qmi_response_type_v01),
6026 		.array_type       = NO_ARRAY,
6027 		.tlv_type       = 0x02,
6028 		.offset         = offsetof(struct
6029 					   wlfw_power_save_resp_msg_v01,
6030 					   resp),
6031 		.ei_array      = qmi_response_type_v01_ei,
6032 	},
6033 	{
6034 		.data_type      = QMI_EOTI,
6035 		.array_type       = NO_ARRAY,
6036 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6037 	},
6038 };
6039 EXPORT_SYMBOL(wlfw_power_save_resp_msg_v01_ei);
6040 
6041 struct qmi_elem_info wlfw_wfc_call_twt_config_ind_msg_v01_ei[] = {
6042 	{
6043 		.data_type      = QMI_OPT_FLAG,
6044 		.elem_len       = 1,
6045 		.elem_size      = sizeof(u8),
6046 		.array_type       = NO_ARRAY,
6047 		.tlv_type       = 0x10,
6048 		.offset         = offsetof(struct
6049 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6050 					   twt_sta_start_valid),
6051 	},
6052 	{
6053 		.data_type      = QMI_UNSIGNED_8_BYTE,
6054 		.elem_len       = 1,
6055 		.elem_size      = sizeof(u64),
6056 		.array_type       = NO_ARRAY,
6057 		.tlv_type       = 0x10,
6058 		.offset         = offsetof(struct
6059 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6060 					   twt_sta_start),
6061 	},
6062 	{
6063 		.data_type      = QMI_OPT_FLAG,
6064 		.elem_len       = 1,
6065 		.elem_size      = sizeof(u8),
6066 		.array_type       = NO_ARRAY,
6067 		.tlv_type       = 0x11,
6068 		.offset         = offsetof(struct
6069 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6070 					   twt_sta_int_valid),
6071 	},
6072 	{
6073 		.data_type      = QMI_UNSIGNED_2_BYTE,
6074 		.elem_len       = 1,
6075 		.elem_size      = sizeof(u16),
6076 		.array_type       = NO_ARRAY,
6077 		.tlv_type       = 0x11,
6078 		.offset         = offsetof(struct
6079 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6080 					   twt_sta_int),
6081 	},
6082 	{
6083 		.data_type      = QMI_OPT_FLAG,
6084 		.elem_len       = 1,
6085 		.elem_size      = sizeof(u8),
6086 		.array_type       = NO_ARRAY,
6087 		.tlv_type       = 0x12,
6088 		.offset         = offsetof(struct
6089 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6090 					   twt_sta_upo_valid),
6091 	},
6092 	{
6093 		.data_type      = QMI_UNSIGNED_2_BYTE,
6094 		.elem_len       = 1,
6095 		.elem_size      = sizeof(u16),
6096 		.array_type       = NO_ARRAY,
6097 		.tlv_type       = 0x12,
6098 		.offset         = offsetof(struct
6099 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6100 					   twt_sta_upo),
6101 	},
6102 	{
6103 		.data_type      = QMI_OPT_FLAG,
6104 		.elem_len       = 1,
6105 		.elem_size      = sizeof(u8),
6106 		.array_type       = NO_ARRAY,
6107 		.tlv_type       = 0x13,
6108 		.offset         = offsetof(struct
6109 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6110 					   twt_sta_sp_valid),
6111 	},
6112 	{
6113 		.data_type      = QMI_UNSIGNED_2_BYTE,
6114 		.elem_len       = 1,
6115 		.elem_size      = sizeof(u16),
6116 		.array_type       = NO_ARRAY,
6117 		.tlv_type       = 0x13,
6118 		.offset         = offsetof(struct
6119 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6120 					   twt_sta_sp),
6121 	},
6122 	{
6123 		.data_type      = QMI_OPT_FLAG,
6124 		.elem_len       = 1,
6125 		.elem_size      = sizeof(u8),
6126 		.array_type       = NO_ARRAY,
6127 		.tlv_type       = 0x14,
6128 		.offset         = offsetof(struct
6129 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6130 					   twt_sta_dl_valid),
6131 	},
6132 	{
6133 		.data_type      = QMI_UNSIGNED_2_BYTE,
6134 		.elem_len       = 1,
6135 		.elem_size      = sizeof(u16),
6136 		.array_type       = NO_ARRAY,
6137 		.tlv_type       = 0x14,
6138 		.offset         = offsetof(struct
6139 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6140 					   twt_sta_dl),
6141 	},
6142 	{
6143 		.data_type      = QMI_OPT_FLAG,
6144 		.elem_len       = 1,
6145 		.elem_size      = sizeof(u8),
6146 		.array_type       = NO_ARRAY,
6147 		.tlv_type       = 0x15,
6148 		.offset         = offsetof(struct
6149 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6150 					   twt_sta_config_changed_valid),
6151 	},
6152 	{
6153 		.data_type      = QMI_UNSIGNED_1_BYTE,
6154 		.elem_len       = 1,
6155 		.elem_size      = sizeof(u8),
6156 		.array_type       = NO_ARRAY,
6157 		.tlv_type       = 0x15,
6158 		.offset         = offsetof(struct
6159 					   wlfw_wfc_call_twt_config_ind_msg_v01,
6160 					   twt_sta_config_changed),
6161 	},
6162 	{
6163 		.data_type      = QMI_EOTI,
6164 		.array_type       = NO_ARRAY,
6165 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6166 	},
6167 };
6168 EXPORT_SYMBOL(wlfw_wfc_call_twt_config_ind_msg_v01_ei);
6169 
6170 struct qmi_elem_info wlfw_qdss_mem_ready_ind_msg_v01_ei[] = {
6171 	{
6172 		.data_type      = QMI_EOTI,
6173 		.array_type       = NO_ARRAY,
6174 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6175 	},
6176 };
6177 EXPORT_SYMBOL(wlfw_qdss_mem_ready_ind_msg_v01_ei);
6178 
6179 struct qmi_elem_info wlfw_pcie_gen_switch_req_msg_v01_ei[] = {
6180 	{
6181 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6182 		.elem_len       = 1,
6183 		.elem_size      = sizeof(enum wlfw_pcie_gen_speed_v01),
6184 		.array_type       = NO_ARRAY,
6185 		.tlv_type       = 0x01,
6186 		.offset         = offsetof(struct
6187 					   wlfw_pcie_gen_switch_req_msg_v01,
6188 					   pcie_speed),
6189 	},
6190 	{
6191 		.data_type      = QMI_EOTI,
6192 		.array_type       = NO_ARRAY,
6193 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6194 	},
6195 };
6196 EXPORT_SYMBOL(wlfw_pcie_gen_switch_req_msg_v01_ei);
6197 
6198 struct qmi_elem_info wlfw_pcie_gen_switch_resp_msg_v01_ei[] = {
6199 	{
6200 		.data_type      = QMI_STRUCT,
6201 		.elem_len       = 1,
6202 		.elem_size      = sizeof(struct qmi_response_type_v01),
6203 		.array_type       = NO_ARRAY,
6204 		.tlv_type       = 0x02,
6205 		.offset         = offsetof(struct
6206 					   wlfw_pcie_gen_switch_resp_msg_v01,
6207 					   resp),
6208 		.ei_array      = qmi_response_type_v01_ei,
6209 	},
6210 	{
6211 		.data_type      = QMI_EOTI,
6212 		.array_type       = NO_ARRAY,
6213 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6214 	},
6215 };
6216 EXPORT_SYMBOL(wlfw_pcie_gen_switch_resp_msg_v01_ei);
6217 
6218 struct qmi_elem_info wlfw_m3_dump_upload_segments_req_ind_msg_v01_ei[] = {
6219 	{
6220 		.data_type      = QMI_UNSIGNED_4_BYTE,
6221 		.elem_len       = 1,
6222 		.elem_size      = sizeof(u32),
6223 		.array_type       = NO_ARRAY,
6224 		.tlv_type       = 0x01,
6225 		.offset         = offsetof(struct
6226 					   wlfw_m3_dump_upload_segments_req_ind_msg_v01,
6227 					   pdev_id),
6228 	},
6229 	{
6230 		.data_type      = QMI_UNSIGNED_4_BYTE,
6231 		.elem_len       = 1,
6232 		.elem_size      = sizeof(u32),
6233 		.array_type       = NO_ARRAY,
6234 		.tlv_type       = 0x02,
6235 		.offset         = offsetof(struct
6236 					   wlfw_m3_dump_upload_segments_req_ind_msg_v01,
6237 					   no_of_valid_segments),
6238 	},
6239 	{
6240 		.data_type      = QMI_STRUCT,
6241 		.elem_len       = QMI_WLFW_MAX_M3_SEGMENTS_SIZE_V01,
6242 		.elem_size      = sizeof(struct wlfw_m3_segment_info_s_v01),
6243 		.array_type       = STATIC_ARRAY,
6244 		.tlv_type       = 0x03,
6245 		.offset         = offsetof(struct
6246 					   wlfw_m3_dump_upload_segments_req_ind_msg_v01,
6247 					   m3_segment),
6248 		.ei_array      = wlfw_m3_segment_info_s_v01_ei,
6249 	},
6250 	{
6251 		.data_type      = QMI_EOTI,
6252 		.array_type       = NO_ARRAY,
6253 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6254 	},
6255 };
6256 EXPORT_SYMBOL(wlfw_m3_dump_upload_segments_req_ind_msg_v01_ei);
6257 
6258 struct qmi_elem_info wlfw_subsys_restart_level_req_msg_v01_ei[] = {
6259 	{
6260 		.data_type      = QMI_OPT_FLAG,
6261 		.elem_len       = 1,
6262 		.elem_size      = sizeof(u8),
6263 		.array_type       = NO_ARRAY,
6264 		.tlv_type       = 0x10,
6265 		.offset         = offsetof(struct
6266 					   wlfw_subsys_restart_level_req_msg_v01,
6267 					   restart_level_type_valid),
6268 	},
6269 	{
6270 		.data_type      = QMI_UNSIGNED_1_BYTE,
6271 		.elem_len       = 1,
6272 		.elem_size      = sizeof(u8),
6273 		.array_type       = NO_ARRAY,
6274 		.tlv_type       = 0x10,
6275 		.offset         = offsetof(struct
6276 					   wlfw_subsys_restart_level_req_msg_v01,
6277 					   restart_level_type),
6278 	},
6279 	{
6280 		.data_type      = QMI_EOTI,
6281 		.array_type       = NO_ARRAY,
6282 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6283 	},
6284 };
6285 EXPORT_SYMBOL(wlfw_subsys_restart_level_req_msg_v01_ei);
6286 
6287 struct qmi_elem_info wlfw_subsys_restart_level_resp_msg_v01_ei[] = {
6288 	{
6289 		.data_type      = QMI_STRUCT,
6290 		.elem_len       = 1,
6291 		.elem_size      = sizeof(struct qmi_response_type_v01),
6292 		.array_type       = NO_ARRAY,
6293 		.tlv_type       = 0x02,
6294 		.offset         = offsetof(struct
6295 					   wlfw_subsys_restart_level_resp_msg_v01,
6296 					   resp),
6297 		.ei_array      = qmi_response_type_v01_ei,
6298 	},
6299 	{
6300 		.data_type      = QMI_EOTI,
6301 		.array_type       = NO_ARRAY,
6302 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6303 	},
6304 };
6305 EXPORT_SYMBOL(wlfw_subsys_restart_level_resp_msg_v01_ei);
6306 
6307 struct qmi_elem_info wlfw_ini_file_download_req_msg_v01_ei[] = {
6308 	{
6309 		.data_type      = QMI_OPT_FLAG,
6310 		.elem_len       = 1,
6311 		.elem_size      = sizeof(u8),
6312 		.array_type       = NO_ARRAY,
6313 		.tlv_type       = 0x10,
6314 		.offset         = offsetof(struct
6315 					   wlfw_ini_file_download_req_msg_v01,
6316 					   file_type_valid),
6317 	},
6318 	{
6319 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6320 		.elem_len       = 1,
6321 		.elem_size      = sizeof(enum wlfw_ini_file_type_v01),
6322 		.array_type       = NO_ARRAY,
6323 		.tlv_type       = 0x10,
6324 		.offset         = offsetof(struct
6325 					   wlfw_ini_file_download_req_msg_v01,
6326 					   file_type),
6327 	},
6328 	{
6329 		.data_type      = QMI_OPT_FLAG,
6330 		.elem_len       = 1,
6331 		.elem_size      = sizeof(u8),
6332 		.array_type       = NO_ARRAY,
6333 		.tlv_type       = 0x11,
6334 		.offset         = offsetof(struct
6335 					   wlfw_ini_file_download_req_msg_v01,
6336 					   total_size_valid),
6337 	},
6338 	{
6339 		.data_type      = QMI_UNSIGNED_4_BYTE,
6340 		.elem_len       = 1,
6341 		.elem_size      = sizeof(u32),
6342 		.array_type       = NO_ARRAY,
6343 		.tlv_type       = 0x11,
6344 		.offset         = offsetof(struct
6345 					   wlfw_ini_file_download_req_msg_v01,
6346 					   total_size),
6347 	},
6348 	{
6349 		.data_type      = QMI_OPT_FLAG,
6350 		.elem_len       = 1,
6351 		.elem_size      = sizeof(u8),
6352 		.array_type       = NO_ARRAY,
6353 		.tlv_type       = 0x12,
6354 		.offset         = offsetof(struct
6355 					   wlfw_ini_file_download_req_msg_v01,
6356 					   seg_id_valid),
6357 	},
6358 	{
6359 		.data_type      = QMI_UNSIGNED_4_BYTE,
6360 		.elem_len       = 1,
6361 		.elem_size      = sizeof(u32),
6362 		.array_type       = NO_ARRAY,
6363 		.tlv_type       = 0x12,
6364 		.offset         = offsetof(struct
6365 					   wlfw_ini_file_download_req_msg_v01,
6366 					   seg_id),
6367 	},
6368 	{
6369 		.data_type      = QMI_OPT_FLAG,
6370 		.elem_len       = 1,
6371 		.elem_size      = sizeof(u8),
6372 		.array_type       = NO_ARRAY,
6373 		.tlv_type       = 0x13,
6374 		.offset         = offsetof(struct
6375 					   wlfw_ini_file_download_req_msg_v01,
6376 					   data_valid),
6377 	},
6378 	{
6379 		.data_type      = QMI_DATA_LEN,
6380 		.elem_len       = 1,
6381 		.elem_size      = sizeof(u16),
6382 		.array_type       = NO_ARRAY,
6383 		.tlv_type       = 0x13,
6384 		.offset         = offsetof(struct
6385 					   wlfw_ini_file_download_req_msg_v01,
6386 					   data_len),
6387 	},
6388 	{
6389 		.data_type      = QMI_UNSIGNED_1_BYTE,
6390 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
6391 		.elem_size      = sizeof(u8),
6392 		.array_type       = VAR_LEN_ARRAY,
6393 		.tlv_type       = 0x13,
6394 		.offset         = offsetof(struct
6395 					   wlfw_ini_file_download_req_msg_v01,
6396 					   data),
6397 	},
6398 	{
6399 		.data_type      = QMI_OPT_FLAG,
6400 		.elem_len       = 1,
6401 		.elem_size      = sizeof(u8),
6402 		.array_type       = NO_ARRAY,
6403 		.tlv_type       = 0x14,
6404 		.offset         = offsetof(struct
6405 					   wlfw_ini_file_download_req_msg_v01,
6406 					   end_valid),
6407 	},
6408 	{
6409 		.data_type      = QMI_UNSIGNED_1_BYTE,
6410 		.elem_len       = 1,
6411 		.elem_size      = sizeof(u8),
6412 		.array_type       = NO_ARRAY,
6413 		.tlv_type       = 0x14,
6414 		.offset         = offsetof(struct
6415 					   wlfw_ini_file_download_req_msg_v01,
6416 					   end),
6417 	},
6418 	{
6419 		.data_type      = QMI_EOTI,
6420 		.array_type       = NO_ARRAY,
6421 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6422 	},
6423 };
6424 EXPORT_SYMBOL(wlfw_ini_file_download_req_msg_v01_ei);
6425 
6426 struct qmi_elem_info wlfw_ini_file_download_resp_msg_v01_ei[] = {
6427 	{
6428 		.data_type      = QMI_STRUCT,
6429 		.elem_len       = 1,
6430 		.elem_size      = sizeof(struct qmi_response_type_v01),
6431 		.array_type       = NO_ARRAY,
6432 		.tlv_type       = 0x02,
6433 		.offset         = offsetof(struct
6434 					   wlfw_ini_file_download_resp_msg_v01,
6435 					   resp),
6436 		.ei_array      = qmi_response_type_v01_ei,
6437 	},
6438 	{
6439 		.data_type      = QMI_EOTI,
6440 		.array_type       = NO_ARRAY,
6441 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6442 	},
6443 };
6444 EXPORT_SYMBOL(wlfw_ini_file_download_resp_msg_v01_ei);
6445 
6446 struct qmi_elem_info wlfw_phy_cap_req_msg_v01_ei[] = {
6447 	{
6448 		.data_type      = QMI_EOTI,
6449 		.array_type       = NO_ARRAY,
6450 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6451 	},
6452 };
6453 EXPORT_SYMBOL(wlfw_phy_cap_req_msg_v01_ei);
6454 
6455 struct qmi_elem_info wlfw_phy_cap_resp_msg_v01_ei[] = {
6456 	{
6457 		.data_type      = QMI_STRUCT,
6458 		.elem_len       = 1,
6459 		.elem_size      = sizeof(struct qmi_response_type_v01),
6460 		.array_type       = NO_ARRAY,
6461 		.tlv_type       = 0x02,
6462 		.offset         = offsetof(struct
6463 					   wlfw_phy_cap_resp_msg_v01,
6464 					   resp),
6465 		.ei_array      = qmi_response_type_v01_ei,
6466 	},
6467 	{
6468 		.data_type      = QMI_OPT_FLAG,
6469 		.elem_len       = 1,
6470 		.elem_size      = sizeof(u8),
6471 		.array_type       = NO_ARRAY,
6472 		.tlv_type       = 0x10,
6473 		.offset         = offsetof(struct
6474 					   wlfw_phy_cap_resp_msg_v01,
6475 					   num_phy_valid),
6476 	},
6477 	{
6478 		.data_type      = QMI_UNSIGNED_1_BYTE,
6479 		.elem_len       = 1,
6480 		.elem_size      = sizeof(u8),
6481 		.array_type       = NO_ARRAY,
6482 		.tlv_type       = 0x10,
6483 		.offset         = offsetof(struct
6484 					   wlfw_phy_cap_resp_msg_v01,
6485 					   num_phy),
6486 	},
6487 	{
6488 		.data_type      = QMI_OPT_FLAG,
6489 		.elem_len       = 1,
6490 		.elem_size      = sizeof(u8),
6491 		.array_type       = NO_ARRAY,
6492 		.tlv_type       = 0x11,
6493 		.offset         = offsetof(struct
6494 					   wlfw_phy_cap_resp_msg_v01,
6495 					   board_id_valid),
6496 	},
6497 	{
6498 		.data_type      = QMI_UNSIGNED_4_BYTE,
6499 		.elem_len       = 1,
6500 		.elem_size      = sizeof(u32),
6501 		.array_type       = NO_ARRAY,
6502 		.tlv_type       = 0x11,
6503 		.offset         = offsetof(struct
6504 					   wlfw_phy_cap_resp_msg_v01,
6505 					   board_id),
6506 	},
6507 	{
6508 		.data_type      = QMI_OPT_FLAG,
6509 		.elem_len       = 1,
6510 		.elem_size      = sizeof(u8),
6511 		.array_type       = NO_ARRAY,
6512 		.tlv_type       = 0x12,
6513 		.offset         = offsetof(struct
6514 					   wlfw_phy_cap_resp_msg_v01,
6515 					   mlo_cap_v2_support_valid),
6516 	},
6517 	{
6518 		.data_type      = QMI_UNSIGNED_4_BYTE,
6519 		.elem_len       = 1,
6520 		.elem_size      = sizeof(u32),
6521 		.array_type       = NO_ARRAY,
6522 		.tlv_type       = 0x12,
6523 		.offset         = offsetof(struct
6524 					   wlfw_phy_cap_resp_msg_v01,
6525 					   mlo_cap_v2_support),
6526 	},
6527 	{
6528 		.data_type      = QMI_OPT_FLAG,
6529 		.elem_len       = 1,
6530 		.elem_size      = sizeof(u8),
6531 		.array_type       = NO_ARRAY,
6532 		.tlv_type       = 0x13,
6533 		.offset         = offsetof(struct
6534 					   wlfw_phy_cap_resp_msg_v01,
6535 					   single_chip_mlo_support_valid),
6536 	},
6537 	{
6538 		.data_type      = QMI_UNSIGNED_1_BYTE,
6539 		.elem_len       = 1,
6540 		.elem_size      = sizeof(u8),
6541 		.array_type       = NO_ARRAY,
6542 		.tlv_type       = 0x13,
6543 		.offset         = offsetof(struct
6544 					   wlfw_phy_cap_resp_msg_v01,
6545 					   single_chip_mlo_support),
6546 	},
6547 	{
6548 		.data_type      = QMI_EOTI,
6549 		.array_type       = NO_ARRAY,
6550 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6551 	},
6552 };
6553 EXPORT_SYMBOL(wlfw_phy_cap_resp_msg_v01_ei);
6554 
6555 struct qmi_elem_info wlfw_wlan_hw_init_cfg_req_msg_v01_ei[] = {
6556 	{
6557 		.data_type      = QMI_OPT_FLAG,
6558 		.elem_len       = 1,
6559 		.elem_size      = sizeof(u8),
6560 		.array_type       = NO_ARRAY,
6561 		.tlv_type       = 0x10,
6562 		.offset         = offsetof(struct
6563 					   wlfw_wlan_hw_init_cfg_req_msg_v01,
6564 					   rf_subtype_valid),
6565 	},
6566 	{
6567 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6568 		.elem_len       = 1,
6569 		.elem_size      = sizeof(enum wlfw_wlan_rf_subtype_v01),
6570 		.array_type       = NO_ARRAY,
6571 		.tlv_type       = 0x10,
6572 		.offset         = offsetof(struct
6573 					   wlfw_wlan_hw_init_cfg_req_msg_v01,
6574 					   rf_subtype),
6575 	},
6576 	{
6577 		.data_type      = QMI_EOTI,
6578 		.array_type       = NO_ARRAY,
6579 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6580 	},
6581 };
6582 EXPORT_SYMBOL(wlfw_wlan_hw_init_cfg_req_msg_v01_ei);
6583 
6584 struct qmi_elem_info wlfw_wlan_hw_init_cfg_resp_msg_v01_ei[] = {
6585 	{
6586 		.data_type      = QMI_STRUCT,
6587 		.elem_len       = 1,
6588 		.elem_size      = sizeof(struct qmi_response_type_v01),
6589 		.array_type       = NO_ARRAY,
6590 		.tlv_type       = 0x02,
6591 		.offset         = offsetof(struct
6592 					   wlfw_wlan_hw_init_cfg_resp_msg_v01,
6593 					   resp),
6594 		.ei_array      = qmi_response_type_v01_ei,
6595 	},
6596 	{
6597 		.data_type      = QMI_EOTI,
6598 		.array_type       = NO_ARRAY,
6599 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6600 	},
6601 };
6602 EXPORT_SYMBOL(wlfw_wlan_hw_init_cfg_resp_msg_v01_ei);
6603 
6604 struct qmi_elem_info wlfw_pcie_link_ctrl_req_msg_v01_ei[] = {
6605 	{
6606 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6607 		.elem_len       = 1,
6608 		.elem_size      = sizeof(enum wlfw_pcie_link_state_enum_v01),
6609 		.array_type       = NO_ARRAY,
6610 		.tlv_type       = 0x01,
6611 		.offset         = offsetof(struct
6612 					   wlfw_pcie_link_ctrl_req_msg_v01,
6613 					   link_state_req),
6614 	},
6615 	{
6616 		.data_type      = QMI_EOTI,
6617 		.array_type       = NO_ARRAY,
6618 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6619 	},
6620 };
6621 EXPORT_SYMBOL(wlfw_pcie_link_ctrl_req_msg_v01_ei);
6622 
6623 struct qmi_elem_info wlfw_pcie_link_ctrl_resp_msg_v01_ei[] = {
6624 	{
6625 		.data_type      = QMI_STRUCT,
6626 		.elem_len       = 1,
6627 		.elem_size      = sizeof(struct qmi_response_type_v01),
6628 		.array_type       = NO_ARRAY,
6629 		.tlv_type       = 0x02,
6630 		.offset         = offsetof(struct
6631 					   wlfw_pcie_link_ctrl_resp_msg_v01,
6632 					   resp),
6633 		.ei_array      = qmi_response_type_v01_ei,
6634 	},
6635 	{
6636 		.data_type      = QMI_EOTI,
6637 		.array_type       = NO_ARRAY,
6638 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6639 	},
6640 };
6641 EXPORT_SYMBOL(wlfw_pcie_link_ctrl_resp_msg_v01_ei);
6642 
6643 struct qmi_elem_info wlfw_aux_uc_info_req_msg_v01_ei[] = {
6644 	{
6645 		.data_type      = QMI_UNSIGNED_8_BYTE,
6646 		.elem_len       = 1,
6647 		.elem_size      = sizeof(u64),
6648 		.array_type       = NO_ARRAY,
6649 		.tlv_type       = 0x01,
6650 		.offset         = offsetof(struct
6651 					   wlfw_aux_uc_info_req_msg_v01,
6652 					   addr),
6653 	},
6654 	{
6655 		.data_type      = QMI_UNSIGNED_4_BYTE,
6656 		.elem_len       = 1,
6657 		.elem_size      = sizeof(u32),
6658 		.array_type       = NO_ARRAY,
6659 		.tlv_type       = 0x02,
6660 		.offset         = offsetof(struct
6661 					   wlfw_aux_uc_info_req_msg_v01,
6662 					   size),
6663 	},
6664 	{
6665 		.data_type      = QMI_EOTI,
6666 		.array_type       = NO_ARRAY,
6667 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6668 	},
6669 };
6670 EXPORT_SYMBOL(wlfw_aux_uc_info_req_msg_v01_ei);
6671 
6672 struct qmi_elem_info wlfw_aux_uc_info_resp_msg_v01_ei[] = {
6673 	{
6674 		.data_type      = QMI_STRUCT,
6675 		.elem_len       = 1,
6676 		.elem_size      = sizeof(struct qmi_response_type_v01),
6677 		.array_type       = NO_ARRAY,
6678 		.tlv_type       = 0x02,
6679 		.offset         = offsetof(struct
6680 					   wlfw_aux_uc_info_resp_msg_v01,
6681 					   resp),
6682 		.ei_array      = qmi_response_type_v01_ei,
6683 	},
6684 	{
6685 		.data_type      = QMI_EOTI,
6686 		.array_type       = NO_ARRAY,
6687 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6688 	},
6689 };
6690 EXPORT_SYMBOL(wlfw_aux_uc_info_resp_msg_v01_ei);
6691 
6692 struct qmi_elem_info wlfw_tme_lite_info_req_msg_v01_ei[] = {
6693 	{
6694 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6695 		.elem_len       = 1,
6696 		.elem_size      = sizeof(enum wlfw_tme_lite_file_type_v01),
6697 		.array_type       = NO_ARRAY,
6698 		.tlv_type       = 0x01,
6699 		.offset         = offsetof(struct
6700 					   wlfw_tme_lite_info_req_msg_v01,
6701 					   tme_file),
6702 	},
6703 	{
6704 		.data_type      = QMI_UNSIGNED_8_BYTE,
6705 		.elem_len       = 1,
6706 		.elem_size      = sizeof(u64),
6707 		.array_type       = NO_ARRAY,
6708 		.tlv_type       = 0x02,
6709 		.offset         = offsetof(struct
6710 					   wlfw_tme_lite_info_req_msg_v01,
6711 					   addr),
6712 	},
6713 	{
6714 		.data_type      = QMI_UNSIGNED_4_BYTE,
6715 		.elem_len       = 1,
6716 		.elem_size      = sizeof(u32),
6717 		.array_type       = NO_ARRAY,
6718 		.tlv_type       = 0x03,
6719 		.offset         = offsetof(struct
6720 					   wlfw_tme_lite_info_req_msg_v01,
6721 					   size),
6722 	},
6723 	{
6724 		.data_type      = QMI_EOTI,
6725 		.array_type       = NO_ARRAY,
6726 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6727 	},
6728 };
6729 EXPORT_SYMBOL(wlfw_tme_lite_info_req_msg_v01_ei);
6730 
6731 struct qmi_elem_info wlfw_tme_lite_info_resp_msg_v01_ei[] = {
6732 	{
6733 		.data_type      = QMI_STRUCT,
6734 		.elem_len       = 1,
6735 		.elem_size      = sizeof(struct qmi_response_type_v01),
6736 		.array_type       = NO_ARRAY,
6737 		.tlv_type       = 0x02,
6738 		.offset         = offsetof(struct
6739 					   wlfw_tme_lite_info_resp_msg_v01,
6740 					   resp),
6741 		.ei_array      = qmi_response_type_v01_ei,
6742 	},
6743 	{
6744 		.data_type      = QMI_EOTI,
6745 		.array_type       = NO_ARRAY,
6746 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6747 	},
6748 };
6749 EXPORT_SYMBOL(wlfw_tme_lite_info_resp_msg_v01_ei);
6750 
6751 struct qmi_elem_info wlfw_soft_sku_info_req_msg_v01_ei[] = {
6752 	{
6753 		.data_type      = QMI_UNSIGNED_8_BYTE,
6754 		.elem_len       = 1,
6755 		.elem_size      = sizeof(u64),
6756 		.array_type       = NO_ARRAY,
6757 		.tlv_type       = 0x01,
6758 		.offset         = offsetof(struct
6759 					   wlfw_soft_sku_info_req_msg_v01,
6760 					   addr),
6761 	},
6762 	{
6763 		.data_type      = QMI_UNSIGNED_4_BYTE,
6764 		.elem_len       = 1,
6765 		.elem_size      = sizeof(u32),
6766 		.array_type       = NO_ARRAY,
6767 		.tlv_type       = 0x02,
6768 		.offset         = offsetof(struct
6769 					   wlfw_soft_sku_info_req_msg_v01,
6770 					   size),
6771 	},
6772 	{
6773 		.data_type      = QMI_EOTI,
6774 		.array_type       = NO_ARRAY,
6775 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6776 	},
6777 };
6778 EXPORT_SYMBOL(wlfw_soft_sku_info_req_msg_v01_ei);
6779 
6780 struct qmi_elem_info wlfw_soft_sku_info_resp_msg_v01_ei[] = {
6781 	{
6782 		.data_type      = QMI_STRUCT,
6783 		.elem_len       = 1,
6784 		.elem_size      = sizeof(struct qmi_response_type_v01),
6785 		.array_type       = NO_ARRAY,
6786 		.tlv_type       = 0x02,
6787 		.offset         = offsetof(struct
6788 					   wlfw_soft_sku_info_resp_msg_v01,
6789 					   resp),
6790 		.ei_array      = qmi_response_type_v01_ei,
6791 	},
6792 	{
6793 		.data_type      = QMI_EOTI,
6794 		.array_type       = NO_ARRAY,
6795 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6796 	},
6797 };
6798 EXPORT_SYMBOL(wlfw_soft_sku_info_resp_msg_v01_ei);
6799 
6800 struct qmi_elem_info wlfw_fw_ssr_ind_msg_v01_ei[] = {
6801 	{
6802 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6803 		.elem_len       = 1,
6804 		.elem_size      = sizeof(enum wlfw_fw_ssr_reason_v01),
6805 		.array_type       = NO_ARRAY,
6806 		.tlv_type       = 0x01,
6807 		.offset         = offsetof(struct
6808 					   wlfw_fw_ssr_ind_msg_v01,
6809 					   reason_code),
6810 	},
6811 	{
6812 		.data_type      = QMI_EOTI,
6813 		.array_type       = NO_ARRAY,
6814 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6815 	},
6816 };
6817 EXPORT_SYMBOL(wlfw_fw_ssr_ind_msg_v01_ei);
6818 
6819 struct qmi_elem_info wlfw_bmps_ctrl_req_msg_v01_ei[] = {
6820 	{
6821 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6822 		.elem_len       = 1,
6823 		.elem_size      = sizeof(enum wlfw_bmps_state_enum_v01),
6824 		.array_type       = NO_ARRAY,
6825 		.tlv_type       = 0x01,
6826 		.offset         = offsetof(struct
6827 					   wlfw_bmps_ctrl_req_msg_v01,
6828 					   bmps_state),
6829 	},
6830 	{
6831 		.data_type      = QMI_EOTI,
6832 		.array_type       = NO_ARRAY,
6833 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6834 	},
6835 };
6836 EXPORT_SYMBOL(wlfw_bmps_ctrl_req_msg_v01_ei);
6837 
6838 struct qmi_elem_info wlfw_bmps_ctrl_resp_msg_v01_ei[] = {
6839 	{
6840 		.data_type      = QMI_STRUCT,
6841 		.elem_len       = 1,
6842 		.elem_size      = sizeof(struct qmi_response_type_v01),
6843 		.array_type       = NO_ARRAY,
6844 		.tlv_type       = 0x02,
6845 		.offset         = offsetof(struct
6846 					   wlfw_bmps_ctrl_resp_msg_v01,
6847 					   resp),
6848 		.ei_array      = qmi_response_type_v01_ei,
6849 	},
6850 	{
6851 		.data_type      = QMI_EOTI,
6852 		.array_type       = NO_ARRAY,
6853 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6854 	},
6855 };
6856 EXPORT_SYMBOL(wlfw_bmps_ctrl_resp_msg_v01_ei);
6857 
6858 struct qmi_elem_info wlfw_lpass_ssr_req_msg_v01_ei[] = {
6859 	{
6860 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
6861 		.elem_len       = 1,
6862 		.elem_size      = sizeof(enum wlfw_lpass_ssr_reason_v01),
6863 		.array_type       = NO_ARRAY,
6864 		.tlv_type       = 0x01,
6865 		.offset         = offsetof(struct
6866 					   wlfw_lpass_ssr_req_msg_v01,
6867 					   reason_code),
6868 	},
6869 	{
6870 		.data_type      = QMI_EOTI,
6871 		.array_type       = NO_ARRAY,
6872 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6873 	},
6874 };
6875 EXPORT_SYMBOL(wlfw_lpass_ssr_req_msg_v01_ei);
6876 
6877 struct qmi_elem_info wlfw_lpass_ssr_resp_msg_v01_ei[] = {
6878 	{
6879 		.data_type      = QMI_STRUCT,
6880 		.elem_len       = 1,
6881 		.elem_size      = sizeof(struct qmi_response_type_v01),
6882 		.array_type       = NO_ARRAY,
6883 		.tlv_type       = 0x02,
6884 		.offset         = offsetof(struct
6885 					   wlfw_lpass_ssr_resp_msg_v01,
6886 					   resp),
6887 		.ei_array      = qmi_response_type_v01_ei,
6888 	},
6889 	{
6890 		.data_type      = QMI_EOTI,
6891 		.array_type       = NO_ARRAY,
6892 		.tlv_type       = QMI_COMMON_TLV_TYPE,
6893 	},
6894 };
6895 EXPORT_SYMBOL(wlfw_lpass_ssr_resp_msg_v01_ei);
6896 
6897 struct qmi_elem_info wlfw_mlo_reconfig_info_req_msg_v01_ei[] = {
6898 	{
6899 		.data_type      = QMI_OPT_FLAG,
6900 		.elem_len       = 1,
6901 		.elem_size      = sizeof(u8),
6902 		.array_type       = NO_ARRAY,
6903 		.tlv_type       = 0x10,
6904 		.offset         = offsetof(struct
6905 					   wlfw_mlo_reconfig_info_req_msg_v01,
6906 					   mlo_capable_valid),
6907 	},
6908 	{
6909 		.data_type      = QMI_UNSIGNED_1_BYTE,
6910 		.elem_len       = 1,
6911 		.elem_size      = sizeof(u8),
6912 		.array_type       = NO_ARRAY,
6913 		.tlv_type       = 0x10,
6914 		.offset         = offsetof(struct
6915 					   wlfw_mlo_reconfig_info_req_msg_v01,
6916 					   mlo_capable),
6917 	},
6918 	{
6919 		.data_type      = QMI_OPT_FLAG,
6920 		.elem_len       = 1,
6921 		.elem_size      = sizeof(u8),
6922 		.array_type       = NO_ARRAY,
6923 		.tlv_type       = 0x11,
6924 		.offset         = offsetof(struct
6925 					   wlfw_mlo_reconfig_info_req_msg_v01,
6926 					   mlo_chip_id_valid),
6927 	},
6928 	{
6929 		.data_type      = QMI_UNSIGNED_2_BYTE,
6930 		.elem_len       = 1,
6931 		.elem_size      = sizeof(u16),
6932 		.array_type       = NO_ARRAY,
6933 		.tlv_type       = 0x11,
6934 		.offset         = offsetof(struct
6935 					   wlfw_mlo_reconfig_info_req_msg_v01,
6936 					   mlo_chip_id),
6937 	},
6938 	{
6939 		.data_type      = QMI_OPT_FLAG,
6940 		.elem_len       = 1,
6941 		.elem_size      = sizeof(u8),
6942 		.array_type       = NO_ARRAY,
6943 		.tlv_type       = 0x12,
6944 		.offset         = offsetof(struct
6945 					   wlfw_mlo_reconfig_info_req_msg_v01,
6946 					   mlo_group_id_valid),
6947 	},
6948 	{
6949 		.data_type      = QMI_UNSIGNED_1_BYTE,
6950 		.elem_len       = 1,
6951 		.elem_size      = sizeof(u8),
6952 		.array_type       = NO_ARRAY,
6953 		.tlv_type       = 0x12,
6954 		.offset         = offsetof(struct
6955 					   wlfw_mlo_reconfig_info_req_msg_v01,
6956 					   mlo_group_id),
6957 	},
6958 	{
6959 		.data_type      = QMI_OPT_FLAG,
6960 		.elem_len       = 1,
6961 		.elem_size      = sizeof(u8),
6962 		.array_type       = NO_ARRAY,
6963 		.tlv_type       = 0x13,
6964 		.offset         = offsetof(struct
6965 					   wlfw_mlo_reconfig_info_req_msg_v01,
6966 					   max_mlo_peer_valid),
6967 	},
6968 	{
6969 		.data_type      = QMI_UNSIGNED_2_BYTE,
6970 		.elem_len       = 1,
6971 		.elem_size      = sizeof(u16),
6972 		.array_type       = NO_ARRAY,
6973 		.tlv_type       = 0x13,
6974 		.offset         = offsetof(struct
6975 					   wlfw_mlo_reconfig_info_req_msg_v01,
6976 					   max_mlo_peer),
6977 	},
6978 	{
6979 		.data_type      = QMI_OPT_FLAG,
6980 		.elem_len       = 1,
6981 		.elem_size      = sizeof(u8),
6982 		.array_type       = NO_ARRAY,
6983 		.tlv_type       = 0x14,
6984 		.offset         = offsetof(struct
6985 					   wlfw_mlo_reconfig_info_req_msg_v01,
6986 					   mlo_num_chips_valid),
6987 	},
6988 	{
6989 		.data_type      = QMI_UNSIGNED_1_BYTE,
6990 		.elem_len       = 1,
6991 		.elem_size      = sizeof(u8),
6992 		.array_type       = NO_ARRAY,
6993 		.tlv_type       = 0x14,
6994 		.offset         = offsetof(struct
6995 					   wlfw_mlo_reconfig_info_req_msg_v01,
6996 					   mlo_num_chips),
6997 	},
6998 	{
6999 		.data_type      = QMI_OPT_FLAG,
7000 		.elem_len       = 1,
7001 		.elem_size      = sizeof(u8),
7002 		.array_type       = NO_ARRAY,
7003 		.tlv_type       = 0x15,
7004 		.offset         = offsetof(struct
7005 					   wlfw_mlo_reconfig_info_req_msg_v01,
7006 					   mlo_chip_info_valid),
7007 	},
7008 	{
7009 		.data_type      = QMI_STRUCT,
7010 		.elem_len       = QMI_WLFW_MAX_MLO_CHIP_V01,
7011 		.elem_size      = sizeof(struct mlo_chip_info_s_v01),
7012 		.array_type       = STATIC_ARRAY,
7013 		.tlv_type       = 0x15,
7014 		.offset         = offsetof(struct
7015 					   wlfw_mlo_reconfig_info_req_msg_v01,
7016 					   mlo_chip_info),
7017 		.ei_array      = mlo_chip_info_s_v01_ei,
7018 	},
7019 	{
7020 		.data_type      = QMI_OPT_FLAG,
7021 		.elem_len       = 1,
7022 		.elem_size      = sizeof(u8),
7023 		.array_type       = NO_ARRAY,
7024 		.tlv_type       = 0x16,
7025 		.offset         = offsetof(struct
7026 					   wlfw_mlo_reconfig_info_req_msg_v01,
7027 					   mlo_chip_v2_info_valid),
7028 	},
7029 	{
7030 		.data_type      = QMI_STRUCT,
7031 		.elem_len       = QMI_WLFW_MLO_V2_CHP_V01,
7032 		.elem_size      = sizeof(struct mlo_chip_v2_info_s_v01),
7033 		.array_type       = STATIC_ARRAY,
7034 		.tlv_type       = 0x16,
7035 		.offset         = offsetof(struct
7036 					   wlfw_mlo_reconfig_info_req_msg_v01,
7037 					   mlo_chip_v2_info),
7038 		.ei_array      = mlo_chip_v2_info_s_v01_ei,
7039 	},
7040 	{
7041 		.data_type      = QMI_EOTI,
7042 		.array_type       = NO_ARRAY,
7043 		.tlv_type       = QMI_COMMON_TLV_TYPE,
7044 	},
7045 };
7046 EXPORT_SYMBOL(wlfw_mlo_reconfig_info_req_msg_v01_ei);
7047 
7048 struct qmi_elem_info wlfw_mlo_reconfig_info_resp_msg_v01_ei[] = {
7049 	{
7050 		.data_type      = QMI_STRUCT,
7051 		.elem_len       = 1,
7052 		.elem_size      = sizeof(struct qmi_response_type_v01),
7053 		.array_type       = NO_ARRAY,
7054 		.tlv_type       = 0x02,
7055 		.offset         = offsetof(struct
7056 					   wlfw_mlo_reconfig_info_resp_msg_v01,
7057 					   resp),
7058 		.ei_array      = qmi_response_type_v01_ei,
7059 	},
7060 	{
7061 		.data_type      = QMI_EOTI,
7062 		.array_type       = NO_ARRAY,
7063 		.tlv_type       = QMI_COMMON_TLV_TYPE,
7064 	},
7065 };
7066 EXPORT_SYMBOL(wlfw_mlo_reconfig_info_resp_msg_v01_ei);
7067 
7068 struct qmi_elem_info wlfw_driver_async_data_ind_msg_v01_ei[] = {
7069 	{
7070 		.data_type      = QMI_DATA_LEN,
7071 		.elem_len       = 1,
7072 		.elem_size      = sizeof(u16),
7073 		.array_type       = NO_ARRAY,
7074 		.tlv_type       = 0x01,
7075 		.offset         = offsetof(struct
7076 					   wlfw_driver_async_data_ind_msg_v01,
7077 					   data_len),
7078 	},
7079 	{
7080 		.data_type      = QMI_UNSIGNED_1_BYTE,
7081 		.elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
7082 		.elem_size      = sizeof(u8),
7083 		.array_type       = VAR_LEN_ARRAY,
7084 		.tlv_type       = 0x01,
7085 		.offset         = offsetof(struct
7086 					   wlfw_driver_async_data_ind_msg_v01,
7087 					   data),
7088 	},
7089 	{
7090 		.data_type      = QMI_UNSIGNED_2_BYTE,
7091 		.elem_len       = 1,
7092 		.elem_size      = sizeof(u16),
7093 		.array_type       = NO_ARRAY,
7094 		.tlv_type       = 0x02,
7095 		.offset         = offsetof(struct
7096 					   wlfw_driver_async_data_ind_msg_v01,
7097 					   type),
7098 	},
7099 	{
7100 		.data_type      = QMI_EOTI,
7101 		.array_type       = NO_ARRAY,
7102 		.tlv_type       = QMI_COMMON_TLV_TYPE,
7103 	},
7104 };
7105 EXPORT_SYMBOL(wlfw_driver_async_data_ind_msg_v01_ei);
7106 
7107 /**
7108  * wlfw_is_valid_dt_node_found - Check if valid device tree node present
7109  *
7110  * Valid device tree node means a node with "qcom,wlan" property present and
7111  * "status" property not disabled.
7112  *
7113  * Return: true if valid device tree node found, false if not found
7114  */
wlfw_is_valid_dt_node_found(void)7115 static bool wlfw_is_valid_dt_node_found(void)
7116 {
7117 	struct device_node *dn = NULL;
7118 
7119 	for_each_node_with_property(dn, "qcom,wlan") {
7120 		if (of_device_is_available(dn))
7121 			break;
7122 	}
7123 
7124 	if (dn)
7125 		return true;
7126 
7127 	return false;
7128 }
7129 
wlfw_init(void)7130 static int __init wlfw_init(void)
7131 {
7132 	if (!wlfw_is_valid_dt_node_found())
7133 		return -ENODEV;
7134 
7135 	return 0;
7136 }
7137 
7138 module_init(wlfw_init);
7139 MODULE_LICENSE("GPL v2");
7140 MODULE_DESCRIPTION("WLAN FW QMI service");
7141