1 // SPDX-License-Identifier: ISC
3 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
7 #include <linux/soc/qcom/qmi.h>
8 #include <linux/types.h>
9 #include "qmi_wlfw_v01.h"
11 static const struct qmi_elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
13 .data_type = QMI_UNSIGNED_4_BYTE,
15 .elem_size = sizeof(u32),
16 .array_type = NO_ARRAY,
18 .offset = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
22 .data_type = QMI_SIGNED_4_BYTE_ENUM,
24 .elem_size = sizeof(enum wlfw_pipedir_enum_v01),
25 .array_type = NO_ARRAY,
27 .offset = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
31 .data_type = QMI_UNSIGNED_4_BYTE,
33 .elem_size = sizeof(u32),
34 .array_type = NO_ARRAY,
36 .offset = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
40 .data_type = QMI_UNSIGNED_4_BYTE,
42 .elem_size = sizeof(u32),
43 .array_type = NO_ARRAY,
45 .offset = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
49 .data_type = QMI_UNSIGNED_4_BYTE,
51 .elem_size = sizeof(u32),
52 .array_type = NO_ARRAY,
54 .offset = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
60 static const struct qmi_elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
62 .data_type = QMI_UNSIGNED_4_BYTE,
64 .elem_size = sizeof(u32),
65 .array_type = NO_ARRAY,
67 .offset = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
71 .data_type = QMI_SIGNED_4_BYTE_ENUM,
73 .elem_size = sizeof(enum wlfw_pipedir_enum_v01),
74 .array_type = NO_ARRAY,
76 .offset = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
80 .data_type = QMI_UNSIGNED_4_BYTE,
82 .elem_size = sizeof(u32),
83 .array_type = NO_ARRAY,
85 .offset = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
91 static const struct qmi_elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
93 .data_type = QMI_UNSIGNED_2_BYTE,
95 .elem_size = sizeof(u16),
96 .array_type = NO_ARRAY,
98 .offset = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
102 .data_type = QMI_UNSIGNED_2_BYTE,
104 .elem_size = sizeof(u16),
105 .array_type = NO_ARRAY,
107 .offset = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
113 static const struct qmi_elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {
115 .data_type = QMI_UNSIGNED_4_BYTE,
117 .elem_size = sizeof(u32),
118 .array_type = NO_ARRAY,
120 .offset = offsetof(struct wlfw_shadow_reg_v2_cfg_s_v01,
126 static const struct qmi_elem_info wlfw_memory_region_info_s_v01_ei[] = {
128 .data_type = QMI_UNSIGNED_8_BYTE,
130 .elem_size = sizeof(u64),
131 .array_type = NO_ARRAY,
133 .offset = offsetof(struct wlfw_memory_region_info_s_v01,
137 .data_type = QMI_UNSIGNED_4_BYTE,
139 .elem_size = sizeof(u32),
140 .array_type = NO_ARRAY,
142 .offset = offsetof(struct wlfw_memory_region_info_s_v01,
146 .data_type = QMI_UNSIGNED_1_BYTE,
148 .elem_size = sizeof(u8),
149 .array_type = NO_ARRAY,
151 .offset = offsetof(struct wlfw_memory_region_info_s_v01,
157 static const struct qmi_elem_info wlfw_mem_cfg_s_v01_ei[] = {
159 .data_type = QMI_UNSIGNED_8_BYTE,
161 .elem_size = sizeof(u64),
162 .array_type = NO_ARRAY,
164 .offset = offsetof(struct wlfw_mem_cfg_s_v01,
168 .data_type = QMI_UNSIGNED_4_BYTE,
170 .elem_size = sizeof(u32),
171 .array_type = NO_ARRAY,
173 .offset = offsetof(struct wlfw_mem_cfg_s_v01,
177 .data_type = QMI_UNSIGNED_1_BYTE,
179 .elem_size = sizeof(u8),
180 .array_type = NO_ARRAY,
182 .offset = offsetof(struct wlfw_mem_cfg_s_v01,
188 static const struct qmi_elem_info wlfw_mem_seg_s_v01_ei[] = {
190 .data_type = QMI_UNSIGNED_4_BYTE,
192 .elem_size = sizeof(u32),
193 .array_type = NO_ARRAY,
195 .offset = offsetof(struct wlfw_mem_seg_s_v01,
199 .data_type = QMI_SIGNED_4_BYTE_ENUM,
201 .elem_size = sizeof(enum wlfw_mem_type_enum_v01),
202 .array_type = NO_ARRAY,
204 .offset = offsetof(struct wlfw_mem_seg_s_v01,
208 .data_type = QMI_DATA_LEN,
210 .elem_size = sizeof(u8),
211 .array_type = NO_ARRAY,
213 .offset = offsetof(struct wlfw_mem_seg_s_v01,
217 .data_type = QMI_STRUCT,
218 .elem_len = QMI_WLFW_MAX_NUM_MEM_CFG_V01,
219 .elem_size = sizeof(struct wlfw_mem_cfg_s_v01),
220 .array_type = VAR_LEN_ARRAY,
222 .offset = offsetof(struct wlfw_mem_seg_s_v01,
224 .ei_array = wlfw_mem_cfg_s_v01_ei,
229 static const struct qmi_elem_info wlfw_mem_seg_resp_s_v01_ei[] = {
231 .data_type = QMI_UNSIGNED_8_BYTE,
233 .elem_size = sizeof(u64),
234 .array_type = NO_ARRAY,
236 .offset = offsetof(struct wlfw_mem_seg_resp_s_v01,
240 .data_type = QMI_UNSIGNED_4_BYTE,
242 .elem_size = sizeof(u32),
243 .array_type = NO_ARRAY,
245 .offset = offsetof(struct wlfw_mem_seg_resp_s_v01,
249 .data_type = QMI_SIGNED_4_BYTE_ENUM,
251 .elem_size = sizeof(enum wlfw_mem_type_enum_v01),
252 .array_type = NO_ARRAY,
254 .offset = offsetof(struct wlfw_mem_seg_resp_s_v01,
260 static const struct qmi_elem_info wlfw_rf_chip_info_s_v01_ei[] = {
262 .data_type = QMI_UNSIGNED_4_BYTE,
264 .elem_size = sizeof(u32),
265 .array_type = NO_ARRAY,
267 .offset = offsetof(struct wlfw_rf_chip_info_s_v01,
271 .data_type = QMI_UNSIGNED_4_BYTE,
273 .elem_size = sizeof(u32),
274 .array_type = NO_ARRAY,
276 .offset = offsetof(struct wlfw_rf_chip_info_s_v01,
282 static const struct qmi_elem_info wlfw_rf_board_info_s_v01_ei[] = {
284 .data_type = QMI_UNSIGNED_4_BYTE,
286 .elem_size = sizeof(u32),
287 .array_type = NO_ARRAY,
289 .offset = offsetof(struct wlfw_rf_board_info_s_v01,
295 static const struct qmi_elem_info wlfw_soc_info_s_v01_ei[] = {
297 .data_type = QMI_UNSIGNED_4_BYTE,
299 .elem_size = sizeof(u32),
300 .array_type = NO_ARRAY,
302 .offset = offsetof(struct wlfw_soc_info_s_v01,
308 static const struct qmi_elem_info wlfw_fw_version_info_s_v01_ei[] = {
310 .data_type = QMI_UNSIGNED_4_BYTE,
312 .elem_size = sizeof(u32),
313 .array_type = NO_ARRAY,
315 .offset = offsetof(struct wlfw_fw_version_info_s_v01,
319 .data_type = QMI_STRING,
320 .elem_len = QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1,
321 .elem_size = sizeof(char),
322 .array_type = NO_ARRAY,
324 .offset = offsetof(struct wlfw_fw_version_info_s_v01,
330 const struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = {
332 .data_type = QMI_OPT_FLAG,
334 .elem_size = sizeof(u8),
335 .array_type = NO_ARRAY,
337 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
338 fw_ready_enable_valid),
341 .data_type = QMI_UNSIGNED_1_BYTE,
343 .elem_size = sizeof(u8),
344 .array_type = NO_ARRAY,
346 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
350 .data_type = QMI_OPT_FLAG,
352 .elem_size = sizeof(u8),
353 .array_type = NO_ARRAY,
355 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
356 initiate_cal_download_enable_valid),
359 .data_type = QMI_UNSIGNED_1_BYTE,
361 .elem_size = sizeof(u8),
362 .array_type = NO_ARRAY,
364 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
365 initiate_cal_download_enable),
368 .data_type = QMI_OPT_FLAG,
370 .elem_size = sizeof(u8),
371 .array_type = NO_ARRAY,
373 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
374 initiate_cal_update_enable_valid),
377 .data_type = QMI_UNSIGNED_1_BYTE,
379 .elem_size = sizeof(u8),
380 .array_type = NO_ARRAY,
382 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
383 initiate_cal_update_enable),
386 .data_type = QMI_OPT_FLAG,
388 .elem_size = sizeof(u8),
389 .array_type = NO_ARRAY,
391 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
392 msa_ready_enable_valid),
395 .data_type = QMI_UNSIGNED_1_BYTE,
397 .elem_size = sizeof(u8),
398 .array_type = NO_ARRAY,
400 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
404 .data_type = QMI_OPT_FLAG,
406 .elem_size = sizeof(u8),
407 .array_type = NO_ARRAY,
409 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
410 pin_connect_result_enable_valid),
413 .data_type = QMI_UNSIGNED_1_BYTE,
415 .elem_size = sizeof(u8),
416 .array_type = NO_ARRAY,
418 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
419 pin_connect_result_enable),
422 .data_type = QMI_OPT_FLAG,
424 .elem_size = sizeof(u8),
425 .array_type = NO_ARRAY,
427 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
431 .data_type = QMI_UNSIGNED_4_BYTE,
433 .elem_size = sizeof(u32),
434 .array_type = NO_ARRAY,
436 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
440 .data_type = QMI_OPT_FLAG,
442 .elem_size = sizeof(u8),
443 .array_type = NO_ARRAY,
445 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
446 request_mem_enable_valid),
449 .data_type = QMI_UNSIGNED_1_BYTE,
451 .elem_size = sizeof(u8),
452 .array_type = NO_ARRAY,
454 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
458 .data_type = QMI_OPT_FLAG,
460 .elem_size = sizeof(u8),
461 .array_type = NO_ARRAY,
463 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
464 mem_ready_enable_valid),
467 .data_type = QMI_UNSIGNED_1_BYTE,
469 .elem_size = sizeof(u8),
470 .array_type = NO_ARRAY,
472 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
476 .data_type = QMI_OPT_FLAG,
478 .elem_size = sizeof(u8),
479 .array_type = NO_ARRAY,
481 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
482 fw_init_done_enable_valid),
485 .data_type = QMI_UNSIGNED_1_BYTE,
487 .elem_size = sizeof(u8),
488 .array_type = NO_ARRAY,
490 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
491 fw_init_done_enable),
494 .data_type = QMI_OPT_FLAG,
496 .elem_size = sizeof(u8),
497 .array_type = NO_ARRAY,
499 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
500 rejuvenate_enable_valid),
503 .data_type = QMI_UNSIGNED_4_BYTE,
505 .elem_size = sizeof(u32),
506 .array_type = NO_ARRAY,
508 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
512 .data_type = QMI_OPT_FLAG,
514 .elem_size = sizeof(u8),
515 .array_type = NO_ARRAY,
517 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
518 xo_cal_enable_valid),
521 .data_type = QMI_UNSIGNED_1_BYTE,
523 .elem_size = sizeof(u8),
524 .array_type = NO_ARRAY,
526 .offset = offsetof(struct wlfw_ind_register_req_msg_v01,
532 const struct qmi_elem_info wlfw_ind_register_resp_msg_v01_ei[] = {
534 .data_type = QMI_STRUCT,
536 .elem_size = sizeof(struct qmi_response_type_v01),
537 .array_type = NO_ARRAY,
539 .offset = offsetof(struct wlfw_ind_register_resp_msg_v01,
541 .ei_array = qmi_response_type_v01_ei,
544 .data_type = QMI_OPT_FLAG,
546 .elem_size = sizeof(u8),
547 .array_type = NO_ARRAY,
549 .offset = offsetof(struct wlfw_ind_register_resp_msg_v01,
553 .data_type = QMI_UNSIGNED_8_BYTE,
555 .elem_size = sizeof(u64),
556 .array_type = NO_ARRAY,
558 .offset = offsetof(struct wlfw_ind_register_resp_msg_v01,
564 const struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = {
568 const struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = {
572 const struct qmi_elem_info wlfw_pin_connect_result_ind_msg_v01_ei[] = {
574 .data_type = QMI_OPT_FLAG,
576 .elem_size = sizeof(u8),
577 .array_type = NO_ARRAY,
579 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
580 pwr_pin_result_valid),
583 .data_type = QMI_UNSIGNED_4_BYTE,
585 .elem_size = sizeof(u32),
586 .array_type = NO_ARRAY,
588 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
592 .data_type = QMI_OPT_FLAG,
594 .elem_size = sizeof(u8),
595 .array_type = NO_ARRAY,
597 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
598 phy_io_pin_result_valid),
601 .data_type = QMI_UNSIGNED_4_BYTE,
603 .elem_size = sizeof(u32),
604 .array_type = NO_ARRAY,
606 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
610 .data_type = QMI_OPT_FLAG,
612 .elem_size = sizeof(u8),
613 .array_type = NO_ARRAY,
615 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
616 rf_pin_result_valid),
619 .data_type = QMI_UNSIGNED_4_BYTE,
621 .elem_size = sizeof(u32),
622 .array_type = NO_ARRAY,
624 .offset = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
630 const struct qmi_elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
632 .data_type = QMI_SIGNED_4_BYTE_ENUM,
634 .elem_size = sizeof(enum wlfw_driver_mode_enum_v01),
635 .array_type = NO_ARRAY,
637 .offset = offsetof(struct wlfw_wlan_mode_req_msg_v01,
641 .data_type = QMI_OPT_FLAG,
643 .elem_size = sizeof(u8),
644 .array_type = NO_ARRAY,
646 .offset = offsetof(struct wlfw_wlan_mode_req_msg_v01,
650 .data_type = QMI_UNSIGNED_1_BYTE,
652 .elem_size = sizeof(u8),
653 .array_type = NO_ARRAY,
655 .offset = offsetof(struct wlfw_wlan_mode_req_msg_v01,
661 const struct qmi_elem_info wlfw_wlan_mode_resp_msg_v01_ei[] = {
663 .data_type = QMI_STRUCT,
665 .elem_size = sizeof(struct qmi_response_type_v01),
666 .array_type = NO_ARRAY,
668 .offset = offsetof(struct wlfw_wlan_mode_resp_msg_v01,
670 .ei_array = qmi_response_type_v01_ei,
675 const struct qmi_elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
677 .data_type = QMI_OPT_FLAG,
679 .elem_size = sizeof(u8),
680 .array_type = NO_ARRAY,
682 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
686 .data_type = QMI_STRING,
687 .elem_len = QMI_WLFW_MAX_STR_LEN_V01 + 1,
688 .elem_size = sizeof(char),
689 .array_type = NO_ARRAY,
691 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
695 .data_type = QMI_OPT_FLAG,
697 .elem_size = sizeof(u8),
698 .array_type = NO_ARRAY,
700 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
704 .data_type = QMI_DATA_LEN,
706 .elem_size = sizeof(u8),
707 .array_type = NO_ARRAY,
709 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
713 .data_type = QMI_STRUCT,
714 .elem_len = QMI_WLFW_MAX_NUM_CE_V01,
715 .elem_size = sizeof(struct wlfw_ce_tgt_pipe_cfg_s_v01),
716 .array_type = VAR_LEN_ARRAY,
718 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
720 .ei_array = wlfw_ce_tgt_pipe_cfg_s_v01_ei,
723 .data_type = QMI_OPT_FLAG,
725 .elem_size = sizeof(u8),
726 .array_type = NO_ARRAY,
728 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
732 .data_type = QMI_DATA_LEN,
734 .elem_size = sizeof(u8),
735 .array_type = NO_ARRAY,
737 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
741 .data_type = QMI_STRUCT,
742 .elem_len = QMI_WLFW_MAX_NUM_SVC_V01,
743 .elem_size = sizeof(struct wlfw_ce_svc_pipe_cfg_s_v01),
744 .array_type = VAR_LEN_ARRAY,
746 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
748 .ei_array = wlfw_ce_svc_pipe_cfg_s_v01_ei,
751 .data_type = QMI_OPT_FLAG,
753 .elem_size = sizeof(u8),
754 .array_type = NO_ARRAY,
756 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
760 .data_type = QMI_DATA_LEN,
762 .elem_size = sizeof(u8),
763 .array_type = NO_ARRAY,
765 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
769 .data_type = QMI_STRUCT,
770 .elem_len = QMI_WLFW_MAX_NUM_SHADOW_REG_V01,
771 .elem_size = sizeof(struct wlfw_shadow_reg_cfg_s_v01),
772 .array_type = VAR_LEN_ARRAY,
774 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
776 .ei_array = wlfw_shadow_reg_cfg_s_v01_ei,
779 .data_type = QMI_OPT_FLAG,
781 .elem_size = sizeof(u8),
782 .array_type = NO_ARRAY,
784 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
785 shadow_reg_v2_valid),
788 .data_type = QMI_DATA_LEN,
790 .elem_size = sizeof(u8),
791 .array_type = NO_ARRAY,
793 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
797 .data_type = QMI_STRUCT,
798 .elem_len = QMI_WLFW_MAX_SHADOW_REG_V2,
799 .elem_size = sizeof(struct wlfw_shadow_reg_v2_cfg_s_v01),
800 .array_type = VAR_LEN_ARRAY,
802 .offset = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
804 .ei_array = wlfw_shadow_reg_v2_cfg_s_v01_ei,
809 const struct qmi_elem_info wlfw_wlan_cfg_resp_msg_v01_ei[] = {
811 .data_type = QMI_STRUCT,
813 .elem_size = sizeof(struct qmi_response_type_v01),
814 .array_type = NO_ARRAY,
816 .offset = offsetof(struct wlfw_wlan_cfg_resp_msg_v01,
818 .ei_array = qmi_response_type_v01_ei,
823 const struct qmi_elem_info wlfw_cap_req_msg_v01_ei[] = {
827 const struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = {
829 .data_type = QMI_STRUCT,
831 .elem_size = sizeof(struct qmi_response_type_v01),
832 .array_type = NO_ARRAY,
834 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
836 .ei_array = qmi_response_type_v01_ei,
839 .data_type = QMI_OPT_FLAG,
841 .elem_size = sizeof(u8),
842 .array_type = NO_ARRAY,
844 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
848 .data_type = QMI_STRUCT,
850 .elem_size = sizeof(struct wlfw_rf_chip_info_s_v01),
851 .array_type = NO_ARRAY,
853 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
855 .ei_array = wlfw_rf_chip_info_s_v01_ei,
858 .data_type = QMI_OPT_FLAG,
860 .elem_size = sizeof(u8),
861 .array_type = NO_ARRAY,
863 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
867 .data_type = QMI_STRUCT,
869 .elem_size = sizeof(struct wlfw_rf_board_info_s_v01),
870 .array_type = NO_ARRAY,
872 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
874 .ei_array = wlfw_rf_board_info_s_v01_ei,
877 .data_type = QMI_OPT_FLAG,
879 .elem_size = sizeof(u8),
880 .array_type = NO_ARRAY,
882 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
886 .data_type = QMI_STRUCT,
888 .elem_size = sizeof(struct wlfw_soc_info_s_v01),
889 .array_type = NO_ARRAY,
891 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
893 .ei_array = wlfw_soc_info_s_v01_ei,
896 .data_type = QMI_OPT_FLAG,
898 .elem_size = sizeof(u8),
899 .array_type = NO_ARRAY,
901 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
902 fw_version_info_valid),
905 .data_type = QMI_STRUCT,
907 .elem_size = sizeof(struct wlfw_fw_version_info_s_v01),
908 .array_type = NO_ARRAY,
910 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
912 .ei_array = wlfw_fw_version_info_s_v01_ei,
915 .data_type = QMI_OPT_FLAG,
917 .elem_size = sizeof(u8),
918 .array_type = NO_ARRAY,
920 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
924 .data_type = QMI_STRING,
925 .elem_len = QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1,
926 .elem_size = sizeof(char),
927 .array_type = NO_ARRAY,
929 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
933 .data_type = QMI_OPT_FLAG,
935 .elem_size = sizeof(u8),
936 .array_type = NO_ARRAY,
938 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
942 .data_type = QMI_UNSIGNED_1_BYTE,
944 .elem_size = sizeof(u8),
945 .array_type = NO_ARRAY,
947 .offset = offsetof(struct wlfw_cap_resp_msg_v01,
953 const struct qmi_elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
955 .data_type = QMI_UNSIGNED_1_BYTE,
957 .elem_size = sizeof(u8),
958 .array_type = NO_ARRAY,
960 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
964 .data_type = QMI_OPT_FLAG,
966 .elem_size = sizeof(u8),
967 .array_type = NO_ARRAY,
969 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
973 .data_type = QMI_SIGNED_4_BYTE_ENUM,
975 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
976 .array_type = NO_ARRAY,
978 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
982 .data_type = QMI_OPT_FLAG,
984 .elem_size = sizeof(u8),
985 .array_type = NO_ARRAY,
987 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
991 .data_type = QMI_UNSIGNED_4_BYTE,
993 .elem_size = sizeof(u32),
994 .array_type = NO_ARRAY,
996 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1000 .data_type = QMI_OPT_FLAG,
1002 .elem_size = sizeof(u8),
1003 .array_type = NO_ARRAY,
1005 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1009 .data_type = QMI_UNSIGNED_4_BYTE,
1011 .elem_size = sizeof(u32),
1012 .array_type = NO_ARRAY,
1014 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1018 .data_type = QMI_OPT_FLAG,
1020 .elem_size = sizeof(u8),
1021 .array_type = NO_ARRAY,
1023 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1027 .data_type = QMI_DATA_LEN,
1029 .elem_size = sizeof(u16),
1030 .array_type = NO_ARRAY,
1032 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1036 .data_type = QMI_UNSIGNED_1_BYTE,
1037 .elem_len = QMI_WLFW_MAX_DATA_SIZE_V01,
1038 .elem_size = sizeof(u8),
1039 .array_type = VAR_LEN_ARRAY,
1041 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1045 .data_type = QMI_OPT_FLAG,
1047 .elem_size = sizeof(u8),
1048 .array_type = NO_ARRAY,
1050 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1054 .data_type = QMI_UNSIGNED_1_BYTE,
1056 .elem_size = sizeof(u8),
1057 .array_type = NO_ARRAY,
1059 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1063 .data_type = QMI_OPT_FLAG,
1065 .elem_size = sizeof(u8),
1066 .array_type = NO_ARRAY,
1068 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1072 .data_type = QMI_UNSIGNED_1_BYTE,
1074 .elem_size = sizeof(u8),
1075 .array_type = NO_ARRAY,
1077 .offset = offsetof(struct wlfw_bdf_download_req_msg_v01,
1083 const struct qmi_elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {
1085 .data_type = QMI_STRUCT,
1087 .elem_size = sizeof(struct qmi_response_type_v01),
1088 .array_type = NO_ARRAY,
1090 .offset = offsetof(struct wlfw_bdf_download_resp_msg_v01,
1092 .ei_array = qmi_response_type_v01_ei,
1097 const struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = {
1099 .data_type = QMI_DATA_LEN,
1101 .elem_size = sizeof(u8),
1102 .array_type = NO_ARRAY,
1104 .offset = offsetof(struct wlfw_cal_report_req_msg_v01,
1108 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1109 .elem_len = QMI_WLFW_MAX_NUM_CAL_V01,
1110 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1111 .array_type = VAR_LEN_ARRAY,
1113 .offset = offsetof(struct wlfw_cal_report_req_msg_v01,
1117 .data_type = QMI_OPT_FLAG,
1119 .elem_size = sizeof(u8),
1120 .array_type = NO_ARRAY,
1122 .offset = offsetof(struct wlfw_cal_report_req_msg_v01,
1126 .data_type = QMI_UNSIGNED_1_BYTE,
1128 .elem_size = sizeof(u8),
1129 .array_type = NO_ARRAY,
1131 .offset = offsetof(struct wlfw_cal_report_req_msg_v01,
1137 const struct qmi_elem_info wlfw_cal_report_resp_msg_v01_ei[] = {
1139 .data_type = QMI_STRUCT,
1141 .elem_size = sizeof(struct qmi_response_type_v01),
1142 .array_type = NO_ARRAY,
1144 .offset = offsetof(struct wlfw_cal_report_resp_msg_v01,
1146 .ei_array = qmi_response_type_v01_ei,
1151 const struct qmi_elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = {
1153 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1155 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1156 .array_type = NO_ARRAY,
1158 .offset = offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
1164 const struct qmi_elem_info wlfw_cal_download_req_msg_v01_ei[] = {
1166 .data_type = QMI_UNSIGNED_1_BYTE,
1168 .elem_size = sizeof(u8),
1169 .array_type = NO_ARRAY,
1171 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1175 .data_type = QMI_OPT_FLAG,
1177 .elem_size = sizeof(u8),
1178 .array_type = NO_ARRAY,
1180 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1184 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1186 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1187 .array_type = NO_ARRAY,
1189 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1193 .data_type = QMI_OPT_FLAG,
1195 .elem_size = sizeof(u8),
1196 .array_type = NO_ARRAY,
1198 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1202 .data_type = QMI_UNSIGNED_4_BYTE,
1204 .elem_size = sizeof(u32),
1205 .array_type = NO_ARRAY,
1207 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1211 .data_type = QMI_OPT_FLAG,
1213 .elem_size = sizeof(u8),
1214 .array_type = NO_ARRAY,
1216 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1220 .data_type = QMI_UNSIGNED_4_BYTE,
1222 .elem_size = sizeof(u32),
1223 .array_type = NO_ARRAY,
1225 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1229 .data_type = QMI_OPT_FLAG,
1231 .elem_size = sizeof(u8),
1232 .array_type = NO_ARRAY,
1234 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1238 .data_type = QMI_DATA_LEN,
1240 .elem_size = sizeof(u16),
1241 .array_type = NO_ARRAY,
1243 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1247 .data_type = QMI_UNSIGNED_1_BYTE,
1248 .elem_len = QMI_WLFW_MAX_DATA_SIZE_V01,
1249 .elem_size = sizeof(u8),
1250 .array_type = VAR_LEN_ARRAY,
1252 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1256 .data_type = QMI_OPT_FLAG,
1258 .elem_size = sizeof(u8),
1259 .array_type = NO_ARRAY,
1261 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1265 .data_type = QMI_UNSIGNED_1_BYTE,
1267 .elem_size = sizeof(u8),
1268 .array_type = NO_ARRAY,
1270 .offset = offsetof(struct wlfw_cal_download_req_msg_v01,
1276 const struct qmi_elem_info wlfw_cal_download_resp_msg_v01_ei[] = {
1278 .data_type = QMI_STRUCT,
1280 .elem_size = sizeof(struct qmi_response_type_v01),
1281 .array_type = NO_ARRAY,
1283 .offset = offsetof(struct wlfw_cal_download_resp_msg_v01,
1285 .ei_array = qmi_response_type_v01_ei,
1290 const struct qmi_elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = {
1292 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1294 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1295 .array_type = NO_ARRAY,
1297 .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
1301 .data_type = QMI_UNSIGNED_4_BYTE,
1303 .elem_size = sizeof(u32),
1304 .array_type = NO_ARRAY,
1306 .offset = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
1312 const struct qmi_elem_info wlfw_cal_update_req_msg_v01_ei[] = {
1314 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1316 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1317 .array_type = NO_ARRAY,
1319 .offset = offsetof(struct wlfw_cal_update_req_msg_v01,
1323 .data_type = QMI_UNSIGNED_4_BYTE,
1325 .elem_size = sizeof(u32),
1326 .array_type = NO_ARRAY,
1328 .offset = offsetof(struct wlfw_cal_update_req_msg_v01,
1334 const struct qmi_elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
1336 .data_type = QMI_STRUCT,
1338 .elem_size = sizeof(struct qmi_response_type_v01),
1339 .array_type = NO_ARRAY,
1341 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1343 .ei_array = qmi_response_type_v01_ei,
1346 .data_type = QMI_OPT_FLAG,
1348 .elem_size = sizeof(u8),
1349 .array_type = NO_ARRAY,
1351 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1355 .data_type = QMI_SIGNED_4_BYTE_ENUM,
1357 .elem_size = sizeof(enum wlfw_cal_temp_id_enum_v01),
1358 .array_type = NO_ARRAY,
1360 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1364 .data_type = QMI_OPT_FLAG,
1366 .elem_size = sizeof(u8),
1367 .array_type = NO_ARRAY,
1369 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1373 .data_type = QMI_UNSIGNED_4_BYTE,
1375 .elem_size = sizeof(u32),
1376 .array_type = NO_ARRAY,
1378 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1382 .data_type = QMI_OPT_FLAG,
1384 .elem_size = sizeof(u8),
1385 .array_type = NO_ARRAY,
1387 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1391 .data_type = QMI_UNSIGNED_4_BYTE,
1393 .elem_size = sizeof(u32),
1394 .array_type = NO_ARRAY,
1396 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1400 .data_type = QMI_OPT_FLAG,
1402 .elem_size = sizeof(u8),
1403 .array_type = NO_ARRAY,
1405 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1409 .data_type = QMI_DATA_LEN,
1411 .elem_size = sizeof(u16),
1412 .array_type = NO_ARRAY,
1414 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1418 .data_type = QMI_UNSIGNED_1_BYTE,
1419 .elem_len = QMI_WLFW_MAX_DATA_SIZE_V01,
1420 .elem_size = sizeof(u8),
1421 .array_type = VAR_LEN_ARRAY,
1423 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1427 .data_type = QMI_OPT_FLAG,
1429 .elem_size = sizeof(u8),
1430 .array_type = NO_ARRAY,
1432 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1436 .data_type = QMI_UNSIGNED_1_BYTE,
1438 .elem_size = sizeof(u8),
1439 .array_type = NO_ARRAY,
1441 .offset = offsetof(struct wlfw_cal_update_resp_msg_v01,
1447 const struct qmi_elem_info wlfw_msa_info_req_msg_v01_ei[] = {
1449 .data_type = QMI_UNSIGNED_8_BYTE,
1451 .elem_size = sizeof(u64),
1452 .array_type = NO_ARRAY,
1454 .offset = offsetof(struct wlfw_msa_info_req_msg_v01,
1458 .data_type = QMI_UNSIGNED_4_BYTE,
1460 .elem_size = sizeof(u32),
1461 .array_type = NO_ARRAY,
1463 .offset = offsetof(struct wlfw_msa_info_req_msg_v01,
1469 const struct qmi_elem_info wlfw_msa_info_resp_msg_v01_ei[] = {
1471 .data_type = QMI_STRUCT,
1473 .elem_size = sizeof(struct qmi_response_type_v01),
1474 .array_type = NO_ARRAY,
1476 .offset = offsetof(struct wlfw_msa_info_resp_msg_v01,
1478 .ei_array = qmi_response_type_v01_ei,
1481 .data_type = QMI_DATA_LEN,
1483 .elem_size = sizeof(u8),
1484 .array_type = NO_ARRAY,
1486 .offset = offsetof(struct wlfw_msa_info_resp_msg_v01,
1487 mem_region_info_len),
1490 .data_type = QMI_STRUCT,
1491 .elem_len = QMI_WLFW_MAX_MEM_REG_V01,
1492 .elem_size = sizeof(struct wlfw_memory_region_info_s_v01),
1493 .array_type = VAR_LEN_ARRAY,
1495 .offset = offsetof(struct wlfw_msa_info_resp_msg_v01,
1497 .ei_array = wlfw_memory_region_info_s_v01_ei,
1502 const struct qmi_elem_info wlfw_msa_ready_req_msg_v01_ei[] = {
1506 const struct qmi_elem_info wlfw_msa_ready_resp_msg_v01_ei[] = {
1508 .data_type = QMI_STRUCT,
1510 .elem_size = sizeof(struct qmi_response_type_v01),
1511 .array_type = NO_ARRAY,
1513 .offset = offsetof(struct wlfw_msa_ready_resp_msg_v01,
1515 .ei_array = qmi_response_type_v01_ei,
1520 const struct qmi_elem_info wlfw_ini_req_msg_v01_ei[] = {
1522 .data_type = QMI_OPT_FLAG,
1524 .elem_size = sizeof(u8),
1525 .array_type = NO_ARRAY,
1527 .offset = offsetof(struct wlfw_ini_req_msg_v01,
1531 .data_type = QMI_UNSIGNED_1_BYTE,
1533 .elem_size = sizeof(u8),
1534 .array_type = NO_ARRAY,
1536 .offset = offsetof(struct wlfw_ini_req_msg_v01,
1542 const struct qmi_elem_info wlfw_ini_resp_msg_v01_ei[] = {
1544 .data_type = QMI_STRUCT,
1546 .elem_size = sizeof(struct qmi_response_type_v01),
1547 .array_type = NO_ARRAY,
1549 .offset = offsetof(struct wlfw_ini_resp_msg_v01,
1551 .ei_array = qmi_response_type_v01_ei,
1556 const struct qmi_elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
1558 .data_type = QMI_UNSIGNED_4_BYTE,
1560 .elem_size = sizeof(u32),
1561 .array_type = NO_ARRAY,
1563 .offset = offsetof(struct wlfw_athdiag_read_req_msg_v01,
1567 .data_type = QMI_UNSIGNED_4_BYTE,
1569 .elem_size = sizeof(u32),
1570 .array_type = NO_ARRAY,
1572 .offset = offsetof(struct wlfw_athdiag_read_req_msg_v01,
1576 .data_type = QMI_UNSIGNED_4_BYTE,
1578 .elem_size = sizeof(u32),
1579 .array_type = NO_ARRAY,
1581 .offset = offsetof(struct wlfw_athdiag_read_req_msg_v01,
1587 const struct qmi_elem_info wlfw_athdiag_read_resp_msg_v01_ei[] = {
1589 .data_type = QMI_STRUCT,
1591 .elem_size = sizeof(struct qmi_response_type_v01),
1592 .array_type = NO_ARRAY,
1594 .offset = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
1596 .ei_array = qmi_response_type_v01_ei,
1599 .data_type = QMI_OPT_FLAG,
1601 .elem_size = sizeof(u8),
1602 .array_type = NO_ARRAY,
1604 .offset = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
1608 .data_type = QMI_DATA_LEN,
1610 .elem_size = sizeof(u16),
1611 .array_type = NO_ARRAY,
1613 .offset = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
1617 .data_type = QMI_UNSIGNED_1_BYTE,
1618 .elem_len = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
1619 .elem_size = sizeof(u8),
1620 .array_type = VAR_LEN_ARRAY,
1622 .offset = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
1628 const struct qmi_elem_info wlfw_athdiag_write_req_msg_v01_ei[] = {
1630 .data_type = QMI_UNSIGNED_4_BYTE,
1632 .elem_size = sizeof(u32),
1633 .array_type = NO_ARRAY,
1635 .offset = offsetof(struct wlfw_athdiag_write_req_msg_v01,
1639 .data_type = QMI_UNSIGNED_4_BYTE,
1641 .elem_size = sizeof(u32),
1642 .array_type = NO_ARRAY,
1644 .offset = offsetof(struct wlfw_athdiag_write_req_msg_v01,
1648 .data_type = QMI_DATA_LEN,
1650 .elem_size = sizeof(u16),
1651 .array_type = NO_ARRAY,
1653 .offset = offsetof(struct wlfw_athdiag_write_req_msg_v01,
1657 .data_type = QMI_UNSIGNED_1_BYTE,
1658 .elem_len = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
1659 .elem_size = sizeof(u8),
1660 .array_type = VAR_LEN_ARRAY,
1662 .offset = offsetof(struct wlfw_athdiag_write_req_msg_v01,
1668 const struct qmi_elem_info wlfw_athdiag_write_resp_msg_v01_ei[] = {
1670 .data_type = QMI_STRUCT,
1672 .elem_size = sizeof(struct qmi_response_type_v01),
1673 .array_type = NO_ARRAY,
1675 .offset = offsetof(struct wlfw_athdiag_write_resp_msg_v01,
1677 .ei_array = qmi_response_type_v01_ei,
1682 const struct qmi_elem_info wlfw_vbatt_req_msg_v01_ei[] = {
1684 .data_type = QMI_UNSIGNED_8_BYTE,
1686 .elem_size = sizeof(u64),
1687 .array_type = NO_ARRAY,
1689 .offset = offsetof(struct wlfw_vbatt_req_msg_v01,
1695 const struct qmi_elem_info wlfw_vbatt_resp_msg_v01_ei[] = {
1697 .data_type = QMI_STRUCT,
1699 .elem_size = sizeof(struct qmi_response_type_v01),
1700 .array_type = NO_ARRAY,
1702 .offset = offsetof(struct wlfw_vbatt_resp_msg_v01,
1704 .ei_array = qmi_response_type_v01_ei,
1709 const struct qmi_elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
1711 .data_type = QMI_OPT_FLAG,
1713 .elem_size = sizeof(u8),
1714 .array_type = NO_ARRAY,
1716 .offset = offsetof(struct wlfw_mac_addr_req_msg_v01,
1720 .data_type = QMI_UNSIGNED_1_BYTE,
1721 .elem_len = QMI_WLFW_MAC_ADDR_SIZE_V01,
1722 .elem_size = sizeof(u8),
1723 .array_type = STATIC_ARRAY,
1725 .offset = offsetof(struct wlfw_mac_addr_req_msg_v01,
1731 const struct qmi_elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {
1733 .data_type = QMI_STRUCT,
1735 .elem_size = sizeof(struct qmi_response_type_v01),
1736 .array_type = NO_ARRAY,
1738 .offset = offsetof(struct wlfw_mac_addr_resp_msg_v01,
1740 .ei_array = qmi_response_type_v01_ei,
1745 const struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = {
1747 .data_type = QMI_OPT_FLAG,
1749 .elem_size = sizeof(u8),
1750 .array_type = NO_ARRAY,
1752 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1753 daemon_support_valid),
1756 .data_type = QMI_UNSIGNED_4_BYTE,
1758 .elem_size = sizeof(u32),
1759 .array_type = NO_ARRAY,
1761 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1765 .data_type = QMI_OPT_FLAG,
1767 .elem_size = sizeof(u8),
1768 .array_type = NO_ARRAY,
1770 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1774 .data_type = QMI_UNSIGNED_4_BYTE,
1776 .elem_size = sizeof(u32),
1777 .array_type = NO_ARRAY,
1779 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1783 .data_type = QMI_OPT_FLAG,
1785 .elem_size = sizeof(u8),
1786 .array_type = NO_ARRAY,
1788 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1792 .data_type = QMI_DATA_LEN,
1794 .elem_size = sizeof(u32),
1795 .array_type = NO_ARRAY,
1797 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1801 .data_type = QMI_UNSIGNED_4_BYTE,
1802 .elem_len = QMI_WLFW_MAX_NUM_GPIO_V01,
1803 .elem_size = sizeof(u32),
1804 .array_type = VAR_LEN_ARRAY,
1806 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1810 .data_type = QMI_OPT_FLAG,
1812 .elem_size = sizeof(u8),
1813 .array_type = NO_ARRAY,
1815 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1819 .data_type = QMI_UNSIGNED_1_BYTE,
1821 .elem_size = sizeof(u8),
1822 .array_type = NO_ARRAY,
1824 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1828 .data_type = QMI_OPT_FLAG,
1830 .elem_size = sizeof(u8),
1831 .array_type = NO_ARRAY,
1833 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1837 .data_type = QMI_UNSIGNED_1_BYTE,
1839 .elem_size = sizeof(u8),
1840 .array_type = NO_ARRAY,
1842 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1846 .data_type = QMI_OPT_FLAG,
1848 .elem_size = sizeof(u8),
1849 .array_type = NO_ARRAY,
1851 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1852 bdf_cache_support_valid),
1855 .data_type = QMI_UNSIGNED_1_BYTE,
1857 .elem_size = sizeof(u8),
1858 .array_type = NO_ARRAY,
1860 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1864 .data_type = QMI_OPT_FLAG,
1866 .elem_size = sizeof(u8),
1867 .array_type = NO_ARRAY,
1869 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1873 .data_type = QMI_UNSIGNED_1_BYTE,
1875 .elem_size = sizeof(u8),
1876 .array_type = NO_ARRAY,
1878 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1882 .data_type = QMI_OPT_FLAG,
1884 .elem_size = sizeof(u8),
1885 .array_type = NO_ARRAY,
1887 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1888 m3_cache_support_valid),
1891 .data_type = QMI_UNSIGNED_1_BYTE,
1893 .elem_size = sizeof(u8),
1894 .array_type = NO_ARRAY,
1896 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1900 .data_type = QMI_OPT_FLAG,
1902 .elem_size = sizeof(u8),
1903 .array_type = NO_ARRAY,
1905 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1906 cal_filesys_support_valid),
1909 .data_type = QMI_UNSIGNED_1_BYTE,
1911 .elem_size = sizeof(u8),
1912 .array_type = NO_ARRAY,
1914 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1915 cal_filesys_support),
1918 .data_type = QMI_OPT_FLAG,
1920 .elem_size = sizeof(u8),
1921 .array_type = NO_ARRAY,
1923 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1924 cal_cache_support_valid),
1927 .data_type = QMI_UNSIGNED_1_BYTE,
1929 .elem_size = sizeof(u8),
1930 .array_type = NO_ARRAY,
1932 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1936 .data_type = QMI_OPT_FLAG,
1938 .elem_size = sizeof(u8),
1939 .array_type = NO_ARRAY,
1941 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1945 .data_type = QMI_UNSIGNED_1_BYTE,
1947 .elem_size = sizeof(u8),
1948 .array_type = NO_ARRAY,
1950 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1954 .data_type = QMI_OPT_FLAG,
1956 .elem_size = sizeof(u8),
1957 .array_type = NO_ARRAY,
1959 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1963 .data_type = QMI_UNSIGNED_4_BYTE,
1965 .elem_size = sizeof(u32),
1966 .array_type = NO_ARRAY,
1968 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1972 .data_type = QMI_OPT_FLAG,
1974 .elem_size = sizeof(u8),
1975 .array_type = NO_ARRAY,
1977 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1978 mem_cfg_mode_valid),
1981 .data_type = QMI_UNSIGNED_1_BYTE,
1983 .elem_size = sizeof(u8),
1984 .array_type = NO_ARRAY,
1986 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
1992 const struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[] = {
1994 .data_type = QMI_OPT_FLAG,
1996 .elem_size = sizeof(u8),
1997 .array_type = NO_ARRAY,
1999 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
2000 daemon_support_valid),
2003 .data_type = QMI_UNSIGNED_1_BYTE,
2005 .elem_size = sizeof(u8),
2006 .array_type = NO_ARRAY,
2008 .offset = offsetof(struct wlfw_host_cap_req_msg_v01,
2014 const struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
2016 .data_type = QMI_STRUCT,
2018 .elem_size = sizeof(struct qmi_response_type_v01),
2019 .array_type = NO_ARRAY,
2021 .offset = offsetof(struct wlfw_host_cap_resp_msg_v01,
2023 .ei_array = qmi_response_type_v01_ei,
2028 const struct qmi_elem_info wlfw_request_mem_ind_msg_v01_ei[] = {
2030 .data_type = QMI_DATA_LEN,
2032 .elem_size = sizeof(u8),
2033 .array_type = NO_ARRAY,
2035 .offset = offsetof(struct wlfw_request_mem_ind_msg_v01,
2039 .data_type = QMI_STRUCT,
2040 .elem_len = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
2041 .elem_size = sizeof(struct wlfw_mem_seg_s_v01),
2042 .array_type = VAR_LEN_ARRAY,
2044 .offset = offsetof(struct wlfw_request_mem_ind_msg_v01,
2046 .ei_array = wlfw_mem_seg_s_v01_ei,
2051 const struct qmi_elem_info wlfw_respond_mem_req_msg_v01_ei[] = {
2053 .data_type = QMI_DATA_LEN,
2055 .elem_size = sizeof(u8),
2056 .array_type = NO_ARRAY,
2058 .offset = offsetof(struct wlfw_respond_mem_req_msg_v01,
2062 .data_type = QMI_STRUCT,
2063 .elem_len = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
2064 .elem_size = sizeof(struct wlfw_mem_seg_resp_s_v01),
2065 .array_type = VAR_LEN_ARRAY,
2067 .offset = offsetof(struct wlfw_respond_mem_req_msg_v01,
2069 .ei_array = wlfw_mem_seg_resp_s_v01_ei,
2074 const struct qmi_elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {
2076 .data_type = QMI_STRUCT,
2078 .elem_size = sizeof(struct qmi_response_type_v01),
2079 .array_type = NO_ARRAY,
2081 .offset = offsetof(struct wlfw_respond_mem_resp_msg_v01,
2083 .ei_array = qmi_response_type_v01_ei,
2088 const struct qmi_elem_info wlfw_mem_ready_ind_msg_v01_ei[] = {
2092 const struct qmi_elem_info wlfw_fw_init_done_ind_msg_v01_ei[] = {
2096 const struct qmi_elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {
2098 .data_type = QMI_OPT_FLAG,
2100 .elem_size = sizeof(u8),
2101 .array_type = NO_ARRAY,
2103 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2104 cause_for_rejuvenation_valid),
2107 .data_type = QMI_UNSIGNED_1_BYTE,
2109 .elem_size = sizeof(u8),
2110 .array_type = NO_ARRAY,
2112 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2113 cause_for_rejuvenation),
2116 .data_type = QMI_OPT_FLAG,
2118 .elem_size = sizeof(u8),
2119 .array_type = NO_ARRAY,
2121 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2122 requesting_sub_system_valid),
2125 .data_type = QMI_UNSIGNED_1_BYTE,
2127 .elem_size = sizeof(u8),
2128 .array_type = NO_ARRAY,
2130 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2131 requesting_sub_system),
2134 .data_type = QMI_OPT_FLAG,
2136 .elem_size = sizeof(u8),
2137 .array_type = NO_ARRAY,
2139 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2143 .data_type = QMI_UNSIGNED_2_BYTE,
2145 .elem_size = sizeof(u16),
2146 .array_type = NO_ARRAY,
2148 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2152 .data_type = QMI_OPT_FLAG,
2154 .elem_size = sizeof(u8),
2155 .array_type = NO_ARRAY,
2157 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2158 function_name_valid),
2161 .data_type = QMI_STRING,
2162 .elem_len = QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1,
2163 .elem_size = sizeof(char),
2164 .array_type = NO_ARRAY,
2166 .offset = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
2172 const struct qmi_elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {
2176 const struct qmi_elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[] = {
2178 .data_type = QMI_STRUCT,
2180 .elem_size = sizeof(struct qmi_response_type_v01),
2181 .array_type = NO_ARRAY,
2183 .offset = offsetof(struct wlfw_rejuvenate_ack_resp_msg_v01,
2185 .ei_array = qmi_response_type_v01_ei,
2190 const struct qmi_elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[] = {
2192 .data_type = QMI_OPT_FLAG,
2194 .elem_size = sizeof(u8),
2195 .array_type = NO_ARRAY,
2197 .offset = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
2201 .data_type = QMI_UNSIGNED_8_BYTE,
2203 .elem_size = sizeof(u64),
2204 .array_type = NO_ARRAY,
2206 .offset = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
2212 const struct qmi_elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[] = {
2214 .data_type = QMI_STRUCT,
2216 .elem_size = sizeof(struct qmi_response_type_v01),
2217 .array_type = NO_ARRAY,
2219 .offset = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
2221 .ei_array = qmi_response_type_v01_ei,
2224 .data_type = QMI_OPT_FLAG,
2226 .elem_size = sizeof(u8),
2227 .array_type = NO_ARRAY,
2229 .offset = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
2233 .data_type = QMI_UNSIGNED_8_BYTE,
2235 .elem_size = sizeof(u64),
2236 .array_type = NO_ARRAY,
2238 .offset = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
2242 .data_type = QMI_OPT_FLAG,
2244 .elem_size = sizeof(u8),
2245 .array_type = NO_ARRAY,
2247 .offset = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
2251 .data_type = QMI_UNSIGNED_8_BYTE,
2253 .elem_size = sizeof(u64),
2254 .array_type = NO_ARRAY,
2256 .offset = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
2262 const struct qmi_elem_info wlfw_m3_info_req_msg_v01_ei[] = {
2264 .data_type = QMI_UNSIGNED_8_BYTE,
2266 .elem_size = sizeof(u64),
2267 .array_type = NO_ARRAY,
2269 .offset = offsetof(struct wlfw_m3_info_req_msg_v01,
2273 .data_type = QMI_UNSIGNED_4_BYTE,
2275 .elem_size = sizeof(u32),
2276 .array_type = NO_ARRAY,
2278 .offset = offsetof(struct wlfw_m3_info_req_msg_v01,
2284 const struct qmi_elem_info wlfw_m3_info_resp_msg_v01_ei[] = {
2286 .data_type = QMI_STRUCT,
2288 .elem_size = sizeof(struct qmi_response_type_v01),
2289 .array_type = NO_ARRAY,
2291 .offset = offsetof(struct wlfw_m3_info_resp_msg_v01,
2293 .ei_array = qmi_response_type_v01_ei,
2298 const struct qmi_elem_info wlfw_xo_cal_ind_msg_v01_ei[] = {
2300 .data_type = QMI_UNSIGNED_1_BYTE,
2302 .elem_size = sizeof(u8),
2303 .array_type = NO_ARRAY,
2305 .offset = offsetof(struct wlfw_xo_cal_ind_msg_v01,