Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 
0003 /* Copyright (c) 2018, The Linux Foundation. All rights reserved.
0004  * Copyright (C) 2018-2020 Linaro Ltd.
0005  */
0006 #include <linux/stddef.h>
0007 #include <linux/soc/qcom/qmi.h>
0008 
0009 #include "ipa_qmi_msg.h"
0010 
0011 /* QMI message structure definition for struct ipa_indication_register_req */
0012 struct qmi_elem_info ipa_indication_register_req_ei[] = {
0013     {
0014         .data_type  = QMI_OPT_FLAG,
0015         .elem_len   = 1,
0016         .elem_size  =
0017             sizeof_field(struct ipa_indication_register_req,
0018                      master_driver_init_complete_valid),
0019         .tlv_type   = 0x10,
0020         .offset     = offsetof(struct ipa_indication_register_req,
0021                        master_driver_init_complete_valid),
0022     },
0023     {
0024         .data_type  = QMI_UNSIGNED_1_BYTE,
0025         .elem_len   = 1,
0026         .elem_size  =
0027             sizeof_field(struct ipa_indication_register_req,
0028                      master_driver_init_complete),
0029         .tlv_type   = 0x10,
0030         .offset     = offsetof(struct ipa_indication_register_req,
0031                        master_driver_init_complete),
0032     },
0033     {
0034         .data_type  = QMI_OPT_FLAG,
0035         .elem_len   = 1,
0036         .elem_size  =
0037             sizeof_field(struct ipa_indication_register_req,
0038                      data_usage_quota_reached_valid),
0039         .tlv_type   = 0x11,
0040         .offset     = offsetof(struct ipa_indication_register_req,
0041                        data_usage_quota_reached_valid),
0042     },
0043     {
0044         .data_type  = QMI_UNSIGNED_1_BYTE,
0045         .elem_len   = 1,
0046         .elem_size  =
0047             sizeof_field(struct ipa_indication_register_req,
0048                      data_usage_quota_reached),
0049         .tlv_type   = 0x11,
0050         .offset     = offsetof(struct ipa_indication_register_req,
0051                        data_usage_quota_reached),
0052     },
0053     {
0054         .data_type  = QMI_OPT_FLAG,
0055         .elem_len   = 1,
0056         .elem_size  =
0057             sizeof_field(struct ipa_indication_register_req,
0058                      ipa_mhi_ready_ind_valid),
0059         .tlv_type   = 0x12,
0060         .offset     = offsetof(struct ipa_indication_register_req,
0061                        ipa_mhi_ready_ind_valid),
0062     },
0063     {
0064         .data_type  = QMI_UNSIGNED_1_BYTE,
0065         .elem_len   = 1,
0066         .elem_size  =
0067             sizeof_field(struct ipa_indication_register_req,
0068                      ipa_mhi_ready_ind),
0069         .tlv_type   = 0x12,
0070         .offset     = offsetof(struct ipa_indication_register_req,
0071                        ipa_mhi_ready_ind),
0072     },
0073     {
0074         .data_type  = QMI_OPT_FLAG,
0075         .elem_len   = 1,
0076         .elem_size  =
0077             sizeof_field(struct ipa_indication_register_req,
0078                      endpoint_desc_ind_valid),
0079         .tlv_type   = 0x13,
0080         .offset     = offsetof(struct ipa_indication_register_req,
0081                        endpoint_desc_ind_valid),
0082     },
0083     {
0084         .data_type  = QMI_UNSIGNED_1_BYTE,
0085         .elem_len   = 1,
0086         .elem_size  =
0087             sizeof_field(struct ipa_indication_register_req,
0088                      endpoint_desc_ind),
0089         .tlv_type   = 0x13,
0090         .offset     = offsetof(struct ipa_indication_register_req,
0091                        endpoint_desc_ind),
0092     },
0093     {
0094         .data_type  = QMI_OPT_FLAG,
0095         .elem_len   = 1,
0096         .elem_size  =
0097             sizeof_field(struct ipa_indication_register_req,
0098                      bw_change_ind_valid),
0099         .tlv_type   = 0x14,
0100         .offset     = offsetof(struct ipa_indication_register_req,
0101                        bw_change_ind_valid),
0102     },
0103     {
0104         .data_type  = QMI_UNSIGNED_1_BYTE,
0105         .elem_len   = 1,
0106         .elem_size  =
0107             sizeof_field(struct ipa_indication_register_req,
0108                      bw_change_ind),
0109         .tlv_type   = 0x14,
0110         .offset     = offsetof(struct ipa_indication_register_req,
0111                        bw_change_ind),
0112     },
0113     {
0114         .data_type  = QMI_EOTI,
0115     },
0116 };
0117 
0118 /* QMI message structure definition for struct ipa_indication_register_rsp */
0119 struct qmi_elem_info ipa_indication_register_rsp_ei[] = {
0120     {
0121         .data_type  = QMI_STRUCT,
0122         .elem_len   = 1,
0123         .elem_size  =
0124             sizeof_field(struct ipa_indication_register_rsp,
0125                      rsp),
0126         .tlv_type   = 0x02,
0127         .offset     = offsetof(struct ipa_indication_register_rsp,
0128                        rsp),
0129         .ei_array   = qmi_response_type_v01_ei,
0130     },
0131     {
0132         .data_type  = QMI_EOTI,
0133     },
0134 };
0135 
0136 /* QMI message structure definition for struct ipa_driver_init_complete_req */
0137 struct qmi_elem_info ipa_driver_init_complete_req_ei[] = {
0138     {
0139         .data_type  = QMI_UNSIGNED_1_BYTE,
0140         .elem_len   = 1,
0141         .elem_size  =
0142             sizeof_field(struct ipa_driver_init_complete_req,
0143                      status),
0144         .tlv_type   = 0x01,
0145         .offset     = offsetof(struct ipa_driver_init_complete_req,
0146                        status),
0147     },
0148     {
0149         .data_type  = QMI_EOTI,
0150     },
0151 };
0152 
0153 /* QMI message structure definition for struct ipa_driver_init_complete_rsp */
0154 struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = {
0155     {
0156         .data_type  = QMI_STRUCT,
0157         .elem_len   = 1,
0158         .elem_size  =
0159             sizeof_field(struct ipa_driver_init_complete_rsp,
0160                      rsp),
0161         .tlv_type   = 0x02,
0162         .offset     = offsetof(struct ipa_driver_init_complete_rsp,
0163                        rsp),
0164         .ei_array   = qmi_response_type_v01_ei,
0165     },
0166     {
0167         .data_type  = QMI_EOTI,
0168     },
0169 };
0170 
0171 /* QMI message structure definition for struct ipa_init_complete_ind */
0172 struct qmi_elem_info ipa_init_complete_ind_ei[] = {
0173     {
0174         .data_type  = QMI_STRUCT,
0175         .elem_len   = 1,
0176         .elem_size  =
0177             sizeof_field(struct ipa_init_complete_ind,
0178                      status),
0179         .tlv_type   = 0x02,
0180         .offset     = offsetof(struct ipa_init_complete_ind,
0181                        status),
0182         .ei_array   = qmi_response_type_v01_ei,
0183     },
0184     {
0185         .data_type  = QMI_EOTI,
0186     },
0187 };
0188 
0189 /* QMI message structure definition for struct ipa_mem_bounds */
0190 struct qmi_elem_info ipa_mem_bounds_ei[] = {
0191     {
0192         .data_type  = QMI_UNSIGNED_4_BYTE,
0193         .elem_len   = 1,
0194         .elem_size  =
0195             sizeof_field(struct ipa_mem_bounds, start),
0196         .offset     = offsetof(struct ipa_mem_bounds, start),
0197     },
0198     {
0199         .data_type  = QMI_UNSIGNED_4_BYTE,
0200         .elem_len   = 1,
0201         .elem_size  =
0202             sizeof_field(struct ipa_mem_bounds, end),
0203         .offset     = offsetof(struct ipa_mem_bounds, end),
0204     },
0205     {
0206         .data_type  = QMI_EOTI,
0207     },
0208 };
0209 
0210 /* QMI message structure definition for struct ipa_mem_array */
0211 struct qmi_elem_info ipa_mem_array_ei[] = {
0212     {
0213         .data_type  = QMI_UNSIGNED_4_BYTE,
0214         .elem_len   = 1,
0215         .elem_size  =
0216             sizeof_field(struct ipa_mem_array, start),
0217         .offset     = offsetof(struct ipa_mem_array, start),
0218     },
0219     {
0220         .data_type  = QMI_UNSIGNED_4_BYTE,
0221         .elem_len   = 1,
0222         .elem_size  =
0223             sizeof_field(struct ipa_mem_array, count),
0224         .offset     = offsetof(struct ipa_mem_array, count),
0225     },
0226     {
0227         .data_type  = QMI_EOTI,
0228     },
0229 };
0230 
0231 /* QMI message structure definition for struct ipa_mem_range */
0232 struct qmi_elem_info ipa_mem_range_ei[] = {
0233     {
0234         .data_type  = QMI_UNSIGNED_4_BYTE,
0235         .elem_len   = 1,
0236         .elem_size  =
0237             sizeof_field(struct ipa_mem_range, start),
0238         .offset     = offsetof(struct ipa_mem_range, start),
0239     },
0240     {
0241         .data_type  = QMI_UNSIGNED_4_BYTE,
0242         .elem_len   = 1,
0243         .elem_size  =
0244             sizeof_field(struct ipa_mem_range, size),
0245         .offset     = offsetof(struct ipa_mem_range, size),
0246     },
0247     {
0248         .data_type  = QMI_EOTI,
0249     },
0250 };
0251 
0252 /* QMI message structure definition for struct ipa_init_modem_driver_req */
0253 struct qmi_elem_info ipa_init_modem_driver_req_ei[] = {
0254     {
0255         .data_type  = QMI_OPT_FLAG,
0256         .elem_len   = 1,
0257         .elem_size  =
0258             sizeof_field(struct ipa_init_modem_driver_req,
0259                      platform_type_valid),
0260         .tlv_type   = 0x10,
0261         .offset     = offsetof(struct ipa_init_modem_driver_req,
0262                        platform_type_valid),
0263     },
0264     {
0265         .data_type  = QMI_SIGNED_4_BYTE_ENUM,
0266         .elem_len   = 1,
0267         .elem_size  =
0268             sizeof_field(struct ipa_init_modem_driver_req,
0269                      platform_type),
0270         .tlv_type   = 0x10,
0271         .offset     = offsetof(struct ipa_init_modem_driver_req,
0272                        platform_type),
0273     },
0274     {
0275         .data_type  = QMI_OPT_FLAG,
0276         .elem_len   = 1,
0277         .elem_size  =
0278             sizeof_field(struct ipa_init_modem_driver_req,
0279                      hdr_tbl_info_valid),
0280         .tlv_type   = 0x11,
0281         .offset     = offsetof(struct ipa_init_modem_driver_req,
0282                        hdr_tbl_info_valid),
0283     },
0284     {
0285         .data_type  = QMI_STRUCT,
0286         .elem_len   = 1,
0287         .elem_size  =
0288             sizeof_field(struct ipa_init_modem_driver_req,
0289                      hdr_tbl_info),
0290         .tlv_type   = 0x11,
0291         .offset     = offsetof(struct ipa_init_modem_driver_req,
0292                        hdr_tbl_info),
0293         .ei_array   = ipa_mem_bounds_ei,
0294     },
0295     {
0296         .data_type  = QMI_OPT_FLAG,
0297         .elem_len   = 1,
0298         .elem_size  =
0299             sizeof_field(struct ipa_init_modem_driver_req,
0300                      v4_route_tbl_info_valid),
0301         .tlv_type   = 0x12,
0302         .offset     = offsetof(struct ipa_init_modem_driver_req,
0303                        v4_route_tbl_info_valid),
0304     },
0305     {
0306         .data_type  = QMI_STRUCT,
0307         .elem_len   = 1,
0308         .elem_size  =
0309             sizeof_field(struct ipa_init_modem_driver_req,
0310                      v4_route_tbl_info),
0311         .tlv_type   = 0x12,
0312         .offset     = offsetof(struct ipa_init_modem_driver_req,
0313                        v4_route_tbl_info),
0314         .ei_array   = ipa_mem_bounds_ei,
0315     },
0316     {
0317         .data_type  = QMI_OPT_FLAG,
0318         .elem_len   = 1,
0319         .elem_size  =
0320             sizeof_field(struct ipa_init_modem_driver_req,
0321                      v6_route_tbl_info_valid),
0322         .tlv_type   = 0x13,
0323         .offset     = offsetof(struct ipa_init_modem_driver_req,
0324                        v6_route_tbl_info_valid),
0325     },
0326     {
0327         .data_type  = QMI_STRUCT,
0328         .elem_len   = 1,
0329         .elem_size  =
0330             sizeof_field(struct ipa_init_modem_driver_req,
0331                      v6_route_tbl_info),
0332         .tlv_type   = 0x13,
0333         .offset     = offsetof(struct ipa_init_modem_driver_req,
0334                        v6_route_tbl_info),
0335         .ei_array   = ipa_mem_bounds_ei,
0336     },
0337     {
0338         .data_type  = QMI_OPT_FLAG,
0339         .elem_len   = 1,
0340         .elem_size  =
0341             sizeof_field(struct ipa_init_modem_driver_req,
0342                      v4_filter_tbl_start_valid),
0343         .tlv_type   = 0x14,
0344         .offset     = offsetof(struct ipa_init_modem_driver_req,
0345                        v4_filter_tbl_start_valid),
0346     },
0347     {
0348         .data_type  = QMI_UNSIGNED_4_BYTE,
0349         .elem_len   = 1,
0350         .elem_size  =
0351             sizeof_field(struct ipa_init_modem_driver_req,
0352                      v4_filter_tbl_start),
0353         .tlv_type   = 0x14,
0354         .offset     = offsetof(struct ipa_init_modem_driver_req,
0355                        v4_filter_tbl_start),
0356     },
0357     {
0358         .data_type  = QMI_OPT_FLAG,
0359         .elem_len   = 1,
0360         .elem_size  =
0361             sizeof_field(struct ipa_init_modem_driver_req,
0362                      v6_filter_tbl_start_valid),
0363         .tlv_type   = 0x15,
0364         .offset     = offsetof(struct ipa_init_modem_driver_req,
0365                        v6_filter_tbl_start_valid),
0366     },
0367     {
0368         .data_type  = QMI_UNSIGNED_4_BYTE,
0369         .elem_len   = 1,
0370         .elem_size  =
0371             sizeof_field(struct ipa_init_modem_driver_req,
0372                      v6_filter_tbl_start),
0373         .tlv_type   = 0x15,
0374         .offset     = offsetof(struct ipa_init_modem_driver_req,
0375                        v6_filter_tbl_start),
0376     },
0377     {
0378         .data_type  = QMI_OPT_FLAG,
0379         .elem_len   = 1,
0380         .elem_size  =
0381             sizeof_field(struct ipa_init_modem_driver_req,
0382                      modem_mem_info_valid),
0383         .tlv_type   = 0x16,
0384         .offset     = offsetof(struct ipa_init_modem_driver_req,
0385                        modem_mem_info_valid),
0386     },
0387     {
0388         .data_type  = QMI_STRUCT,
0389         .elem_len   = 1,
0390         .elem_size  =
0391             sizeof_field(struct ipa_init_modem_driver_req,
0392                      modem_mem_info),
0393         .tlv_type   = 0x16,
0394         .offset     = offsetof(struct ipa_init_modem_driver_req,
0395                        modem_mem_info),
0396         .ei_array   = ipa_mem_range_ei,
0397     },
0398     {
0399         .data_type  = QMI_OPT_FLAG,
0400         .elem_len   = 1,
0401         .elem_size  =
0402             sizeof_field(struct ipa_init_modem_driver_req,
0403                      ctrl_comm_dest_end_pt_valid),
0404         .tlv_type   = 0x17,
0405         .offset     = offsetof(struct ipa_init_modem_driver_req,
0406                        ctrl_comm_dest_end_pt_valid),
0407     },
0408     {
0409         .data_type  = QMI_UNSIGNED_4_BYTE,
0410         .elem_len   = 1,
0411         .elem_size  =
0412             sizeof_field(struct ipa_init_modem_driver_req,
0413                      ctrl_comm_dest_end_pt),
0414         .tlv_type   = 0x17,
0415         .offset     = offsetof(struct ipa_init_modem_driver_req,
0416                        ctrl_comm_dest_end_pt),
0417     },
0418     {
0419         .data_type  = QMI_OPT_FLAG,
0420         .elem_len   = 1,
0421         .elem_size  =
0422             sizeof_field(struct ipa_init_modem_driver_req,
0423                      skip_uc_load_valid),
0424         .tlv_type   = 0x18,
0425         .offset     = offsetof(struct ipa_init_modem_driver_req,
0426                        skip_uc_load_valid),
0427     },
0428     {
0429         .data_type  = QMI_UNSIGNED_1_BYTE,
0430         .elem_len   = 1,
0431         .elem_size  =
0432             sizeof_field(struct ipa_init_modem_driver_req,
0433                      skip_uc_load),
0434         .tlv_type   = 0x18,
0435         .offset     = offsetof(struct ipa_init_modem_driver_req,
0436                        skip_uc_load),
0437     },
0438     {
0439         .data_type  = QMI_OPT_FLAG,
0440         .elem_len   = 1,
0441         .elem_size  =
0442             sizeof_field(struct ipa_init_modem_driver_req,
0443                      hdr_proc_ctx_tbl_info_valid),
0444         .tlv_type   = 0x19,
0445         .offset     = offsetof(struct ipa_init_modem_driver_req,
0446                        hdr_proc_ctx_tbl_info_valid),
0447     },
0448     {
0449         .data_type  = QMI_STRUCT,
0450         .elem_len   = 1,
0451         .elem_size  =
0452             sizeof_field(struct ipa_init_modem_driver_req,
0453                      hdr_proc_ctx_tbl_info),
0454         .tlv_type   = 0x19,
0455         .offset     = offsetof(struct ipa_init_modem_driver_req,
0456                        hdr_proc_ctx_tbl_info),
0457         .ei_array   = ipa_mem_bounds_ei,
0458     },
0459     {
0460         .data_type  = QMI_OPT_FLAG,
0461         .elem_len   = 1,
0462         .elem_size  =
0463             sizeof_field(struct ipa_init_modem_driver_req,
0464                      zip_tbl_info_valid),
0465         .tlv_type   = 0x1a,
0466         .offset     = offsetof(struct ipa_init_modem_driver_req,
0467                        zip_tbl_info_valid),
0468     },
0469     {
0470         .data_type  = QMI_STRUCT,
0471         .elem_len   = 1,
0472         .elem_size  =
0473             sizeof_field(struct ipa_init_modem_driver_req,
0474                      zip_tbl_info),
0475         .tlv_type   = 0x1a,
0476         .offset     = offsetof(struct ipa_init_modem_driver_req,
0477                        zip_tbl_info),
0478         .ei_array   = ipa_mem_bounds_ei,
0479     },
0480     {
0481         .data_type  = QMI_OPT_FLAG,
0482         .elem_len   = 1,
0483         .elem_size  =
0484             sizeof_field(struct ipa_init_modem_driver_req,
0485                      v4_hash_route_tbl_info_valid),
0486         .tlv_type   = 0x1b,
0487         .offset     = offsetof(struct ipa_init_modem_driver_req,
0488                        v4_hash_route_tbl_info_valid),
0489     },
0490     {
0491         .data_type  = QMI_STRUCT,
0492         .elem_len   = 1,
0493         .elem_size  =
0494             sizeof_field(struct ipa_init_modem_driver_req,
0495                      v4_hash_route_tbl_info),
0496         .tlv_type   = 0x1b,
0497         .offset     = offsetof(struct ipa_init_modem_driver_req,
0498                        v4_hash_route_tbl_info),
0499         .ei_array   = ipa_mem_bounds_ei,
0500     },
0501     {
0502         .data_type  = QMI_OPT_FLAG,
0503         .elem_len   = 1,
0504         .elem_size  =
0505             sizeof_field(struct ipa_init_modem_driver_req,
0506                      v6_hash_route_tbl_info_valid),
0507         .tlv_type   = 0x1c,
0508         .offset     = offsetof(struct ipa_init_modem_driver_req,
0509                        v6_hash_route_tbl_info_valid),
0510     },
0511     {
0512         .data_type  = QMI_STRUCT,
0513         .elem_len   = 1,
0514         .elem_size  =
0515             sizeof_field(struct ipa_init_modem_driver_req,
0516                      v6_hash_route_tbl_info),
0517         .tlv_type   = 0x1c,
0518         .offset     = offsetof(struct ipa_init_modem_driver_req,
0519                        v6_hash_route_tbl_info),
0520         .ei_array   = ipa_mem_bounds_ei,
0521     },
0522     {
0523         .data_type  = QMI_OPT_FLAG,
0524         .elem_len   = 1,
0525         .elem_size  =
0526             sizeof_field(struct ipa_init_modem_driver_req,
0527                      v4_hash_filter_tbl_start_valid),
0528         .tlv_type   = 0x1d,
0529         .offset     = offsetof(struct ipa_init_modem_driver_req,
0530                        v4_hash_filter_tbl_start_valid),
0531     },
0532     {
0533         .data_type  = QMI_UNSIGNED_4_BYTE,
0534         .elem_len   = 1,
0535         .elem_size  =
0536             sizeof_field(struct ipa_init_modem_driver_req,
0537                      v4_hash_filter_tbl_start),
0538         .tlv_type   = 0x1d,
0539         .offset     = offsetof(struct ipa_init_modem_driver_req,
0540                        v4_hash_filter_tbl_start),
0541     },
0542     {
0543         .data_type  = QMI_OPT_FLAG,
0544         .elem_len   = 1,
0545         .elem_size  =
0546             sizeof_field(struct ipa_init_modem_driver_req,
0547                      v6_hash_filter_tbl_start_valid),
0548         .tlv_type   = 0x1e,
0549         .offset     = offsetof(struct ipa_init_modem_driver_req,
0550                        v6_hash_filter_tbl_start_valid),
0551     },
0552     {
0553         .data_type  = QMI_UNSIGNED_4_BYTE,
0554         .elem_len   = 1,
0555         .elem_size  =
0556             sizeof_field(struct ipa_init_modem_driver_req,
0557                      v6_hash_filter_tbl_start),
0558         .tlv_type   = 0x1e,
0559         .offset     = offsetof(struct ipa_init_modem_driver_req,
0560                        v6_hash_filter_tbl_start),
0561     },
0562     {
0563         .data_type  = QMI_OPT_FLAG,
0564         .elem_len   = 1,
0565         .elem_size  =
0566             sizeof_field(struct ipa_init_modem_driver_req,
0567                      hw_stats_quota_base_addr_valid),
0568         .tlv_type   = 0x1f,
0569         .offset     = offsetof(struct ipa_init_modem_driver_req,
0570                        hw_stats_quota_base_addr_valid),
0571     },
0572     {
0573         .data_type  = QMI_UNSIGNED_4_BYTE,
0574         .elem_len   = 1,
0575         .elem_size  =
0576             sizeof_field(struct ipa_init_modem_driver_req,
0577                      hw_stats_quota_base_addr),
0578         .tlv_type   = 0x1f,
0579         .offset     = offsetof(struct ipa_init_modem_driver_req,
0580                        hw_stats_quota_base_addr),
0581     },
0582     {
0583         .data_type  = QMI_OPT_FLAG,
0584         .elem_len   = 1,
0585         .elem_size  =
0586             sizeof_field(struct ipa_init_modem_driver_req,
0587                      hw_stats_quota_size_valid),
0588         .tlv_type   = 0x20,
0589         .offset     = offsetof(struct ipa_init_modem_driver_req,
0590                        hw_stats_quota_size_valid),
0591     },
0592     {
0593         .data_type  = QMI_UNSIGNED_4_BYTE,
0594         .elem_len   = 1,
0595         .elem_size  =
0596             sizeof_field(struct ipa_init_modem_driver_req,
0597                      hw_stats_quota_size),
0598         .tlv_type   = 0x20,
0599         .offset     = offsetof(struct ipa_init_modem_driver_req,
0600                        hw_stats_quota_size),
0601     },
0602     {
0603         .data_type  = QMI_OPT_FLAG,
0604         .elem_len   = 1,
0605         .elem_size  =
0606             sizeof_field(struct ipa_init_modem_driver_req,
0607                      hw_stats_drop_base_addr_valid),
0608         .tlv_type   = 0x21,
0609         .offset     = offsetof(struct ipa_init_modem_driver_req,
0610                        hw_stats_drop_base_addr_valid),
0611     },
0612     {
0613         .data_type  = QMI_UNSIGNED_4_BYTE,
0614         .elem_len   = 1,
0615         .elem_size  =
0616             sizeof_field(struct ipa_init_modem_driver_req,
0617                      hw_stats_drop_base_addr),
0618         .tlv_type   = 0x21,
0619         .offset     = offsetof(struct ipa_init_modem_driver_req,
0620                        hw_stats_drop_base_addr),
0621     },
0622     {
0623         .data_type  = QMI_OPT_FLAG,
0624         .elem_len   = 1,
0625         .elem_size  =
0626             sizeof_field(struct ipa_init_modem_driver_req,
0627                      hw_stats_drop_size_valid),
0628         .tlv_type   = 0x22,
0629         .offset     = offsetof(struct ipa_init_modem_driver_req,
0630                        hw_stats_drop_size_valid),
0631     },
0632     {
0633         .data_type  = QMI_UNSIGNED_4_BYTE,
0634         .elem_len   = 1,
0635         .elem_size  =
0636             sizeof_field(struct ipa_init_modem_driver_req,
0637                      hw_stats_drop_size),
0638         .tlv_type   = 0x22,
0639         .offset     = offsetof(struct ipa_init_modem_driver_req,
0640                        hw_stats_drop_size),
0641     },
0642     {
0643         .data_type  = QMI_EOTI,
0644     },
0645 };
0646 
0647 /* QMI message structure definition for struct ipa_init_modem_driver_rsp */
0648 struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = {
0649     {
0650         .data_type  = QMI_STRUCT,
0651         .elem_len   = 1,
0652         .elem_size  =
0653             sizeof_field(struct ipa_init_modem_driver_rsp,
0654                      rsp),
0655         .tlv_type   = 0x02,
0656         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0657                        rsp),
0658         .ei_array   = qmi_response_type_v01_ei,
0659     },
0660     {
0661         .data_type  = QMI_OPT_FLAG,
0662         .elem_len   = 1,
0663         .elem_size  =
0664             sizeof_field(struct ipa_init_modem_driver_rsp,
0665                      ctrl_comm_dest_end_pt_valid),
0666         .tlv_type   = 0x10,
0667         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0668                        ctrl_comm_dest_end_pt_valid),
0669     },
0670     {
0671         .data_type  = QMI_UNSIGNED_4_BYTE,
0672         .elem_len   = 1,
0673         .elem_size  =
0674             sizeof_field(struct ipa_init_modem_driver_rsp,
0675                      ctrl_comm_dest_end_pt),
0676         .tlv_type   = 0x10,
0677         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0678                        ctrl_comm_dest_end_pt),
0679     },
0680     {
0681         .data_type  = QMI_OPT_FLAG,
0682         .elem_len   = 1,
0683         .elem_size  =
0684             sizeof_field(struct ipa_init_modem_driver_rsp,
0685                      default_end_pt_valid),
0686         .tlv_type   = 0x11,
0687         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0688                        default_end_pt_valid),
0689     },
0690     {
0691         .data_type  = QMI_UNSIGNED_4_BYTE,
0692         .elem_len   = 1,
0693         .elem_size  =
0694             sizeof_field(struct ipa_init_modem_driver_rsp,
0695                      default_end_pt),
0696         .tlv_type   = 0x11,
0697         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0698                        default_end_pt),
0699     },
0700     {
0701         .data_type  = QMI_OPT_FLAG,
0702         .elem_len   = 1,
0703         .elem_size  =
0704             sizeof_field(struct ipa_init_modem_driver_rsp,
0705                      modem_driver_init_pending_valid),
0706         .tlv_type   = 0x12,
0707         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0708                        modem_driver_init_pending_valid),
0709     },
0710     {
0711         .data_type  = QMI_UNSIGNED_1_BYTE,
0712         .elem_len   = 1,
0713         .elem_size  =
0714             sizeof_field(struct ipa_init_modem_driver_rsp,
0715                      modem_driver_init_pending),
0716         .tlv_type   = 0x12,
0717         .offset     = offsetof(struct ipa_init_modem_driver_rsp,
0718                        modem_driver_init_pending),
0719     },
0720     {
0721         .data_type  = QMI_EOTI,
0722     },
0723 };