root/drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c
// SPDX-License-Identifier: ISC
/*
 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#include <linux/soc/qcom/qmi.h>
#include <linux/types.h>
#include "qmi_wlfw_v01.h"

static const struct qmi_elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
                                           pipe_num),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_pipedir_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
                                           pipe_dir),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
                                           nentries),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
                                           nbytes_max),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
                                           flags),
        },
        {}
};

static const struct qmi_elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
                                           service_id),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_pipedir_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
                                           pipe_dir),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
                                           pipe_num),
        },
        {}
};

static const struct qmi_elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_2_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
                                           id),
        },
        {
                .data_type      = QMI_UNSIGNED_2_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
                                           offset),
        },
        {}
};

static const struct qmi_elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_v2_cfg_s_v01,
                                           addr),
        },
        {}
};

static const struct qmi_elem_info wlfw_memory_region_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
                                           region_addr),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
                                           size),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
                                           secure_flag),
        },
        {}
};

static const struct qmi_elem_info wlfw_mem_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_cfg_s_v01,
                                           offset),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_cfg_s_v01,
                                           size),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_cfg_s_v01,
                                           secure_flag),
        },
        {}
};

static const struct qmi_elem_info wlfw_mem_seg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_s_v01,
                                           size),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_mem_type_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_s_v01,
                                           type),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_s_v01,
                                           mem_cfg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_MEM_CFG_V01,
                .elem_size      = sizeof(struct wlfw_mem_cfg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_s_v01,
                                           mem_cfg),
                .ei_array      = wlfw_mem_cfg_s_v01_ei,
        },
        {}
};

static const struct qmi_elem_info wlfw_mem_seg_resp_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,
                                           addr),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,
                                           size),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_mem_type_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,
                                           type),
        },
        {}
};

static const struct qmi_elem_info wlfw_rf_chip_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_chip_info_s_v01,
                                           chip_id),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_chip_info_s_v01,
                                           chip_family),
        },
        {}
};

static const struct qmi_elem_info wlfw_rf_board_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_board_info_s_v01,
                                           board_id),
        },
        {}
};

static const struct qmi_elem_info wlfw_soc_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_soc_info_s_v01,
                                           soc_id),
        },
        {}
};

static const struct qmi_elem_info wlfw_fw_version_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_fw_version_info_s_v01,
                                           fw_version),
        },
        {
                .data_type      = QMI_STRING,
                .elem_len       = QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1,
                .elem_size      = sizeof(char),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_fw_version_info_s_v01,
                                           fw_build_timestamp),
        },
        {}
};

const struct qmi_elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           fw_ready_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           fw_ready_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           initiate_cal_download_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           initiate_cal_download_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           initiate_cal_update_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           initiate_cal_update_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           msa_ready_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           msa_ready_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           pin_connect_result_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           pin_connect_result_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           client_id_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           client_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           request_mem_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           request_mem_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           mem_ready_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           mem_ready_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           fw_init_done_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           fw_init_done_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x19,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           rejuvenate_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x19,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           rejuvenate_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1A,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           xo_cal_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1A,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
                                           xo_cal_enable),
        },
        {}
};

const struct qmi_elem_info wlfw_ind_register_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,
                                           fw_status_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,
                                           fw_status),
        },
        {}
};

const struct qmi_elem_info wlfw_fw_ready_ind_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_msa_ready_ind_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_pin_connect_result_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           pwr_pin_result_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           pwr_pin_result),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           phy_io_pin_result_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           phy_io_pin_result),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           rf_pin_result_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
                                           rf_pin_result),
        },
        {}
};

const struct qmi_elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_driver_mode_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
                                           mode),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
                                           hw_debug_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
                                           hw_debug),
        },
        {}
};

const struct qmi_elem_info wlfw_wlan_mode_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_wlan_mode_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           host_version_valid),
        },
        {
                .data_type      = QMI_STRING,
                .elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
                .elem_size      = sizeof(char),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           host_version),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           tgt_cfg_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           tgt_cfg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_CE_V01,
                .elem_size      = sizeof(struct wlfw_ce_tgt_pipe_cfg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           tgt_cfg),
                .ei_array      = wlfw_ce_tgt_pipe_cfg_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           svc_cfg_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           svc_cfg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_SVC_V01,
                .elem_size      = sizeof(struct wlfw_ce_svc_pipe_cfg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           svc_cfg),
                .ei_array      = wlfw_ce_svc_pipe_cfg_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_SHADOW_REG_V01,
                .elem_size      = sizeof(struct wlfw_shadow_reg_cfg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg),
                .ei_array      = wlfw_shadow_reg_cfg_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg_v2_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg_v2_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_SHADOW_REG_V2,
                .elem_size      = sizeof(struct wlfw_shadow_reg_v2_cfg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
                                           shadow_reg_v2),
                .ei_array      = wlfw_shadow_reg_v2_cfg_s_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_wlan_cfg_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_wlan_cfg_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_cap_req_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           chip_info_valid),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct wlfw_rf_chip_info_s_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           chip_info),
                .ei_array      = wlfw_rf_chip_info_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           board_info_valid),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct wlfw_rf_board_info_s_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           board_info),
                .ei_array      = wlfw_rf_board_info_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           soc_info_valid),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct wlfw_soc_info_s_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           soc_info),
                .ei_array      = wlfw_soc_info_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           fw_version_info_valid),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct wlfw_fw_version_info_s_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           fw_version_info),
                .ei_array      = wlfw_fw_version_info_s_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           fw_build_id_valid),
        },
        {
                .data_type      = QMI_STRING,
                .elem_len       = QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1,
                .elem_size      = sizeof(char),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           fw_build_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           num_macs_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
                                           num_macs),
        },
        {}
};

const struct qmi_elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           valid),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           file_id_valid),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           file_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           total_size_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           total_size),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           seg_id_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           seg_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           data_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           data),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           end_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           end),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           bdf_type_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           bdf_type),
        },
        {}
};

const struct qmi_elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_bdf_download_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_cal_report_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
                                           meta_data_len),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = QMI_WLFW_MAX_NUM_CAL_V01,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
                                           meta_data),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
                                           xo_cal_data_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
                                           xo_cal_data),
        },
        {}
};

const struct qmi_elem_info wlfw_cal_report_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cal_report_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
                                           cal_id),
        },
        {}
};

const struct qmi_elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           valid),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           file_id_valid),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           file_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           total_size_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           total_size),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           seg_id_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           seg_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           data_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           data),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           end_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           end),
        },
        {}
};

const struct qmi_elem_info wlfw_cal_download_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cal_download_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
                                           cal_id),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
                                           total_size),
        },
        {}
};

const struct qmi_elem_info wlfw_cal_update_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_update_req_msg_v01,
                                           cal_id),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cal_update_req_msg_v01,
                                           seg_id),
        },
        {}
};

const struct qmi_elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           file_id_valid),
        },
        {
                .data_type      = QMI_SIGNED_4_BYTE_ENUM,
                .elem_len       = 1,
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           file_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           total_size_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           total_size),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           seg_id_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           seg_id),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           data_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           data),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           end_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           end),
        },
        {}
};

const struct qmi_elem_info wlfw_msa_info_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_msa_info_req_msg_v01,
                                           msa_addr),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_msa_info_req_msg_v01,
                                           size),
        },
        {}
};

const struct qmi_elem_info wlfw_msa_info_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,
                                           mem_region_info_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_MEM_REG_V01,
                .elem_size      = sizeof(struct wlfw_memory_region_info_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,
                                           mem_region_info),
                .ei_array      = wlfw_memory_region_info_s_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_msa_ready_req_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_msa_ready_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_msa_ready_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_ini_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ini_req_msg_v01,
                                           enablefwlog_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ini_req_msg_v01,
                                           enablefwlog),
        },
        {}
};

const struct qmi_elem_info wlfw_ini_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_ini_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
                                           offset),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
                                           mem_type),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
                                           data_len),
        },
        {}
};

const struct qmi_elem_info wlfw_athdiag_read_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
                                           data_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
                                           data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_athdiag_read_resp_msg_v01,
                                           data),
        },
        {}
};

const struct qmi_elem_info wlfw_athdiag_write_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,
                                           offset),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,
                                           mem_type),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,
                                           data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_athdiag_write_req_msg_v01,
                                           data),
        },
        {}
};

const struct qmi_elem_info wlfw_athdiag_write_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_athdiag_write_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_vbatt_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_vbatt_req_msg_v01,
                                           voltage_uv),
        },
        {}
};

const struct qmi_elem_info wlfw_vbatt_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_vbatt_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,
                                           mac_addr_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAC_ADDR_SIZE_V01,
                .elem_size      = sizeof(u8),
                .array_type       = STATIC_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,
                                           mac_addr),
        },
        {}
};

const struct qmi_elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_mac_addr_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_host_cap_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           daemon_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           daemon_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           wake_msi_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           wake_msi),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           gpios_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           gpios_len),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = QMI_WLFW_MAX_NUM_GPIO_V01,
                .elem_size      = sizeof(u32),
                .array_type     = VAR_LEN_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           gpios),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           nm_modem_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           nm_modem),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           bdf_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           bdf_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           bdf_cache_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           bdf_cache_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           m3_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           m3_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           m3_cache_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           m3_cache_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_filesys_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_filesys_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x19,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_cache_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x19,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_cache_support),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1A,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_done_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1A,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           cal_done),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1B,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           mem_bucket_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1B,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           mem_bucket),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1C,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           mem_cfg_mode_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x1C,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           mem_cfg_mode),
        },
        {}
};

const struct qmi_elem_info wlfw_host_cap_8bit_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           daemon_support_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
                                           daemon_support),
        },
        {}
};

const struct qmi_elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_host_cap_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_request_mem_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_request_mem_ind_msg_v01,
                                           mem_seg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
                .elem_size      = sizeof(struct wlfw_mem_seg_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_request_mem_ind_msg_v01,
                                           mem_seg),
                .ei_array      = wlfw_mem_seg_s_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_respond_mem_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,
                                           mem_seg_len),
        },
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = QMI_WLFW_MAX_NUM_MEM_SEG_V01,
                .elem_size      = sizeof(struct wlfw_mem_seg_resp_s_v01),
                .array_type       = VAR_LEN_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,
                                           mem_seg),
                .ei_array      = wlfw_mem_seg_resp_s_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_respond_mem_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_mem_ready_ind_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_fw_init_done_ind_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           cause_for_rejuvenation_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           cause_for_rejuvenation),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           requesting_sub_system_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           requesting_sub_system),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           line_number_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_2_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u16),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           line_number),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           function_name_valid),
        },
        {
                .data_type      = QMI_STRING,
                .elem_len       = QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1,
                .elem_size      = sizeof(char),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
                                           function_name),
        },
        {}
};

const struct qmi_elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {
        {}
};

const struct qmi_elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_rejuvenate_ack_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
                                           mask_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
                                           mask),
        },
        {}
};

const struct qmi_elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
                                           prev_mask_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
                                           prev_mask),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
                                           curr_mask_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
                                           curr_mask),
        },
        {}
};

const struct qmi_elem_info wlfw_m3_info_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u64),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_m3_info_req_msg_v01,
                                           addr),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u32),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_m3_info_req_msg_v01,
                                           size),
        },
        {}
};

const struct qmi_elem_info wlfw_m3_info_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
                .elem_len       = 1,
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_m3_info_resp_msg_v01,
                                           resp),
                .ei_array      = qmi_response_type_v01_ei,
        },
        {}
};

const struct qmi_elem_info wlfw_xo_cal_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
                .elem_size      = sizeof(u8),
                .array_type     = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_xo_cal_ind_msg_v01,
                                           xo_cal_data),
        },
        {}
};