OSDN Git Service

icnss: Add support for graceful shutdown
authorSandeep Singh <sandsing@codeaurora.org>
Wed, 13 Feb 2019 10:47:30 +0000 (16:17 +0530)
committerSandeep Singh <sandsing@codeaurora.org>
Thu, 14 Mar 2019 06:05:57 +0000 (11:35 +0530)
Add a QMI command to indicate graceful shutdown to the FW
and updating the QMI file.

Change-Id: I0360f6f5b49bc19ea4a7acbbd0e192e1596463d6
Signed-off-by: Sandeep Singh <sandsing@codeaurora.org>
drivers/soc/qcom/icnss.c
drivers/soc/qcom/wlan_firmware_service_v01.c
drivers/soc/qcom/wlan_firmware_service_v01.h

index e0fa8b7..8ada7af 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -1636,6 +1636,56 @@ out:
        return ret;
 }
 
+static int wlfw_send_modem_shutdown_msg(void)
+{
+       int ret;
+       struct wlfw_shutdown_req_msg_v01 req;
+       struct wlfw_shutdown_resp_msg_v01 resp;
+       struct msg_desc req_desc, resp_desc;
+
+       if (!penv || !penv->wlfw_clnt)
+               return -ENODEV;
+
+       icnss_pr_dbg("Sending modem shutdown request, state: 0x%lx\n",
+                    penv->state);
+
+       memset(&req, 0, sizeof(req));
+       memset(&resp, 0, sizeof(resp));
+
+       req.shutdown_valid = 1;
+       req.shutdown = 1;
+
+       req_desc.max_msg_len = WLFW_SHUTDOWN_REQ_MSG_V01_MAX_MSG_LEN;
+       req_desc.msg_id = QMI_WLFW_SHUTDOWN_REQ_V01;
+       req_desc.ei_array = wlfw_shutdown_req_msg_v01_ei;
+
+       resp_desc.max_msg_len = WLFW_SHUTDOWN_RESP_MSG_V01_MAX_MSG_LEN;
+       resp_desc.msg_id = QMI_WLFW_SHUTDOWN_RESP_V01;
+       resp_desc.ei_array = wlfw_shutdown_resp_msg_v01_ei;
+
+       ret = qmi_send_req_wait(penv->wlfw_clnt, &req_desc, &req, sizeof(req),
+                               &resp_desc, &resp, sizeof(resp),
+                               WLFW_TIMEOUT_MS);
+       if (ret < 0) {
+               icnss_pr_err("Send modem shutdown req failed, ret: %d\n", ret);
+               goto out;
+       }
+
+       if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
+               icnss_pr_err("QMI modem shutdown request rejected result:%d error:%d\n",
+                            resp.resp.result, resp.resp.error);
+               ret = -resp.resp.result;
+               goto out;
+       }
+
+       icnss_pr_dbg("modem shutdown request sent successfully, state: 0x%lx\n",
+                    penv->state);
+       return 0;
+
+out:
+       return ret;
+}
+
 static int wlfw_athdiag_read_send_sync_msg(struct icnss_priv *priv,
                                           uint32_t offset, uint32_t mem_type,
                                           uint32_t data_len, uint8_t *data)
@@ -2534,6 +2584,13 @@ static int icnss_modem_notifier_nb(struct notifier_block *nb,
        if (code != SUBSYS_BEFORE_SHUTDOWN)
                return NOTIFY_OK;
 
+       if (code == SUBSYS_BEFORE_SHUTDOWN && !notif->crashed) {
+               ret = wlfw_send_modem_shutdown_msg();
+               if (ret)
+               icnss_pr_dbg("Fail to send modem shutdown Indication %d\n",
+               ret);
+       }
+
        if (test_bit(ICNSS_PDR_REGISTERED, &priv->state)) {
                set_bit(ICNSS_FW_DOWN, &priv->state);
                icnss_ignore_qmi_timeout(true);
index e3ebea3..846a4ba 100644 (file)
@@ -1,4 +1,4 @@
- /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
+ /* Copyright (c) 2015-2017, 2019 The Linux Foundation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -20,7 +20,7 @@ static struct elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
@@ -38,7 +38,7 @@ static struct elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
@@ -47,7 +47,7 @@ static struct elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
@@ -56,7 +56,7 @@ static struct elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_tgt_pipe_cfg_s_v01,
@@ -65,7 +65,7 @@ static struct elem_info wlfw_ce_tgt_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -73,7 +73,7 @@ static struct elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
@@ -91,7 +91,7 @@ static struct elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_ce_svc_pipe_cfg_s_v01,
@@ -100,7 +100,7 @@ static struct elem_info wlfw_ce_svc_pipe_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -108,7 +108,7 @@ static struct elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_2_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
@@ -117,7 +117,7 @@ static struct elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_2_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_cfg_s_v01,
@@ -126,7 +126,7 @@ static struct elem_info wlfw_shadow_reg_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -134,7 +134,7 @@ static struct elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_shadow_reg_v2_cfg_s_v01,
@@ -143,7 +143,59 @@ static struct elem_info wlfw_shadow_reg_v2_cfg_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+static struct elem_info wlfw_rri_over_ddr_cfg_s_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_rri_over_ddr_cfg_s_v01,
+                                          base_addr_low),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_rri_over_ddr_cfg_s_v01,
+                                          base_addr_high),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+static struct elem_info wlfw_msi_cfg_s_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_2_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u16),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_msi_cfg_s_v01,
+                                          ce_id),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_2_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u16),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_msi_cfg_s_v01,
+                                          msi_vector),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -151,7 +203,7 @@ static struct elem_info wlfw_memory_region_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
@@ -160,7 +212,7 @@ static struct elem_info wlfw_memory_region_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
@@ -169,7 +221,7 @@ static struct elem_info wlfw_memory_region_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_memory_region_info_s_v01,
@@ -178,7 +230,131 @@ static struct elem_info wlfw_memory_region_info_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+static struct elem_info wlfw_mem_cfg_s_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_mem_cfg_s_v01,
+                                          secure_flag),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+static struct elem_info wlfw_mem_seg_s_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_mem_seg_s_v01,
+                                          mem_cfg),
+               .ei_array      = wlfw_mem_cfg_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+static struct elem_info wlfw_mem_seg_resp_s_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,
+                                          type),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0,
+               .offset         = offsetof(struct wlfw_mem_seg_resp_s_v01,
+                                          restore),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -186,7 +362,7 @@ static struct elem_info wlfw_rf_chip_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_chip_info_s_v01,
@@ -195,7 +371,7 @@ static struct elem_info wlfw_rf_chip_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_chip_info_s_v01,
@@ -204,7 +380,7 @@ static struct elem_info wlfw_rf_chip_info_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -212,7 +388,7 @@ static struct elem_info wlfw_rf_board_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_rf_board_info_s_v01,
@@ -221,7 +397,7 @@ static struct elem_info wlfw_rf_board_info_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -229,7 +405,7 @@ static struct elem_info wlfw_soc_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_soc_info_s_v01,
@@ -238,7 +414,7 @@ static struct elem_info wlfw_soc_info_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -246,7 +422,7 @@ static struct elem_info wlfw_fw_version_info_s_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0,
                .offset         = offsetof(struct wlfw_fw_version_info_s_v01,
@@ -264,7 +440,7 @@ static struct elem_info wlfw_fw_version_info_s_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -272,7 +448,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -281,7 +457,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -290,7 +466,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -299,7 +475,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -308,7 +484,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -317,7 +493,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -326,7 +502,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -335,7 +511,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -344,7 +520,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -353,7 +529,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -362,7 +538,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -371,7 +547,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x15,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -380,7 +556,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -389,7 +565,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x16,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -398,7 +574,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -407,7 +583,7 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x17,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -416,25 +592,25 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
-                                          cold_boot_cal_done_enable_valid),
+                                          fw_init_done_enable_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x18,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
-                                          cold_boot_cal_done_enable),
+                                          fw_init_done_enable),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x19,
                .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
@@ -443,16 +619,106 @@ struct elem_info wlfw_ind_register_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1A,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          xo_cal_enable),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1B,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          cal_done_enable_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1B,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          cal_done_enable),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1C,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_req_mem_enable_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1C,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_req_mem_enable),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1D,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_save_enable_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1D,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_save_enable),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1E,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_free_enable_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1E,
+               .offset         = offsetof(struct wlfw_ind_register_req_msg_v01,
+                                          qdss_trace_free_enable),
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -463,34 +729,35 @@ struct elem_info wlfw_ind_register_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_ind_register_resp_msg_v01,
-                                          resp),
+               .offset         =
+               offsetof(struct wlfw_ind_register_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_ind_register_resp_msg_v01,
-                                  fw_status_valid),
+               .offset         =
+               offsetof(struct wlfw_ind_register_resp_msg_v01,
+                        fw_status_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_ind_register_resp_msg_v01,
-                                  fw_status),
+               .offset         =
+               offsetof(struct wlfw_ind_register_resp_msg_v01,
+                        fw_status),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -498,7 +765,7 @@ struct elem_info wlfw_fw_ready_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -506,7 +773,7 @@ struct elem_info wlfw_msa_ready_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -514,67 +781,67 @@ struct elem_info wlfw_pin_connect_result_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  pwr_pin_result_valid),
+               .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(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  pwr_pin_result),
+               .offset         =
+               offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
+                        pwr_pin_result),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  phy_io_pin_result_valid),
+               .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(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  phy_io_pin_result),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  rf_pin_result_valid),
+               .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(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
-               .offset         = offsetof(
-                                  struct wlfw_pin_connect_result_ind_msg_v01,
-                                  rf_pin_result),
+               .offset         =
+               offsetof(struct wlfw_pin_connect_result_ind_msg_v01,
+                        rf_pin_result),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -591,7 +858,7 @@ struct elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
@@ -600,7 +867,7 @@ struct elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_mode_req_msg_v01,
@@ -609,7 +876,7 @@ struct elem_info wlfw_wlan_mode_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -627,7 +894,7 @@ struct elem_info wlfw_wlan_mode_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -635,7 +902,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -653,7 +920,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -662,7 +929,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -681,7 +948,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -690,7 +957,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -709,7 +976,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -718,7 +985,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -737,7 +1004,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -746,7 +1013,7 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
@@ -763,9 +1030,56 @@ struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[] = {
                .ei_array      = wlfw_shadow_reg_v2_cfg_s_v01_ei,
        },
        {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
+                                          rri_over_ddr_cfg_valid),
+       },
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct wlfw_rri_over_ddr_cfg_s_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
+                                          rri_over_ddr_cfg),
+               .ei_array      = wlfw_rri_over_ddr_cfg_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
+                                          msi_cfg_valid),
+       },
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
+                                          msi_cfg_len),
+       },
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = QMI_WLFW_MAX_NUM_CE_V01,
+               .elem_size      = sizeof(struct wlfw_msi_cfg_s_v01),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_wlan_cfg_req_msg_v01,
+                                          msi_cfg),
+               .ei_array      = wlfw_msi_cfg_s_v01_ei,
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -783,7 +1097,7 @@ struct elem_info wlfw_wlan_cfg_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -791,7 +1105,7 @@ struct elem_info wlfw_cap_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -809,7 +1123,7 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
@@ -828,7 +1142,7 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
@@ -847,7 +1161,7 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
@@ -866,7 +1180,7 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
@@ -885,7 +1199,7 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
@@ -901,9 +1215,45 @@ struct elem_info wlfw_cap_resp_msg_v01_ei[] = {
                                           fw_build_id),
        },
        {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
+                                          num_macs),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
+                                          voltage_mv_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_cap_resp_msg_v01,
+                                          voltage_mv),
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -911,7 +1261,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -920,7 +1270,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -938,7 +1288,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -947,7 +1297,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -956,7 +1306,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -965,7 +1315,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -974,7 +1324,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -983,7 +1333,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -992,7 +1342,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -1001,7 +1351,7 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
@@ -1010,19 +1360,37 @@ struct elem_info wlfw_bdf_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
                                           end),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_bdf_download_req_msg_v01,
+                                          bdf_type),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
 struct elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_STRUCT,
@@ -1030,14 +1398,15 @@ struct elem_info wlfw_bdf_download_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_bdf_download_resp_msg_v01,
-                                          resp),
+               .offset         =
+               offsetof(struct wlfw_bdf_download_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1045,7 +1414,7 @@ struct elem_info wlfw_cal_report_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
@@ -1061,9 +1430,27 @@ struct elem_info wlfw_cal_report_req_msg_v01_ei[] = {
                                           meta_data),
        },
        {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         = offsetof(struct wlfw_cal_report_req_msg_v01,
+                                          xo_cal_data),
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1081,7 +1468,7 @@ struct elem_info wlfw_cal_report_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1092,13 +1479,54 @@ struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[] = {
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
-               .offset         = offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
-                                          cal_id),
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
+                        cal_id),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
+                        total_size_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
+                        total_size),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
+                        cal_data_location_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_download_ind_msg_v01,
+                        cal_data_location),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1106,7 +1534,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1115,7 +1543,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1133,7 +1561,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1142,7 +1570,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1151,7 +1579,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1160,7 +1588,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1169,7 +1597,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1178,7 +1606,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1187,7 +1615,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1196,7 +1624,7 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
@@ -1205,16 +1633,34 @@ struct elem_info wlfw_cal_download_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
                                           end),
        },
        {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
+                                          cal_data_location_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_cal_download_req_msg_v01,
+                                          cal_data_location),
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1225,14 +1671,15 @@ struct elem_info wlfw_cal_download_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_cal_download_resp_msg_v01,
-                                          resp),
+               .offset         =
+               offsetof(struct wlfw_cal_download_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1243,22 +1690,44 @@ struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[] = {
                .elem_size      = sizeof(enum wlfw_cal_temp_id_enum_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
-               .offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
-                                          cal_id),
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
+                        cal_id),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
-                                          total_size),
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
+                        total_size),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
+                        cal_data_location_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_initiate_cal_update_ind_msg_v01,
+                        cal_data_location),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1275,7 +1744,7 @@ struct elem_info wlfw_cal_update_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_cal_update_req_msg_v01,
@@ -1284,7 +1753,7 @@ struct elem_info wlfw_cal_update_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1302,7 +1771,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1320,7 +1789,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1329,7 +1798,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1338,7 +1807,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1347,7 +1816,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x12,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1356,7 +1825,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1365,7 +1834,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1374,7 +1843,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = VAR_LEN_ARRAY,
                .tlv_type       = 0x13,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1383,7 +1852,7 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
@@ -1392,16 +1861,34 @@ struct elem_info wlfw_cal_update_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x14,
                .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
                                           end),
        },
        {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
+                                          cal_data_location_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_cal_update_resp_msg_v01,
+                                          cal_data_location),
+       },
+       {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1409,7 +1896,7 @@ struct elem_info wlfw_msa_info_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_msa_info_req_msg_v01,
@@ -1418,7 +1905,7 @@ struct elem_info wlfw_msa_info_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_msa_info_req_msg_v01,
@@ -1427,7 +1914,7 @@ struct elem_info wlfw_msa_info_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1445,7 +1932,7 @@ struct elem_info wlfw_msa_info_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_msa_info_resp_msg_v01,
@@ -1464,7 +1951,7 @@ struct elem_info wlfw_msa_info_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1472,7 +1959,7 @@ struct elem_info wlfw_msa_ready_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1490,7 +1977,7 @@ struct elem_info wlfw_msa_ready_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1498,7 +1985,7 @@ struct elem_info wlfw_ini_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ini_req_msg_v01,
@@ -1507,7 +1994,7 @@ struct elem_info wlfw_ini_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_ini_req_msg_v01,
@@ -1516,7 +2003,7 @@ struct elem_info wlfw_ini_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1534,7 +2021,7 @@ struct elem_info wlfw_ini_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1542,7 +2029,7 @@ struct elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
@@ -1551,7 +2038,7 @@ struct elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
@@ -1560,7 +2047,7 @@ struct elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x03,
                .offset         = offsetof(struct wlfw_athdiag_read_req_msg_v01,
@@ -1569,7 +2056,7 @@ struct elem_info wlfw_athdiag_read_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1580,45 +2067,45 @@ struct elem_info wlfw_athdiag_read_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_read_resp_msg_v01,
-                                  resp),
+               .offset         =
+               offsetof(struct wlfw_athdiag_read_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_read_resp_msg_v01,
-                                  data_valid),
+               .offset         =
+               offsetof(struct wlfw_athdiag_read_resp_msg_v01,
+                        data_valid),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_read_resp_msg_v01,
-                                  data_len),
+               .offset         =
+               offsetof(struct wlfw_athdiag_read_resp_msg_v01,
+                        data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
-               .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
+               .elem_size      = sizeof(u8),
                .is_array       = VAR_LEN_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_read_resp_msg_v01,
-                                  data),
+               .offset         =
+               offsetof(struct wlfw_athdiag_read_resp_msg_v01,
+                        data),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1626,47 +2113,47 @@ struct elem_info wlfw_athdiag_write_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_write_req_msg_v01,
-                                  offset),
+               .offset         =
+               offsetof(struct wlfw_athdiag_write_req_msg_v01,
+                        offset),
        },
        {
                .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_write_req_msg_v01,
-                                  mem_type),
+               .offset         =
+               offsetof(struct wlfw_athdiag_write_req_msg_v01,
+                        mem_type),
        },
        {
                .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u16),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x03,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_write_req_msg_v01,
-                                  data_len),
+               .offset         =
+               offsetof(struct wlfw_athdiag_write_req_msg_v01,
+                        data_len),
        },
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
-               .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_len       = QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01,
+               .elem_size      = sizeof(u8),
                .is_array       = VAR_LEN_ARRAY,
                .tlv_type       = 0x03,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_write_req_msg_v01,
-                                  data),
+               .offset         =
+               offsetof(struct wlfw_athdiag_write_req_msg_v01,
+                        data),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1677,15 +2164,15 @@ struct elem_info wlfw_athdiag_write_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(
-                                  struct wlfw_athdiag_write_resp_msg_v01,
-                                  resp),
-               .ei_array      = get_qmi_response_type_v01_ei(),
+               .offset         =
+               offsetof(struct wlfw_athdiag_write_resp_msg_v01,
+                        resp),
+               .ei_array      = qmi_response_type_v01_ei,
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1693,7 +2180,7 @@ struct elem_info wlfw_vbatt_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x01,
                .offset         = offsetof(struct wlfw_vbatt_req_msg_v01,
@@ -1702,7 +2189,7 @@ struct elem_info wlfw_vbatt_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1720,7 +2207,7 @@ struct elem_info wlfw_vbatt_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1728,7 +2215,7 @@ struct elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,
@@ -1737,7 +2224,7 @@ struct elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = QMI_WLFW_MAC_ADDR_SIZE_V01,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = STATIC_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_mac_addr_req_msg_v01,
@@ -1746,7 +2233,7 @@ struct elem_info wlfw_mac_addr_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1764,7 +2251,7 @@ struct elem_info wlfw_mac_addr_resp_msg_v01_ei[] = {
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1772,208 +2259,462 @@ struct elem_info wlfw_host_cap_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
-                                          daemon_support_valid),
+                                          num_clients_valid),
        },
        {
-               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
                .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
-                                          daemon_support),
+                                          num_clients),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x11,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          wake_msi_valid),
        },
-};
-
-struct elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
        {
-               .data_type      = QMI_STRUCT,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_host_cap_resp_msg_v01,
-                                          resp),
-               .ei_array      = get_qmi_response_type_v01_ei(),
+               .tlv_type       = 0x11,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          wake_msi),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x12,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          gpios_valid),
        },
-};
-
-struct elem_info wlfw_request_mem_ind_msg_v01_ei[] = {
        {
-               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .data_type      = QMI_DATA_LEN,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x01,
-               .offset         = offsetof(struct wlfw_request_mem_ind_msg_v01,
-                                          size),
+               .tlv_type       = 0x12,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          gpios_len),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = QMI_WLFW_MAX_NUM_GPIO_V01,
+               .elem_size      = sizeof(u32),
+               .is_array       = 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),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x13,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          nm_modem_valid),
        },
-};
-
-struct elem_info wlfw_respond_mem_req_msg_v01_ei[] = {
        {
-               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x01,
-               .offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,
-                                          addr),
+               .tlv_type       = 0x13,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          nm_modem),
        },
        {
-               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint32_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_respond_mem_req_msg_v01,
-                                          size),
+               .tlv_type       = 0x14,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          bdf_support_valid),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x14,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          bdf_support),
        },
-};
-
-struct elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {
        {
-               .data_type      = QMI_STRUCT,
+               .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x02,
-               .offset         = offsetof(struct wlfw_respond_mem_resp_msg_v01,
-                                          resp),
-               .ei_array      = get_qmi_response_type_v01_ei(),
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          bdf_cache_support_valid),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x15,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          bdf_cache_support),
        },
-};
-
-struct elem_info wlfw_fw_mem_ready_ind_msg_v01_ei[] = {
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          m3_support_valid),
        },
-};
-
-struct elem_info wlfw_cold_boot_cal_done_ind_msg_v01_ei[] = {
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x16,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          m3_support),
        },
-};
-
-struct elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x10,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          cause_for_rejuvenation_valid),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x10,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          cause_for_rejuvenation),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x11,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          requesting_sub_system_valid),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x11,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          requesting_sub_system),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x12,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          line_number_valid),
+               .tlv_type       = 0x19,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          cal_cache_support_valid),
        },
        {
-               .data_type      = QMI_UNSIGNED_2_BYTE,
+               .data_type      = QMI_UNSIGNED_1_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint16_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x12,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          line_number),
+               .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(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x13,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          function_name_valid),
+               .tlv_type       = 0x1A,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          cal_done_valid),
        },
        {
-               .data_type      = QMI_STRING,
-               .elem_len       = QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1,
-               .elem_size      = sizeof(char),
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .tlv_type       = 0x13,
-               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
-                                          function_name),
+               .tlv_type       = 0x1A,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          cal_done),
        },
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = 0x1B,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          mem_bucket_valid),
        },
-};
-
-struct elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {
        {
-               .data_type      = QMI_EOTI,
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .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),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1C,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          mem_cfg_mode),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1D,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          cal_duration_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_2_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u16),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x1D,
+               .offset         = offsetof(struct wlfw_host_cap_req_msg_v01,
+                                          cal_duration),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_host_cap_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         = offsetof(struct wlfw_host_cap_resp_msg_v01,
+                                          resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_request_mem_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = 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),
+               .is_array       = 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,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_respond_mem_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = 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),
+               .is_array       = 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,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_respond_mem_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         = offsetof(struct wlfw_respond_mem_resp_msg_v01,
+                                          resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_fw_mem_ready_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_fw_init_done_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_rejuvenate_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x13,
+               .offset         = offsetof(struct wlfw_rejuvenate_ind_msg_v01,
+                                          function_name),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -1984,15 +2725,15 @@ struct elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(
-                                  struct wlfw_rejuvenate_ack_resp_msg_v01,
-                                  resp),
+               .offset         =
+               offsetof(struct wlfw_rejuvenate_ack_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -2000,27 +2741,27 @@ struct elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[] = {
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(struct
-                                  wlfw_dynamic_feature_mask_req_msg_v01,
-                                  mask_valid),
+               .offset         =
+               offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
+                        mask_valid),
        },
        {
                .data_type      = QMI_UNSIGNED_8_BYTE,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                                  struct wlfw_dynamic_feature_mask_req_msg_v01,
-                                  mask),
+               .offset         =
+               offsetof(struct wlfw_dynamic_feature_mask_req_msg_v01,
+                        mask),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
@@ -2031,55 +2772,771 @@ struct elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[] = {
                .elem_size      = sizeof(struct qmi_response_type_v01),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x02,
-               .offset         = offsetof(
-                          struct wlfw_dynamic_feature_mask_resp_msg_v01,
-                          resp),
+               .offset         =
+               offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
+                        resp),
                .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                          struct wlfw_dynamic_feature_mask_resp_msg_v01,
-                          prev_mask_valid),
+               .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(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x10,
-               .offset         = offsetof(
-                          struct wlfw_dynamic_feature_mask_resp_msg_v01,
-                          prev_mask),
+               .offset         =
+               offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
+                        prev_mask),
        },
        {
                .data_type      = QMI_OPT_FLAG,
                .elem_len       = 1,
-               .elem_size      = sizeof(uint8_t),
+               .elem_size      = sizeof(u8),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
-               .offset         = offsetof(
-                          struct wlfw_dynamic_feature_mask_resp_msg_v01,
-                          curr_mask_valid),
+               .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(uint64_t),
+               .elem_size      = sizeof(u64),
                .is_array       = NO_ARRAY,
                .tlv_type       = 0x11,
-               .offset         = offsetof(
-                          struct wlfw_dynamic_feature_mask_resp_msg_v01,
-                          curr_mask),
+               .offset         =
+               offsetof(struct wlfw_dynamic_feature_mask_resp_msg_v01,
+                        curr_mask),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_m3_info_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = 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),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         = offsetof(struct wlfw_m3_info_req_msg_v01,
+                                          size),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_m3_info_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         = offsetof(struct wlfw_m3_info_resp_msg_v01,
+                                          resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_xo_cal_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         = offsetof(struct wlfw_xo_cal_ind_msg_v01,
+                                          xo_cal_data),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_cal_done_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_req_mem_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_req_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),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_req_mem_ind_msg_v01,
+                        mem_seg),
+               .ei_array      = wlfw_mem_seg_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_mem_info_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mem_info_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),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mem_info_req_msg_v01,
+                        mem_seg),
+               .ei_array      = wlfw_mem_seg_resp_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_mem_info_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mem_info_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_save_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        source),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        total_size),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        mem_seg_valid),
+       },
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_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_resp_s_v01),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        mem_seg),
+               .ei_array      = wlfw_mem_seg_resp_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        file_name_valid),
+       },
+       {
+               .data_type      = QMI_STRING,
+               .elem_len       = QMI_WLFW_MAX_STR_LEN_V01 + 1,
+               .elem_size      = sizeof(char),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_save_ind_msg_v01,
+                        file_name),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_data_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x01,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_req_msg_v01,
+                        seg_id),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_data_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        total_size_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        total_size),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        seg_id_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        seg_id),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        data_valid),
+       },
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u16),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        data_len),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
+               .elem_size      = sizeof(u8),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        data),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x13,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        end_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x13,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_data_resp_msg_v01,
+                        end),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_config_download_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        total_size_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        total_size),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        seg_id_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_4_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u32),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        seg_id),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        data_valid),
+       },
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u16),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        data_len),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = QMI_WLFW_MAX_DATA_SIZE_V01,
+               .elem_size      = sizeof(u8),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x12,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        data),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x13,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        end_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x13,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_req_msg_v01,
+                        end),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_config_download_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_config_download_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mode_req_msg_v01,
+                        mode_valid),
+       },
+       {
+               .data_type      = QMI_SIGNED_4_BYTE_ENUM,
+               .elem_len       = 1,
+               .elem_size      = sizeof(enum wlfw_qdss_trace_mode_enum_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mode_req_msg_v01,
+                        mode),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mode_req_msg_v01,
+                        option_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x11,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mode_req_msg_v01,
+                        option),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_mode_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_mode_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_qdss_trace_free_ind_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_free_ind_msg_v01,
+                        mem_seg_valid),
+       },
+       {
+               .data_type      = QMI_DATA_LEN,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_free_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_resp_s_v01),
+               .is_array       = VAR_LEN_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_qdss_trace_free_ind_msg_v01,
+                        mem_seg),
+               .ei_array      = wlfw_mem_seg_resp_s_v01_ei,
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_shutdown_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_shutdown_req_msg_v01,
+                        shutdown_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_1_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_shutdown_req_msg_v01,
+                        shutdown),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_shutdown_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_shutdown_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_antenna_switch_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_antenna_switch_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_antenna_switch_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
+       },
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_antenna_switch_resp_msg_v01,
+                        antenna_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_antenna_switch_resp_msg_v01,
+                        antenna),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_antenna_grant_req_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_OPT_FLAG,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u8),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_antenna_grant_req_msg_v01,
+                        grant_valid),
+       },
+       {
+               .data_type      = QMI_UNSIGNED_8_BYTE,
+               .elem_len       = 1,
+               .elem_size      = sizeof(u64),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x10,
+               .offset         =
+               offsetof(struct wlfw_antenna_grant_req_msg_v01,
+                        grant),
+       },
+       {
+               .data_type      = QMI_EOTI,
+               .is_array       = NO_ARRAY,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
+       },
+};
+
+struct elem_info wlfw_antenna_grant_resp_msg_v01_ei[] = {
+       {
+               .data_type      = QMI_STRUCT,
+               .elem_len       = 1,
+               .elem_size      = sizeof(struct qmi_response_type_v01),
+               .is_array       = NO_ARRAY,
+               .tlv_type       = 0x02,
+               .offset         =
+               offsetof(struct wlfw_antenna_grant_resp_msg_v01,
+                        resp),
+               .ei_array      = get_qmi_response_type_v01_ei(),
        },
        {
                .data_type      = QMI_EOTI,
                .is_array       = NO_ARRAY,
-               .is_array       = QMI_COMMON_TLV_TYPE,
+               .tlv_type       = QMI_COMMON_TLV_TYPE,
        },
 };
 
index 751e923..121c491 100644 (file)
@@ -1,4 +1,4 @@
- /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
+ /* Copyright (c) 2015-2017, 2019 The Linux Foundation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
 
 #define QMI_WLFW_BDF_DOWNLOAD_REQ_V01 0x0025
 #define QMI_WLFW_FW_MEM_READY_IND_V01 0x0037
+#define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_REQ_V01 0x0044
 #define QMI_WLFW_INITIATE_CAL_UPDATE_IND_V01 0x002A
+#define QMI_WLFW_CAL_DONE_IND_V01 0x003E
 #define QMI_WLFW_HOST_CAP_REQ_V01 0x0034
 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_RESP_V01 0x003B
+#define QMI_WLFW_M3_INFO_REQ_V01 0x003C
 #define QMI_WLFW_CAP_REQ_V01 0x0024
+#define QMI_WLFW_FW_INIT_DONE_IND_V01 0x0038
+#define QMI_WLFW_ANTENNA_GRANT_RESP_V01 0x0048
 #define QMI_WLFW_CAL_REPORT_REQ_V01 0x0026
+#define QMI_WLFW_M3_INFO_RESP_V01 0x003C
 #define QMI_WLFW_CAL_UPDATE_RESP_V01 0x0029
 #define QMI_WLFW_CAL_DOWNLOAD_RESP_V01 0x0027
+#define QMI_WLFW_XO_CAL_IND_V01 0x003D
 #define QMI_WLFW_INI_RESP_V01 0x002F
 #define QMI_WLFW_CAL_REPORT_RESP_V01 0x0026
+#define QMI_WLFW_QDSS_TRACE_MEM_INFO_REQ_V01 0x0040
+#define QMI_WLFW_ANTENNA_SWITCH_REQ_V01 0x0047
+#define QMI_WLFW_QDSS_TRACE_REQ_MEM_IND_V01 0x003F
+#define QMI_WLFW_SHUTDOWN_RESP_V01 0x0043
 #define QMI_WLFW_MAC_ADDR_RESP_V01 0x0033
 #define QMI_WLFW_INITIATE_CAL_DOWNLOAD_IND_V01 0x0028
 #define QMI_WLFW_HOST_CAP_RESP_V01 0x0034
 #define QMI_WLFW_WLAN_MODE_REQ_V01 0x0022
 #define QMI_WLFW_IND_REGISTER_REQ_V01 0x0020
 #define QMI_WLFW_WLAN_CFG_RESP_V01 0x0023
-#define QMI_WLFW_COLD_BOOT_CAL_DONE_IND_V01 0x0038
+#define QMI_WLFW_QDSS_TRACE_MODE_REQ_V01 0x0045
 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035
+#define QMI_WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_V01 0x0044
 #define QMI_WLFW_REJUVENATE_IND_V01 0x0039
 #define QMI_WLFW_DYNAMIC_FEATURE_MASK_REQ_V01 0x003B
 #define QMI_WLFW_ATHDIAG_WRITE_REQ_V01 0x0031
 #define QMI_WLFW_WLAN_MODE_RESP_V01 0x0022
 #define QMI_WLFW_RESPOND_MEM_REQ_V01 0x0036
+#define QMI_WLFW_QDSS_TRACE_MODE_RESP_V01 0x0045
 #define QMI_WLFW_PIN_CONNECT_RESULT_IND_V01 0x002C
 #define QMI_WLFW_FW_READY_IND_V01 0x0021
+#define QMI_WLFW_QDSS_TRACE_SAVE_IND_V01 0x0041
+#define QMI_WLFW_QDSS_TRACE_MEM_INFO_RESP_V01 0x0040
+#define QMI_WLFW_ANTENNA_GRANT_REQ_V01 0x0048
 #define QMI_WLFW_MSA_READY_RESP_V01 0x002E
+#define QMI_WLFW_QDSS_TRACE_DATA_REQ_V01 0x0042
 #define QMI_WLFW_CAL_UPDATE_REQ_V01 0x0029
 #define QMI_WLFW_INI_REQ_V01 0x002F
 #define QMI_WLFW_BDF_DOWNLOAD_RESP_V01 0x0025
 #define QMI_WLFW_REJUVENATE_ACK_RESP_V01 0x003A
 #define QMI_WLFW_MSA_INFO_RESP_V01 0x002D
 #define QMI_WLFW_MSA_READY_REQ_V01 0x002E
+#define QMI_WLFW_QDSS_TRACE_DATA_RESP_V01 0x0042
 #define QMI_WLFW_CAP_RESP_V01 0x0024
 #define QMI_WLFW_REJUVENATE_ACK_REQ_V01 0x003A
 #define QMI_WLFW_ATHDIAG_READ_RESP_V01 0x0030
+#define QMI_WLFW_SHUTDOWN_REQ_V01 0x0043
 #define QMI_WLFW_VBATT_REQ_V01 0x0032
+#define QMI_WLFW_ANTENNA_SWITCH_RESP_V01 0x0047
 #define QMI_WLFW_MAC_ADDR_REQ_V01 0x0033
 #define QMI_WLFW_RESPOND_MEM_RESP_V01 0x0036
 #define QMI_WLFW_VBATT_RESP_V01 0x0032
 #define QMI_WLFW_MSA_INFO_REQ_V01 0x002D
+#define QMI_WLFW_QDSS_TRACE_FREE_IND_V01 0x0046
 #define QMI_WLFW_CAL_DOWNLOAD_REQ_V01 0x0027
 #define QMI_WLFW_ATHDIAG_READ_REQ_V01 0x0030
 #define QMI_WLFW_WLAN_CFG_REQ_V01 0x0023
 #define QMI_WLFW_IND_REGISTER_RESP_V01 0x0020
 
 #define QMI_WLFW_MAX_NUM_MEMORY_REGIONS_V01 2
+#define QMI_WLFW_MAX_NUM_MEM_SEG_V01 32
 #define QMI_WLFW_MAX_NUM_CAL_V01 5
 #define QMI_WLFW_MAX_DATA_SIZE_V01 6144
 #define QMI_WLFW_FUNCTION_NAME_LEN_V01 128
 #define QMI_WLFW_MAX_NUM_CE_V01 12
 #define QMI_WLFW_MAX_TIMESTAMP_LEN_V01 32
+#define QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01 6144
+#define QMI_WLFW_MAX_NUM_GPIO_V01 32
 #define QMI_WLFW_MAX_BUILD_ID_LEN_V01 128
+#define QMI_WLFW_MAX_NUM_MEM_CFG_V01 2
 #define QMI_WLFW_MAX_STR_LEN_V01 16
 #define QMI_WLFW_MAX_NUM_SHADOW_REG_V01 24
 #define QMI_WLFW_MAC_ADDR_SIZE_V01 6
@@ -109,463 +134,803 @@ enum wlfw_pipedir_enum_v01 {
        WLFW_PIPEDIR_ENUM_MAX_VAL_V01 = INT_MAX,
 };
 
-#define QMI_WLFW_CE_ATTR_FLAGS_V01 ((uint32_t)0x00)
-#define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((uint32_t)0x01)
-#define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((uint32_t)0x02)
-#define QMI_WLFW_CE_ATTR_SWIZZLE_DESCRIPTORS_V01 ((uint32_t)0x04)
-#define QMI_WLFW_CE_ATTR_DISABLE_INTR_V01 ((uint32_t)0x08)
-#define QMI_WLFW_CE_ATTR_ENABLE_POLL_V01 ((uint32_t)0x10)
+enum wlfw_mem_type_enum_v01 {
+       WLFW_MEM_TYPE_ENUM_MIN_VAL_V01 = INT_MIN,
+       QMI_WLFW_MEM_TYPE_MSA_V01 = 0,
+       QMI_WLFW_MEM_TYPE_DDR_V01 = 1,
+       QMI_WLFW_MEM_BDF_V01 = 2,
+       QMI_WLFW_MEM_M3_V01 = 3,
+       QMI_WLFW_MEM_CAL_V01 = 4,
+       QMI_WLFW_MEM_DPD_V01 = 5,
+       QMI_WLFW_MEM_QDSS_V01 = 6,
+       WLFW_MEM_TYPE_ENUM_MAX_VAL_V01 = INT_MAX,
+};
+
+enum wlfw_qdss_trace_mode_enum_v01 {
+       WLFW_QDSS_TRACE_MODE_ENUM_MIN_VAL_V01 = INT_MIN,
+       QMI_WLFW_QDSS_TRACE_OFF_V01 = 0,
+       QMI_WLFW_QDSS_TRACE_ON_V01 = 1,
+       WLFW_QDSS_TRACE_MODE_ENUM_MAX_VAL_V01 = INT_MAX,
+};
+
+#define QMI_WLFW_CE_ATTR_FLAGS_V01 ((u32)0x00)
+#define QMI_WLFW_CE_ATTR_NO_SNOOP_V01 ((u32)0x01)
+#define QMI_WLFW_CE_ATTR_BYTE_SWAP_DATA_V01 ((u32)0x02)
+#define QMI_WLFW_CE_ATTR_SWIZZLE_DESCRIPTORS_V01 ((u32)0x04)
+#define QMI_WLFW_CE_ATTR_DISABLE_INTR_V01 ((u32)0x08)
+#define QMI_WLFW_CE_ATTR_ENABLE_POLL_V01 ((u32)0x10)
 
-#define QMI_WLFW_ALREADY_REGISTERED_V01 ((uint64_t)0x01ULL)
-#define QMI_WLFW_FW_READY_V01 ((uint64_t)0x02ULL)
-#define QMI_WLFW_MSA_READY_V01 ((uint64_t)0x04ULL)
-#define QMI_WLFW_FW_MEM_READY_V01 ((uint64_t)0x08ULL)
+#define QMI_WLFW_ALREADY_REGISTERED_V01 ((u64)0x01ULL)
+#define QMI_WLFW_FW_READY_V01 ((u64)0x02ULL)
+#define QMI_WLFW_MSA_READY_V01 ((u64)0x04ULL)
+#define QMI_WLFW_FW_MEM_READY_V01 ((u64)0x08ULL)
+#define QMI_WLFW_FW_INIT_DONE_V01 ((u64)0x10ULL)
 
-#define QMI_WLFW_FW_REJUVENATE_V01 ((uint64_t)0x01ULL)
+#define QMI_WLFW_FW_REJUVENATE_V01 ((u64)0x01ULL)
 
 struct wlfw_ce_tgt_pipe_cfg_s_v01 {
-       uint32_t pipe_num;
+       u32 pipe_num;
        enum wlfw_pipedir_enum_v01 pipe_dir;
-       uint32_t nentries;
-       uint32_t nbytes_max;
-       uint32_t flags;
+       u32 nentries;
+       u32 nbytes_max;
+       u32 flags;
 };
 
 struct wlfw_ce_svc_pipe_cfg_s_v01 {
-       uint32_t service_id;
+       u32 service_id;
        enum wlfw_pipedir_enum_v01 pipe_dir;
-       uint32_t pipe_num;
+       u32 pipe_num;
 };
 
 struct wlfw_shadow_reg_cfg_s_v01 {
-       uint16_t id;
-       uint16_t offset;
+       u16 id;
+       u16 offset;
 };
 
 struct wlfw_shadow_reg_v2_cfg_s_v01 {
-       uint32_t addr;
+       u32 addr;
+};
+
+struct wlfw_rri_over_ddr_cfg_s_v01 {
+       u32 base_addr_low;
+       u32 base_addr_high;
+};
+
+struct wlfw_msi_cfg_s_v01 {
+       u16 ce_id;
+       u16 msi_vector;
 };
 
 struct wlfw_memory_region_info_s_v01 {
-       uint64_t region_addr;
-       uint32_t size;
-       uint8_t secure_flag;
+       u64 region_addr;
+       u32 size;
+       u8 secure_flag;
+};
+
+struct wlfw_mem_cfg_s_v01 {
+       u64 offset;
+       u32 size;
+       u8 secure_flag;
+};
+
+struct wlfw_mem_seg_s_v01 {
+       u32 size;
+       enum wlfw_mem_type_enum_v01 type;
+       u32 mem_cfg_len;
+       struct wlfw_mem_cfg_s_v01 mem_cfg[QMI_WLFW_MAX_NUM_MEM_CFG_V01];
+};
+
+struct wlfw_mem_seg_resp_s_v01 {
+       u64 addr;
+       u32 size;
+       enum wlfw_mem_type_enum_v01 type;
+       u8 restore;
 };
 
 struct wlfw_rf_chip_info_s_v01 {
-       uint32_t chip_id;
-       uint32_t chip_family;
+       u32 chip_id;
+       u32 chip_family;
 };
 
 struct wlfw_rf_board_info_s_v01 {
-       uint32_t board_id;
+       u32 board_id;
 };
 
 struct wlfw_soc_info_s_v01 {
-       uint32_t soc_id;
+       u32 soc_id;
 };
 
 struct wlfw_fw_version_info_s_v01 {
-       uint32_t fw_version;
+       u32 fw_version;
        char fw_build_timestamp[QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1];
 };
 
 struct wlfw_ind_register_req_msg_v01 {
-       uint8_t fw_ready_enable_valid;
-       uint8_t fw_ready_enable;
-       uint8_t initiate_cal_download_enable_valid;
-       uint8_t initiate_cal_download_enable;
-       uint8_t initiate_cal_update_enable_valid;
-       uint8_t initiate_cal_update_enable;
-       uint8_t msa_ready_enable_valid;
-       uint8_t msa_ready_enable;
-       uint8_t pin_connect_result_enable_valid;
-       uint8_t pin_connect_result_enable;
-       uint8_t client_id_valid;
-       uint32_t client_id;
-       uint8_t request_mem_enable_valid;
-       uint8_t request_mem_enable;
-       uint8_t fw_mem_ready_enable_valid;
-       uint8_t fw_mem_ready_enable;
-       uint8_t cold_boot_cal_done_enable_valid;
-       uint8_t cold_boot_cal_done_enable;
-       uint8_t rejuvenate_enable_valid;
-       uint32_t rejuvenate_enable;
-};
-#define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 46
+       u8 fw_ready_enable_valid;
+       u8 fw_ready_enable;
+       u8 initiate_cal_download_enable_valid;
+       u8 initiate_cal_download_enable;
+       u8 initiate_cal_update_enable_valid;
+       u8 initiate_cal_update_enable;
+       u8 msa_ready_enable_valid;
+       u8 msa_ready_enable;
+       u8 pin_connect_result_enable_valid;
+       u8 pin_connect_result_enable;
+       u8 client_id_valid;
+       u32 client_id;
+       u8 request_mem_enable_valid;
+       u8 request_mem_enable;
+       u8 fw_mem_ready_enable_valid;
+       u8 fw_mem_ready_enable;
+       u8 fw_init_done_enable_valid;
+       u8 fw_init_done_enable;
+       u8 rejuvenate_enable_valid;
+       u32 rejuvenate_enable;
+       u8 xo_cal_enable_valid;
+       u8 xo_cal_enable;
+       u8 cal_done_enable_valid;
+       u8 cal_done_enable;
+       u8 qdss_trace_req_mem_enable_valid;
+       u8 qdss_trace_req_mem_enable;
+       u8 qdss_trace_save_enable_valid;
+       u8 qdss_trace_save_enable;
+       u8 qdss_trace_free_enable_valid;
+       u8 qdss_trace_free_enable;
+};
+
+#define WLFW_IND_REGISTER_REQ_MSG_V01_MAX_MSG_LEN 66
 extern struct elem_info wlfw_ind_register_req_msg_v01_ei[];
 
 struct wlfw_ind_register_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint8_t fw_status_valid;
-       uint64_t fw_status;
+       u8 fw_status_valid;
+       u64 fw_status;
 };
+
 #define WLFW_IND_REGISTER_RESP_MSG_V01_MAX_MSG_LEN 18
 extern struct elem_info wlfw_ind_register_resp_msg_v01_ei[];
 
 struct wlfw_fw_ready_ind_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_FW_READY_IND_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_fw_ready_ind_msg_v01_ei[];
 
 struct wlfw_msa_ready_ind_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_MSA_READY_IND_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_msa_ready_ind_msg_v01_ei[];
 
 struct wlfw_pin_connect_result_ind_msg_v01 {
-       uint8_t pwr_pin_result_valid;
-       uint32_t pwr_pin_result;
-       uint8_t phy_io_pin_result_valid;
-       uint32_t phy_io_pin_result;
-       uint8_t rf_pin_result_valid;
-       uint32_t rf_pin_result;
+       u8 pwr_pin_result_valid;
+       u32 pwr_pin_result;
+       u8 phy_io_pin_result_valid;
+       u32 phy_io_pin_result;
+       u8 rf_pin_result_valid;
+       u32 rf_pin_result;
 };
+
 #define WLFW_PIN_CONNECT_RESULT_IND_MSG_V01_MAX_MSG_LEN 21
 extern struct elem_info wlfw_pin_connect_result_ind_msg_v01_ei[];
 
 struct wlfw_wlan_mode_req_msg_v01 {
        enum wlfw_driver_mode_enum_v01 mode;
-       uint8_t hw_debug_valid;
-       uint8_t hw_debug;
+       u8 hw_debug_valid;
+       u8 hw_debug;
 };
+
 #define WLFW_WLAN_MODE_REQ_MSG_V01_MAX_MSG_LEN 11
 extern struct elem_info wlfw_wlan_mode_req_msg_v01_ei[];
 
 struct wlfw_wlan_mode_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_WLAN_MODE_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_wlan_mode_resp_msg_v01_ei[];
 
 struct wlfw_wlan_cfg_req_msg_v01 {
-       uint8_t host_version_valid;
+       u8 host_version_valid;
        char host_version[QMI_WLFW_MAX_STR_LEN_V01 + 1];
-       uint8_t tgt_cfg_valid;
-       uint32_t tgt_cfg_len;
+       u8 tgt_cfg_valid;
+       u32 tgt_cfg_len;
        struct wlfw_ce_tgt_pipe_cfg_s_v01 tgt_cfg[QMI_WLFW_MAX_NUM_CE_V01];
-       uint8_t svc_cfg_valid;
-       uint32_t svc_cfg_len;
+       u8 svc_cfg_valid;
+       u32 svc_cfg_len;
        struct wlfw_ce_svc_pipe_cfg_s_v01 svc_cfg[QMI_WLFW_MAX_NUM_SVC_V01];
-       uint8_t shadow_reg_valid;
-       uint32_t shadow_reg_len;
+       u8 shadow_reg_valid;
+       u32 shadow_reg_len;
        struct wlfw_shadow_reg_cfg_s_v01 shadow_reg[QMI_WLFW_MAX_NUM_SHADOW_REG_V01];
-       uint8_t shadow_reg_v2_valid;
-       uint32_t shadow_reg_v2_len;
+       u8 shadow_reg_v2_valid;
+       u32 shadow_reg_v2_len;
        struct wlfw_shadow_reg_v2_cfg_s_v01
-       shadow_reg_v2[QMI_WLFW_MAX_NUM_SHADOW_REG_V2_V01];
+               shadow_reg_v2[QMI_WLFW_MAX_NUM_SHADOW_REG_V2_V01];
+       u8 rri_over_ddr_cfg_valid;
+       struct wlfw_rri_over_ddr_cfg_s_v01 rri_over_ddr_cfg;
+       u8 msi_cfg_valid;
+       u32 msi_cfg_len;
+       struct wlfw_msi_cfg_s_v01 msi_cfg[QMI_WLFW_MAX_NUM_CE_V01];
 };
-#define WLFW_WLAN_CFG_REQ_MSG_V01_MAX_MSG_LEN 803
+
+#define WLFW_WLAN_CFG_REQ_MSG_V01_MAX_MSG_LEN 866
 extern struct elem_info wlfw_wlan_cfg_req_msg_v01_ei[];
 
 struct wlfw_wlan_cfg_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_WLAN_CFG_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_wlan_cfg_resp_msg_v01_ei[];
 
 struct wlfw_cap_req_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_CAP_REQ_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_cap_req_msg_v01_ei[];
 
 struct wlfw_cap_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint8_t chip_info_valid;
+       u8 chip_info_valid;
        struct wlfw_rf_chip_info_s_v01 chip_info;
-       uint8_t board_info_valid;
+       u8 board_info_valid;
        struct wlfw_rf_board_info_s_v01 board_info;
-       uint8_t soc_info_valid;
+       u8 soc_info_valid;
        struct wlfw_soc_info_s_v01 soc_info;
-       uint8_t fw_version_info_valid;
+       u8 fw_version_info_valid;
        struct wlfw_fw_version_info_s_v01 fw_version_info;
-       uint8_t fw_build_id_valid;
+       u8 fw_build_id_valid;
        char fw_build_id[QMI_WLFW_MAX_BUILD_ID_LEN_V01 + 1];
+       u8 num_macs_valid;
+       u8 num_macs;
+       u8 voltage_mv_valid;
+       u32 voltage_mv;
 };
-#define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 203
+
+#define WLFW_CAP_RESP_MSG_V01_MAX_MSG_LEN 214
 extern struct elem_info wlfw_cap_resp_msg_v01_ei[];
 
 struct wlfw_bdf_download_req_msg_v01 {
-       uint8_t valid;
-       uint8_t file_id_valid;
+       u8 valid;
+       u8 file_id_valid;
        enum wlfw_cal_temp_id_enum_v01 file_id;
-       uint8_t total_size_valid;
-       uint32_t total_size;
-       uint8_t seg_id_valid;
-       uint32_t seg_id;
-       uint8_t data_valid;
-       uint32_t data_len;
-       uint8_t data[QMI_WLFW_MAX_DATA_SIZE_V01];
-       uint8_t end_valid;
-       uint8_t end;
-};
-#define WLFW_BDF_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6178
+       u8 total_size_valid;
+       u32 total_size;
+       u8 seg_id_valid;
+       u32 seg_id;
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 end_valid;
+       u8 end;
+       u8 bdf_type_valid;
+       u8 bdf_type;
+};
+
+#define WLFW_BDF_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6182
 extern struct elem_info wlfw_bdf_download_req_msg_v01_ei[];
 
 struct wlfw_bdf_download_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_BDF_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_bdf_download_resp_msg_v01_ei[];
 
 struct wlfw_cal_report_req_msg_v01 {
-       uint32_t meta_data_len;
+       u32 meta_data_len;
        enum wlfw_cal_temp_id_enum_v01 meta_data[QMI_WLFW_MAX_NUM_CAL_V01];
+       u8 xo_cal_data_valid;
+       u8 xo_cal_data;
 };
-#define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 24
+
+#define WLFW_CAL_REPORT_REQ_MSG_V01_MAX_MSG_LEN 28
 extern struct elem_info wlfw_cal_report_req_msg_v01_ei[];
 
 struct wlfw_cal_report_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_CAL_REPORT_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_cal_report_resp_msg_v01_ei[];
 
 struct wlfw_initiate_cal_download_ind_msg_v01 {
        enum wlfw_cal_temp_id_enum_v01 cal_id;
+       u8 total_size_valid;
+       u32 total_size;
+       u8 cal_data_location_valid;
+       u32 cal_data_location;
 };
-#define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 7
+
+#define WLFW_INITIATE_CAL_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 21
 extern struct elem_info wlfw_initiate_cal_download_ind_msg_v01_ei[];
 
 struct wlfw_cal_download_req_msg_v01 {
-       uint8_t valid;
-       uint8_t file_id_valid;
+       u8 valid;
+       u8 file_id_valid;
        enum wlfw_cal_temp_id_enum_v01 file_id;
-       uint8_t total_size_valid;
-       uint32_t total_size;
-       uint8_t seg_id_valid;
-       uint32_t seg_id;
-       uint8_t data_valid;
-       uint32_t data_len;
-       uint8_t data[QMI_WLFW_MAX_DATA_SIZE_V01];
-       uint8_t end_valid;
-       uint8_t end;
-};
-#define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6178
+       u8 total_size_valid;
+       u32 total_size;
+       u8 seg_id_valid;
+       u32 seg_id;
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 end_valid;
+       u8 end;
+       u8 cal_data_location_valid;
+       u32 cal_data_location;
+};
+
+#define WLFW_CAL_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6185
 extern struct elem_info wlfw_cal_download_req_msg_v01_ei[];
 
 struct wlfw_cal_download_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_CAL_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_cal_download_resp_msg_v01_ei[];
 
 struct wlfw_initiate_cal_update_ind_msg_v01 {
        enum wlfw_cal_temp_id_enum_v01 cal_id;
-       uint32_t total_size;
+       u32 total_size;
+       u8 cal_data_location_valid;
+       u32 cal_data_location;
 };
-#define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 14
+
+#define WLFW_INITIATE_CAL_UPDATE_IND_MSG_V01_MAX_MSG_LEN 21
 extern struct elem_info wlfw_initiate_cal_update_ind_msg_v01_ei[];
 
 struct wlfw_cal_update_req_msg_v01 {
        enum wlfw_cal_temp_id_enum_v01 cal_id;
-       uint32_t seg_id;
+       u32 seg_id;
 };
+
 #define WLFW_CAL_UPDATE_REQ_MSG_V01_MAX_MSG_LEN 14
 extern struct elem_info wlfw_cal_update_req_msg_v01_ei[];
 
 struct wlfw_cal_update_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint8_t file_id_valid;
+       u8 file_id_valid;
        enum wlfw_cal_temp_id_enum_v01 file_id;
-       uint8_t total_size_valid;
-       uint32_t total_size;
-       uint8_t seg_id_valid;
-       uint32_t seg_id;
-       uint8_t data_valid;
-       uint32_t data_len;
-       uint8_t data[QMI_WLFW_MAX_DATA_SIZE_V01];
-       uint8_t end_valid;
-       uint8_t end;
-};
-#define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6181
+       u8 total_size_valid;
+       u32 total_size;
+       u8 seg_id_valid;
+       u32 seg_id;
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 end_valid;
+       u8 end;
+       u8 cal_data_location_valid;
+       u32 cal_data_location;
+};
+
+#define WLFW_CAL_UPDATE_RESP_MSG_V01_MAX_MSG_LEN 6188
 extern struct elem_info wlfw_cal_update_resp_msg_v01_ei[];
 
 struct wlfw_msa_info_req_msg_v01 {
-       uint64_t msa_addr;
-       uint32_t size;
+       u64 msa_addr;
+       u32 size;
 };
+
 #define WLFW_MSA_INFO_REQ_MSG_V01_MAX_MSG_LEN 18
 extern struct elem_info wlfw_msa_info_req_msg_v01_ei[];
 
 struct wlfw_msa_info_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint32_t mem_region_info_len;
+       u32 mem_region_info_len;
        struct wlfw_memory_region_info_s_v01
-       mem_region_info[QMI_WLFW_MAX_NUM_MEMORY_REGIONS_V01];
+               mem_region_info[QMI_WLFW_MAX_NUM_MEMORY_REGIONS_V01];
 };
+
 #define WLFW_MSA_INFO_RESP_MSG_V01_MAX_MSG_LEN 37
 extern struct elem_info wlfw_msa_info_resp_msg_v01_ei[];
 
 struct wlfw_msa_ready_req_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_MSA_READY_REQ_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_msa_ready_req_msg_v01_ei[];
 
 struct wlfw_msa_ready_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_MSA_READY_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_msa_ready_resp_msg_v01_ei[];
 
 struct wlfw_ini_req_msg_v01 {
-       uint8_t enablefwlog_valid;
-       uint8_t enablefwlog;
+       u8 enablefwlog_valid;
+       u8 enablefwlog;
 };
+
 #define WLFW_INI_REQ_MSG_V01_MAX_MSG_LEN 4
 extern struct elem_info wlfw_ini_req_msg_v01_ei[];
 
 struct wlfw_ini_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_INI_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_ini_resp_msg_v01_ei[];
 
 struct wlfw_athdiag_read_req_msg_v01 {
-       uint32_t offset;
-       uint32_t mem_type;
-       uint32_t data_len;
+       u32 offset;
+       u32 mem_type;
+       u32 data_len;
 };
+
 #define WLFW_ATHDIAG_READ_REQ_MSG_V01_MAX_MSG_LEN 21
 extern struct elem_info wlfw_athdiag_read_req_msg_v01_ei[];
 
 struct wlfw_athdiag_read_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint8_t data_valid;
-       uint32_t data_len;
-       uint8_t data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01];
 };
+
 #define WLFW_ATHDIAG_READ_RESP_MSG_V01_MAX_MSG_LEN 6156
 extern struct elem_info wlfw_athdiag_read_resp_msg_v01_ei[];
 
 struct wlfw_athdiag_write_req_msg_v01 {
-       uint32_t offset;
-       uint32_t mem_type;
-       uint32_t data_len;
-       uint8_t data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u32 offset;
+       u32 mem_type;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_ATHDIAG_DATA_SIZE_V01];
 };
+
 #define WLFW_ATHDIAG_WRITE_REQ_MSG_V01_MAX_MSG_LEN 6163
 extern struct elem_info wlfw_athdiag_write_req_msg_v01_ei[];
 
 struct wlfw_athdiag_write_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_ATHDIAG_WRITE_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_athdiag_write_resp_msg_v01_ei[];
 
 struct wlfw_vbatt_req_msg_v01 {
-       uint64_t voltage_uv;
+       u64 voltage_uv;
 };
+
 #define WLFW_VBATT_REQ_MSG_V01_MAX_MSG_LEN 11
 extern struct elem_info wlfw_vbatt_req_msg_v01_ei[];
 
 struct wlfw_vbatt_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_VBATT_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_vbatt_resp_msg_v01_ei[];
 
 struct wlfw_mac_addr_req_msg_v01 {
-       uint8_t mac_addr_valid;
-       uint8_t mac_addr[QMI_WLFW_MAC_ADDR_SIZE_V01];
+       u8 mac_addr_valid;
+       u8 mac_addr[QMI_WLFW_MAC_ADDR_SIZE_V01];
 };
+
 #define WLFW_MAC_ADDR_REQ_MSG_V01_MAX_MSG_LEN 9
 extern struct elem_info wlfw_mac_addr_req_msg_v01_ei[];
 
 struct wlfw_mac_addr_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_MAC_ADDR_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_mac_addr_resp_msg_v01_ei[];
 
 struct wlfw_host_cap_req_msg_v01 {
-       uint8_t daemon_support_valid;
-       uint8_t daemon_support;
-};
-#define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 4
+       u8 num_clients_valid;
+       u32 num_clients;
+       u8 wake_msi_valid;
+       u32 wake_msi;
+       u8 gpios_valid;
+       u32 gpios_len;
+       u32 gpios[QMI_WLFW_MAX_NUM_GPIO_V01];
+       u8 nm_modem_valid;
+       u8 nm_modem;
+       u8 bdf_support_valid;
+       u8 bdf_support;
+       u8 bdf_cache_support_valid;
+       u8 bdf_cache_support;
+       u8 m3_support_valid;
+       u8 m3_support;
+       u8 m3_cache_support_valid;
+       u8 m3_cache_support;
+       u8 cal_filesys_support_valid;
+       u8 cal_filesys_support;
+       u8 cal_cache_support_valid;
+       u8 cal_cache_support;
+       u8 cal_done_valid;
+       u8 cal_done;
+       u8 mem_bucket_valid;
+       u32 mem_bucket;
+       u8 mem_cfg_mode_valid;
+       u8 mem_cfg_mode;
+       u8 cal_duration_valid;
+       u16 cal_duration;
+};
+
+#define WLFW_HOST_CAP_REQ_MSG_V01_MAX_MSG_LEN 194
 extern struct elem_info wlfw_host_cap_req_msg_v01_ei[];
 
 struct wlfw_host_cap_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_HOST_CAP_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_host_cap_resp_msg_v01_ei[];
 
 struct wlfw_request_mem_ind_msg_v01 {
-       uint32_t size;
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
 };
-#define WLFW_REQUEST_MEM_IND_MSG_V01_MAX_MSG_LEN 7
+
+#define WLFW_REQUEST_MEM_IND_MSG_V01_MAX_MSG_LEN 1124
 extern struct elem_info wlfw_request_mem_ind_msg_v01_ei[];
 
 struct wlfw_respond_mem_req_msg_v01 {
-       uint64_t addr;
-       uint32_t size;
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_resp_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
 };
-#define WLFW_RESPOND_MEM_REQ_MSG_V01_MAX_MSG_LEN 18
+
+#define WLFW_RESPOND_MEM_REQ_MSG_V01_MAX_MSG_LEN 548
 extern struct elem_info wlfw_respond_mem_req_msg_v01_ei[];
 
 struct wlfw_respond_mem_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_RESPOND_MEM_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_respond_mem_resp_msg_v01_ei[];
 
 struct wlfw_fw_mem_ready_ind_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_FW_MEM_READY_IND_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_fw_mem_ready_ind_msg_v01_ei[];
 
-struct wlfw_cold_boot_cal_done_ind_msg_v01 {
+struct wlfw_fw_init_done_ind_msg_v01 {
        char placeholder;
 };
-#define WLFW_COLD_BOOT_CAL_DONE_IND_MSG_V01_MAX_MSG_LEN 0
-extern struct elem_info wlfw_cold_boot_cal_done_ind_msg_v01_ei[];
+
+#define WLFW_FW_INIT_DONE_IND_MSG_V01_MAX_MSG_LEN 0
+extern struct elem_info wlfw_fw_init_done_ind_msg_v01_ei[];
 
 struct wlfw_rejuvenate_ind_msg_v01 {
-       uint8_t cause_for_rejuvenation_valid;
-       uint8_t cause_for_rejuvenation;
-       uint8_t requesting_sub_system_valid;
-       uint8_t requesting_sub_system;
-       uint8_t line_number_valid;
-       uint16_t line_number;
-       uint8_t function_name_valid;
+       u8 cause_for_rejuvenation_valid;
+       u8 cause_for_rejuvenation;
+       u8 requesting_sub_system_valid;
+       u8 requesting_sub_system;
+       u8 line_number_valid;
+       u16 line_number;
+       u8 function_name_valid;
        char function_name[QMI_WLFW_FUNCTION_NAME_LEN_V01 + 1];
 };
+
 #define WLFW_REJUVENATE_IND_MSG_V01_MAX_MSG_LEN 144
 extern struct elem_info wlfw_rejuvenate_ind_msg_v01_ei[];
 
 struct wlfw_rejuvenate_ack_req_msg_v01 {
        char placeholder;
 };
+
 #define WLFW_REJUVENATE_ACK_REQ_MSG_V01_MAX_MSG_LEN 0
 extern struct elem_info wlfw_rejuvenate_ack_req_msg_v01_ei[];
 
 struct wlfw_rejuvenate_ack_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
 };
+
 #define WLFW_REJUVENATE_ACK_RESP_MSG_V01_MAX_MSG_LEN 7
 extern struct elem_info wlfw_rejuvenate_ack_resp_msg_v01_ei[];
 
 struct wlfw_dynamic_feature_mask_req_msg_v01 {
-       uint8_t mask_valid;
-       uint64_t mask;
+       u8 mask_valid;
+       u64 mask;
 };
+
 #define WLFW_DYNAMIC_FEATURE_MASK_REQ_MSG_V01_MAX_MSG_LEN 11
 extern struct elem_info wlfw_dynamic_feature_mask_req_msg_v01_ei[];
 
 struct wlfw_dynamic_feature_mask_resp_msg_v01 {
        struct qmi_response_type_v01 resp;
-       uint8_t prev_mask_valid;
-       uint64_t prev_mask;
-       uint8_t curr_mask_valid;
-       uint64_t curr_mask;
+       u8 prev_mask_valid;
+       u64 prev_mask;
+       u8 curr_mask_valid;
+       u64 curr_mask;
 };
+
 #define WLFW_DYNAMIC_FEATURE_MASK_RESP_MSG_V01_MAX_MSG_LEN 29
 extern struct elem_info wlfw_dynamic_feature_mask_resp_msg_v01_ei[];
 
+struct wlfw_m3_info_req_msg_v01 {
+       u64 addr;
+       u32 size;
+};
+
+#define WLFW_M3_INFO_REQ_MSG_V01_MAX_MSG_LEN 18
+extern struct elem_info wlfw_m3_info_req_msg_v01_ei[];
+
+struct wlfw_m3_info_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_M3_INFO_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_m3_info_resp_msg_v01_ei[];
+
+struct wlfw_xo_cal_ind_msg_v01 {
+       u8 xo_cal_data;
+};
+
+#define WLFW_XO_CAL_IND_MSG_V01_MAX_MSG_LEN 4
+extern struct elem_info wlfw_xo_cal_ind_msg_v01_ei[];
+
+struct wlfw_cal_done_ind_msg_v01 {
+       char placeholder;
+};
+
+#define WLFW_CAL_DONE_IND_MSG_V01_MAX_MSG_LEN 0
+extern struct elem_info wlfw_cal_done_ind_msg_v01_ei[];
+
+struct wlfw_qdss_trace_req_mem_ind_msg_v01 {
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
+};
+
+#define WLFW_QDSS_TRACE_REQ_MEM_IND_MSG_V01_MAX_MSG_LEN 1124
+extern struct elem_info wlfw_qdss_trace_req_mem_ind_msg_v01_ei[];
+
+struct wlfw_qdss_trace_mem_info_req_msg_v01 {
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_resp_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
+};
+
+#define WLFW_QDSS_TRACE_MEM_INFO_REQ_MSG_V01_MAX_MSG_LEN 548
+extern struct elem_info wlfw_qdss_trace_mem_info_req_msg_v01_ei[];
+
+struct wlfw_qdss_trace_mem_info_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_QDSS_TRACE_MEM_INFO_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_qdss_trace_mem_info_resp_msg_v01_ei[];
+
+struct wlfw_qdss_trace_save_ind_msg_v01 {
+       u32 source;
+       u32 total_size;
+       u8 mem_seg_valid;
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_resp_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
+       u8 file_name_valid;
+       char file_name[QMI_WLFW_MAX_STR_LEN_V01 + 1];
+};
+
+#define WLFW_QDSS_TRACE_SAVE_IND_MSG_V01_MAX_MSG_LEN 581
+extern struct elem_info wlfw_qdss_trace_save_ind_msg_v01_ei[];
+
+struct wlfw_qdss_trace_data_req_msg_v01 {
+       u32 seg_id;
+};
+
+#define WLFW_QDSS_TRACE_DATA_REQ_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_qdss_trace_data_req_msg_v01_ei[];
+
+struct wlfw_qdss_trace_data_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+       u8 total_size_valid;
+       u32 total_size;
+       u8 seg_id_valid;
+       u32 seg_id;
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 end_valid;
+       u8 end;
+};
+
+#define WLFW_QDSS_TRACE_DATA_RESP_MSG_V01_MAX_MSG_LEN 6174
+extern struct elem_info wlfw_qdss_trace_data_resp_msg_v01_ei[];
+
+struct wlfw_qdss_trace_config_download_req_msg_v01 {
+       u8 total_size_valid;
+       u32 total_size;
+       u8 seg_id_valid;
+       u32 seg_id;
+       u8 data_valid;
+       u32 data_len;
+       u8 data[QMI_WLFW_MAX_DATA_SIZE_V01];
+       u8 end_valid;
+       u8 end;
+};
+
+#define WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 6167
+extern struct elem_info wlfw_qdss_trace_config_download_req_msg_v01_ei[];
+
+struct wlfw_qdss_trace_config_download_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_QDSS_TRACE_CONFIG_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_qdss_trace_config_download_resp_msg_v01_ei[];
+
+struct wlfw_qdss_trace_mode_req_msg_v01 {
+       u8 mode_valid;
+       enum wlfw_qdss_trace_mode_enum_v01 mode;
+       u8 option_valid;
+       u64 option;
+};
+
+#define WLFW_QDSS_TRACE_MODE_REQ_MSG_V01_MAX_MSG_LEN 18
+extern struct elem_info wlfw_qdss_trace_mode_req_msg_v01_ei[];
+
+struct wlfw_qdss_trace_mode_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_QDSS_TRACE_MODE_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_qdss_trace_mode_resp_msg_v01_ei[];
+
+struct wlfw_qdss_trace_free_ind_msg_v01 {
+       u8 mem_seg_valid;
+       u32 mem_seg_len;
+       struct wlfw_mem_seg_resp_s_v01 mem_seg[QMI_WLFW_MAX_NUM_MEM_SEG_V01];
+};
+
+#define WLFW_QDSS_TRACE_FREE_IND_MSG_V01_MAX_MSG_LEN 548
+extern struct elem_info wlfw_qdss_trace_free_ind_msg_v01_ei[];
+
+struct wlfw_shutdown_req_msg_v01 {
+       u8 shutdown_valid;
+       u8 shutdown;
+};
+
+#define WLFW_SHUTDOWN_REQ_MSG_V01_MAX_MSG_LEN 4
+extern struct elem_info wlfw_shutdown_req_msg_v01_ei[];
+
+struct wlfw_shutdown_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_SHUTDOWN_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_shutdown_resp_msg_v01_ei[];
+
+struct wlfw_antenna_switch_req_msg_v01 {
+       char placeholder;
+};
+
+#define WLFW_ANTENNA_SWITCH_REQ_MSG_V01_MAX_MSG_LEN 0
+extern struct elem_info wlfw_antenna_switch_req_msg_v01_ei[];
+
+struct wlfw_antenna_switch_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+       u8 antenna_valid;
+       u64 antenna;
+};
+
+#define WLFW_ANTENNA_SWITCH_RESP_MSG_V01_MAX_MSG_LEN 18
+extern struct elem_info wlfw_antenna_switch_resp_msg_v01_ei[];
+
+struct wlfw_antenna_grant_req_msg_v01 {
+       u8 grant_valid;
+       u64 grant;
+};
+
+#define WLFW_ANTENNA_GRANT_REQ_MSG_V01_MAX_MSG_LEN 11
+extern struct elem_info wlfw_antenna_grant_req_msg_v01_ei[];
+
+struct wlfw_antenna_grant_resp_msg_v01 {
+       struct qmi_response_type_v01 resp;
+};
+
+#define WLFW_ANTENNA_GRANT_RESP_MSG_V01_MAX_MSG_LEN 7
+extern struct elem_info wlfw_antenna_grant_resp_msg_v01_ei[];
+
 #endif