1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun /* Copyright (c) 2018, The Linux Foundation. All rights reserved. 4*4882a593Smuzhiyun * Copyright (C) 2018-2020 Linaro Ltd. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun #include <linux/stddef.h> 7*4882a593Smuzhiyun #include <linux/soc/qcom/qmi.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include "ipa_qmi_msg.h" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_indication_register_req */ 12*4882a593Smuzhiyun struct qmi_elem_info ipa_indication_register_req_ei[] = { 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 15*4882a593Smuzhiyun .elem_len = 1, 16*4882a593Smuzhiyun .elem_size = 17*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 18*4882a593Smuzhiyun master_driver_init_complete_valid), 19*4882a593Smuzhiyun .tlv_type = 0x10, 20*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 21*4882a593Smuzhiyun master_driver_init_complete_valid), 22*4882a593Smuzhiyun }, 23*4882a593Smuzhiyun { 24*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 25*4882a593Smuzhiyun .elem_len = 1, 26*4882a593Smuzhiyun .elem_size = 27*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 28*4882a593Smuzhiyun master_driver_init_complete), 29*4882a593Smuzhiyun .tlv_type = 0x10, 30*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 31*4882a593Smuzhiyun master_driver_init_complete), 32*4882a593Smuzhiyun }, 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 35*4882a593Smuzhiyun .elem_len = 1, 36*4882a593Smuzhiyun .elem_size = 37*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 38*4882a593Smuzhiyun data_usage_quota_reached_valid), 39*4882a593Smuzhiyun .tlv_type = 0x11, 40*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 41*4882a593Smuzhiyun data_usage_quota_reached_valid), 42*4882a593Smuzhiyun }, 43*4882a593Smuzhiyun { 44*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 45*4882a593Smuzhiyun .elem_len = 1, 46*4882a593Smuzhiyun .elem_size = 47*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 48*4882a593Smuzhiyun data_usage_quota_reached), 49*4882a593Smuzhiyun .tlv_type = 0x11, 50*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 51*4882a593Smuzhiyun data_usage_quota_reached), 52*4882a593Smuzhiyun }, 53*4882a593Smuzhiyun { 54*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 55*4882a593Smuzhiyun .elem_len = 1, 56*4882a593Smuzhiyun .elem_size = 57*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 58*4882a593Smuzhiyun ipa_mhi_ready_ind_valid), 59*4882a593Smuzhiyun .tlv_type = 0x11, 60*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 61*4882a593Smuzhiyun ipa_mhi_ready_ind_valid), 62*4882a593Smuzhiyun }, 63*4882a593Smuzhiyun { 64*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 65*4882a593Smuzhiyun .elem_len = 1, 66*4882a593Smuzhiyun .elem_size = 67*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_req, 68*4882a593Smuzhiyun ipa_mhi_ready_ind), 69*4882a593Smuzhiyun .tlv_type = 0x11, 70*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_req, 71*4882a593Smuzhiyun ipa_mhi_ready_ind), 72*4882a593Smuzhiyun }, 73*4882a593Smuzhiyun { 74*4882a593Smuzhiyun .data_type = QMI_EOTI, 75*4882a593Smuzhiyun }, 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_indication_register_rsp */ 79*4882a593Smuzhiyun struct qmi_elem_info ipa_indication_register_rsp_ei[] = { 80*4882a593Smuzhiyun { 81*4882a593Smuzhiyun .data_type = QMI_STRUCT, 82*4882a593Smuzhiyun .elem_len = 1, 83*4882a593Smuzhiyun .elem_size = 84*4882a593Smuzhiyun sizeof_field(struct ipa_indication_register_rsp, 85*4882a593Smuzhiyun rsp), 86*4882a593Smuzhiyun .tlv_type = 0x02, 87*4882a593Smuzhiyun .offset = offsetof(struct ipa_indication_register_rsp, 88*4882a593Smuzhiyun rsp), 89*4882a593Smuzhiyun .ei_array = qmi_response_type_v01_ei, 90*4882a593Smuzhiyun }, 91*4882a593Smuzhiyun { 92*4882a593Smuzhiyun .data_type = QMI_EOTI, 93*4882a593Smuzhiyun }, 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_driver_init_complete_req */ 97*4882a593Smuzhiyun struct qmi_elem_info ipa_driver_init_complete_req_ei[] = { 98*4882a593Smuzhiyun { 99*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 100*4882a593Smuzhiyun .elem_len = 1, 101*4882a593Smuzhiyun .elem_size = 102*4882a593Smuzhiyun sizeof_field(struct ipa_driver_init_complete_req, 103*4882a593Smuzhiyun status), 104*4882a593Smuzhiyun .tlv_type = 0x01, 105*4882a593Smuzhiyun .offset = offsetof(struct ipa_driver_init_complete_req, 106*4882a593Smuzhiyun status), 107*4882a593Smuzhiyun }, 108*4882a593Smuzhiyun { 109*4882a593Smuzhiyun .data_type = QMI_EOTI, 110*4882a593Smuzhiyun }, 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_driver_init_complete_rsp */ 114*4882a593Smuzhiyun struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = { 115*4882a593Smuzhiyun { 116*4882a593Smuzhiyun .data_type = QMI_STRUCT, 117*4882a593Smuzhiyun .elem_len = 1, 118*4882a593Smuzhiyun .elem_size = 119*4882a593Smuzhiyun sizeof_field(struct ipa_driver_init_complete_rsp, 120*4882a593Smuzhiyun rsp), 121*4882a593Smuzhiyun .tlv_type = 0x02, 122*4882a593Smuzhiyun .offset = offsetof(struct ipa_driver_init_complete_rsp, 123*4882a593Smuzhiyun rsp), 124*4882a593Smuzhiyun .ei_array = qmi_response_type_v01_ei, 125*4882a593Smuzhiyun }, 126*4882a593Smuzhiyun { 127*4882a593Smuzhiyun .data_type = QMI_EOTI, 128*4882a593Smuzhiyun }, 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_init_complete_ind */ 132*4882a593Smuzhiyun struct qmi_elem_info ipa_init_complete_ind_ei[] = { 133*4882a593Smuzhiyun { 134*4882a593Smuzhiyun .data_type = QMI_STRUCT, 135*4882a593Smuzhiyun .elem_len = 1, 136*4882a593Smuzhiyun .elem_size = 137*4882a593Smuzhiyun sizeof_field(struct ipa_init_complete_ind, 138*4882a593Smuzhiyun status), 139*4882a593Smuzhiyun .tlv_type = 0x02, 140*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_complete_ind, 141*4882a593Smuzhiyun status), 142*4882a593Smuzhiyun .ei_array = qmi_response_type_v01_ei, 143*4882a593Smuzhiyun }, 144*4882a593Smuzhiyun { 145*4882a593Smuzhiyun .data_type = QMI_EOTI, 146*4882a593Smuzhiyun }, 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_mem_bounds */ 150*4882a593Smuzhiyun struct qmi_elem_info ipa_mem_bounds_ei[] = { 151*4882a593Smuzhiyun { 152*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 153*4882a593Smuzhiyun .elem_len = 1, 154*4882a593Smuzhiyun .elem_size = 155*4882a593Smuzhiyun sizeof_field(struct ipa_mem_bounds, start), 156*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_bounds, start), 157*4882a593Smuzhiyun }, 158*4882a593Smuzhiyun { 159*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 160*4882a593Smuzhiyun .elem_len = 1, 161*4882a593Smuzhiyun .elem_size = 162*4882a593Smuzhiyun sizeof_field(struct ipa_mem_bounds, end), 163*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_bounds, end), 164*4882a593Smuzhiyun }, 165*4882a593Smuzhiyun { 166*4882a593Smuzhiyun .data_type = QMI_EOTI, 167*4882a593Smuzhiyun }, 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_mem_array */ 171*4882a593Smuzhiyun struct qmi_elem_info ipa_mem_array_ei[] = { 172*4882a593Smuzhiyun { 173*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 174*4882a593Smuzhiyun .elem_len = 1, 175*4882a593Smuzhiyun .elem_size = 176*4882a593Smuzhiyun sizeof_field(struct ipa_mem_array, start), 177*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_array, start), 178*4882a593Smuzhiyun }, 179*4882a593Smuzhiyun { 180*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 181*4882a593Smuzhiyun .elem_len = 1, 182*4882a593Smuzhiyun .elem_size = 183*4882a593Smuzhiyun sizeof_field(struct ipa_mem_array, count), 184*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_array, count), 185*4882a593Smuzhiyun }, 186*4882a593Smuzhiyun { 187*4882a593Smuzhiyun .data_type = QMI_EOTI, 188*4882a593Smuzhiyun }, 189*4882a593Smuzhiyun }; 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_mem_range */ 192*4882a593Smuzhiyun struct qmi_elem_info ipa_mem_range_ei[] = { 193*4882a593Smuzhiyun { 194*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 195*4882a593Smuzhiyun .elem_len = 1, 196*4882a593Smuzhiyun .elem_size = 197*4882a593Smuzhiyun sizeof_field(struct ipa_mem_range, start), 198*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_range, start), 199*4882a593Smuzhiyun }, 200*4882a593Smuzhiyun { 201*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 202*4882a593Smuzhiyun .elem_len = 1, 203*4882a593Smuzhiyun .elem_size = 204*4882a593Smuzhiyun sizeof_field(struct ipa_mem_range, size), 205*4882a593Smuzhiyun .offset = offsetof(struct ipa_mem_range, size), 206*4882a593Smuzhiyun }, 207*4882a593Smuzhiyun { 208*4882a593Smuzhiyun .data_type = QMI_EOTI, 209*4882a593Smuzhiyun }, 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_init_modem_driver_req */ 213*4882a593Smuzhiyun struct qmi_elem_info ipa_init_modem_driver_req_ei[] = { 214*4882a593Smuzhiyun { 215*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 216*4882a593Smuzhiyun .elem_len = 1, 217*4882a593Smuzhiyun .elem_size = 218*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 219*4882a593Smuzhiyun platform_type_valid), 220*4882a593Smuzhiyun .tlv_type = 0x10, 221*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 222*4882a593Smuzhiyun platform_type_valid), 223*4882a593Smuzhiyun }, 224*4882a593Smuzhiyun { 225*4882a593Smuzhiyun .data_type = QMI_SIGNED_4_BYTE_ENUM, 226*4882a593Smuzhiyun .elem_len = 1, 227*4882a593Smuzhiyun .elem_size = 228*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 229*4882a593Smuzhiyun platform_type), 230*4882a593Smuzhiyun .tlv_type = 0x10, 231*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 232*4882a593Smuzhiyun platform_type), 233*4882a593Smuzhiyun }, 234*4882a593Smuzhiyun { 235*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 236*4882a593Smuzhiyun .elem_len = 1, 237*4882a593Smuzhiyun .elem_size = 238*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 239*4882a593Smuzhiyun hdr_tbl_info_valid), 240*4882a593Smuzhiyun .tlv_type = 0x11, 241*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 242*4882a593Smuzhiyun hdr_tbl_info_valid), 243*4882a593Smuzhiyun }, 244*4882a593Smuzhiyun { 245*4882a593Smuzhiyun .data_type = QMI_STRUCT, 246*4882a593Smuzhiyun .elem_len = 1, 247*4882a593Smuzhiyun .elem_size = 248*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 249*4882a593Smuzhiyun hdr_tbl_info), 250*4882a593Smuzhiyun .tlv_type = 0x11, 251*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 252*4882a593Smuzhiyun hdr_tbl_info), 253*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 254*4882a593Smuzhiyun }, 255*4882a593Smuzhiyun { 256*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 257*4882a593Smuzhiyun .elem_len = 1, 258*4882a593Smuzhiyun .elem_size = 259*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 260*4882a593Smuzhiyun v4_route_tbl_info_valid), 261*4882a593Smuzhiyun .tlv_type = 0x12, 262*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 263*4882a593Smuzhiyun v4_route_tbl_info_valid), 264*4882a593Smuzhiyun }, 265*4882a593Smuzhiyun { 266*4882a593Smuzhiyun .data_type = QMI_STRUCT, 267*4882a593Smuzhiyun .elem_len = 1, 268*4882a593Smuzhiyun .elem_size = 269*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 270*4882a593Smuzhiyun v4_route_tbl_info), 271*4882a593Smuzhiyun .tlv_type = 0x12, 272*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 273*4882a593Smuzhiyun v4_route_tbl_info), 274*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 275*4882a593Smuzhiyun }, 276*4882a593Smuzhiyun { 277*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 278*4882a593Smuzhiyun .elem_len = 1, 279*4882a593Smuzhiyun .elem_size = 280*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 281*4882a593Smuzhiyun v6_route_tbl_info_valid), 282*4882a593Smuzhiyun .tlv_type = 0x13, 283*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 284*4882a593Smuzhiyun v6_route_tbl_info_valid), 285*4882a593Smuzhiyun }, 286*4882a593Smuzhiyun { 287*4882a593Smuzhiyun .data_type = QMI_STRUCT, 288*4882a593Smuzhiyun .elem_len = 1, 289*4882a593Smuzhiyun .elem_size = 290*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 291*4882a593Smuzhiyun v6_route_tbl_info), 292*4882a593Smuzhiyun .tlv_type = 0x13, 293*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 294*4882a593Smuzhiyun v6_route_tbl_info), 295*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 296*4882a593Smuzhiyun }, 297*4882a593Smuzhiyun { 298*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 299*4882a593Smuzhiyun .elem_len = 1, 300*4882a593Smuzhiyun .elem_size = 301*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 302*4882a593Smuzhiyun v4_filter_tbl_start_valid), 303*4882a593Smuzhiyun .tlv_type = 0x14, 304*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 305*4882a593Smuzhiyun v4_filter_tbl_start_valid), 306*4882a593Smuzhiyun }, 307*4882a593Smuzhiyun { 308*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 309*4882a593Smuzhiyun .elem_len = 1, 310*4882a593Smuzhiyun .elem_size = 311*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 312*4882a593Smuzhiyun v4_filter_tbl_start), 313*4882a593Smuzhiyun .tlv_type = 0x14, 314*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 315*4882a593Smuzhiyun v4_filter_tbl_start), 316*4882a593Smuzhiyun }, 317*4882a593Smuzhiyun { 318*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 319*4882a593Smuzhiyun .elem_len = 1, 320*4882a593Smuzhiyun .elem_size = 321*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 322*4882a593Smuzhiyun v6_filter_tbl_start_valid), 323*4882a593Smuzhiyun .tlv_type = 0x15, 324*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 325*4882a593Smuzhiyun v6_filter_tbl_start_valid), 326*4882a593Smuzhiyun }, 327*4882a593Smuzhiyun { 328*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 329*4882a593Smuzhiyun .elem_len = 1, 330*4882a593Smuzhiyun .elem_size = 331*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 332*4882a593Smuzhiyun v6_filter_tbl_start), 333*4882a593Smuzhiyun .tlv_type = 0x15, 334*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 335*4882a593Smuzhiyun v6_filter_tbl_start), 336*4882a593Smuzhiyun }, 337*4882a593Smuzhiyun { 338*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 339*4882a593Smuzhiyun .elem_len = 1, 340*4882a593Smuzhiyun .elem_size = 341*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 342*4882a593Smuzhiyun modem_mem_info_valid), 343*4882a593Smuzhiyun .tlv_type = 0x16, 344*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 345*4882a593Smuzhiyun modem_mem_info_valid), 346*4882a593Smuzhiyun }, 347*4882a593Smuzhiyun { 348*4882a593Smuzhiyun .data_type = QMI_STRUCT, 349*4882a593Smuzhiyun .elem_len = 1, 350*4882a593Smuzhiyun .elem_size = 351*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 352*4882a593Smuzhiyun modem_mem_info), 353*4882a593Smuzhiyun .tlv_type = 0x16, 354*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 355*4882a593Smuzhiyun modem_mem_info), 356*4882a593Smuzhiyun .ei_array = ipa_mem_range_ei, 357*4882a593Smuzhiyun }, 358*4882a593Smuzhiyun { 359*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 360*4882a593Smuzhiyun .elem_len = 1, 361*4882a593Smuzhiyun .elem_size = 362*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 363*4882a593Smuzhiyun ctrl_comm_dest_end_pt_valid), 364*4882a593Smuzhiyun .tlv_type = 0x17, 365*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 366*4882a593Smuzhiyun ctrl_comm_dest_end_pt_valid), 367*4882a593Smuzhiyun }, 368*4882a593Smuzhiyun { 369*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 370*4882a593Smuzhiyun .elem_len = 1, 371*4882a593Smuzhiyun .elem_size = 372*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 373*4882a593Smuzhiyun ctrl_comm_dest_end_pt), 374*4882a593Smuzhiyun .tlv_type = 0x17, 375*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 376*4882a593Smuzhiyun ctrl_comm_dest_end_pt), 377*4882a593Smuzhiyun }, 378*4882a593Smuzhiyun { 379*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 380*4882a593Smuzhiyun .elem_len = 1, 381*4882a593Smuzhiyun .elem_size = 382*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 383*4882a593Smuzhiyun skip_uc_load_valid), 384*4882a593Smuzhiyun .tlv_type = 0x18, 385*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 386*4882a593Smuzhiyun skip_uc_load_valid), 387*4882a593Smuzhiyun }, 388*4882a593Smuzhiyun { 389*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 390*4882a593Smuzhiyun .elem_len = 1, 391*4882a593Smuzhiyun .elem_size = 392*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 393*4882a593Smuzhiyun skip_uc_load), 394*4882a593Smuzhiyun .tlv_type = 0x18, 395*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 396*4882a593Smuzhiyun skip_uc_load), 397*4882a593Smuzhiyun }, 398*4882a593Smuzhiyun { 399*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 400*4882a593Smuzhiyun .elem_len = 1, 401*4882a593Smuzhiyun .elem_size = 402*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 403*4882a593Smuzhiyun hdr_proc_ctx_tbl_info_valid), 404*4882a593Smuzhiyun .tlv_type = 0x19, 405*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 406*4882a593Smuzhiyun hdr_proc_ctx_tbl_info_valid), 407*4882a593Smuzhiyun }, 408*4882a593Smuzhiyun { 409*4882a593Smuzhiyun .data_type = QMI_STRUCT, 410*4882a593Smuzhiyun .elem_len = 1, 411*4882a593Smuzhiyun .elem_size = 412*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 413*4882a593Smuzhiyun hdr_proc_ctx_tbl_info), 414*4882a593Smuzhiyun .tlv_type = 0x19, 415*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 416*4882a593Smuzhiyun hdr_proc_ctx_tbl_info), 417*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 418*4882a593Smuzhiyun }, 419*4882a593Smuzhiyun { 420*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 421*4882a593Smuzhiyun .elem_len = 1, 422*4882a593Smuzhiyun .elem_size = 423*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 424*4882a593Smuzhiyun zip_tbl_info_valid), 425*4882a593Smuzhiyun .tlv_type = 0x1a, 426*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 427*4882a593Smuzhiyun zip_tbl_info_valid), 428*4882a593Smuzhiyun }, 429*4882a593Smuzhiyun { 430*4882a593Smuzhiyun .data_type = QMI_STRUCT, 431*4882a593Smuzhiyun .elem_len = 1, 432*4882a593Smuzhiyun .elem_size = 433*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 434*4882a593Smuzhiyun zip_tbl_info), 435*4882a593Smuzhiyun .tlv_type = 0x1a, 436*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 437*4882a593Smuzhiyun zip_tbl_info), 438*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 439*4882a593Smuzhiyun }, 440*4882a593Smuzhiyun { 441*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 442*4882a593Smuzhiyun .elem_len = 1, 443*4882a593Smuzhiyun .elem_size = 444*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 445*4882a593Smuzhiyun v4_hash_route_tbl_info_valid), 446*4882a593Smuzhiyun .tlv_type = 0x1b, 447*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 448*4882a593Smuzhiyun v4_hash_route_tbl_info_valid), 449*4882a593Smuzhiyun }, 450*4882a593Smuzhiyun { 451*4882a593Smuzhiyun .data_type = QMI_STRUCT, 452*4882a593Smuzhiyun .elem_len = 1, 453*4882a593Smuzhiyun .elem_size = 454*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 455*4882a593Smuzhiyun v4_hash_route_tbl_info), 456*4882a593Smuzhiyun .tlv_type = 0x1b, 457*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 458*4882a593Smuzhiyun v4_hash_route_tbl_info), 459*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 460*4882a593Smuzhiyun }, 461*4882a593Smuzhiyun { 462*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 463*4882a593Smuzhiyun .elem_len = 1, 464*4882a593Smuzhiyun .elem_size = 465*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 466*4882a593Smuzhiyun v6_hash_route_tbl_info_valid), 467*4882a593Smuzhiyun .tlv_type = 0x1c, 468*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 469*4882a593Smuzhiyun v6_hash_route_tbl_info_valid), 470*4882a593Smuzhiyun }, 471*4882a593Smuzhiyun { 472*4882a593Smuzhiyun .data_type = QMI_STRUCT, 473*4882a593Smuzhiyun .elem_len = 1, 474*4882a593Smuzhiyun .elem_size = 475*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 476*4882a593Smuzhiyun v6_hash_route_tbl_info), 477*4882a593Smuzhiyun .tlv_type = 0x1c, 478*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 479*4882a593Smuzhiyun v6_hash_route_tbl_info), 480*4882a593Smuzhiyun .ei_array = ipa_mem_bounds_ei, 481*4882a593Smuzhiyun }, 482*4882a593Smuzhiyun { 483*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 484*4882a593Smuzhiyun .elem_len = 1, 485*4882a593Smuzhiyun .elem_size = 486*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 487*4882a593Smuzhiyun v4_hash_filter_tbl_start_valid), 488*4882a593Smuzhiyun .tlv_type = 0x1d, 489*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 490*4882a593Smuzhiyun v4_hash_filter_tbl_start_valid), 491*4882a593Smuzhiyun }, 492*4882a593Smuzhiyun { 493*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 494*4882a593Smuzhiyun .elem_len = 1, 495*4882a593Smuzhiyun .elem_size = 496*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 497*4882a593Smuzhiyun v4_hash_filter_tbl_start), 498*4882a593Smuzhiyun .tlv_type = 0x1d, 499*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 500*4882a593Smuzhiyun v4_hash_filter_tbl_start), 501*4882a593Smuzhiyun }, 502*4882a593Smuzhiyun { 503*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 504*4882a593Smuzhiyun .elem_len = 1, 505*4882a593Smuzhiyun .elem_size = 506*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 507*4882a593Smuzhiyun v6_hash_filter_tbl_start_valid), 508*4882a593Smuzhiyun .tlv_type = 0x1e, 509*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 510*4882a593Smuzhiyun v6_hash_filter_tbl_start_valid), 511*4882a593Smuzhiyun }, 512*4882a593Smuzhiyun { 513*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 514*4882a593Smuzhiyun .elem_len = 1, 515*4882a593Smuzhiyun .elem_size = 516*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 517*4882a593Smuzhiyun v6_hash_filter_tbl_start), 518*4882a593Smuzhiyun .tlv_type = 0x1e, 519*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 520*4882a593Smuzhiyun v6_hash_filter_tbl_start), 521*4882a593Smuzhiyun }, 522*4882a593Smuzhiyun { 523*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 524*4882a593Smuzhiyun .elem_len = 1, 525*4882a593Smuzhiyun .elem_size = 526*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 527*4882a593Smuzhiyun hw_stats_quota_base_addr_valid), 528*4882a593Smuzhiyun .tlv_type = 0x1f, 529*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 530*4882a593Smuzhiyun hw_stats_quota_base_addr_valid), 531*4882a593Smuzhiyun }, 532*4882a593Smuzhiyun { 533*4882a593Smuzhiyun .data_type = QMI_SIGNED_4_BYTE_ENUM, 534*4882a593Smuzhiyun .elem_len = 1, 535*4882a593Smuzhiyun .elem_size = 536*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 537*4882a593Smuzhiyun hw_stats_quota_base_addr), 538*4882a593Smuzhiyun .tlv_type = 0x1f, 539*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 540*4882a593Smuzhiyun hw_stats_quota_base_addr), 541*4882a593Smuzhiyun }, 542*4882a593Smuzhiyun { 543*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 544*4882a593Smuzhiyun .elem_len = 1, 545*4882a593Smuzhiyun .elem_size = 546*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 547*4882a593Smuzhiyun hw_stats_quota_size_valid), 548*4882a593Smuzhiyun .tlv_type = 0x1f, 549*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 550*4882a593Smuzhiyun hw_stats_quota_size_valid), 551*4882a593Smuzhiyun }, 552*4882a593Smuzhiyun { 553*4882a593Smuzhiyun .data_type = QMI_SIGNED_4_BYTE_ENUM, 554*4882a593Smuzhiyun .elem_len = 1, 555*4882a593Smuzhiyun .elem_size = 556*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 557*4882a593Smuzhiyun hw_stats_quota_size), 558*4882a593Smuzhiyun .tlv_type = 0x1f, 559*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 560*4882a593Smuzhiyun hw_stats_quota_size), 561*4882a593Smuzhiyun }, 562*4882a593Smuzhiyun { 563*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 564*4882a593Smuzhiyun .elem_len = 1, 565*4882a593Smuzhiyun .elem_size = 566*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 567*4882a593Smuzhiyun hw_stats_drop_size_valid), 568*4882a593Smuzhiyun .tlv_type = 0x1f, 569*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 570*4882a593Smuzhiyun hw_stats_drop_size_valid), 571*4882a593Smuzhiyun }, 572*4882a593Smuzhiyun { 573*4882a593Smuzhiyun .data_type = QMI_SIGNED_4_BYTE_ENUM, 574*4882a593Smuzhiyun .elem_len = 1, 575*4882a593Smuzhiyun .elem_size = 576*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_req, 577*4882a593Smuzhiyun hw_stats_drop_size), 578*4882a593Smuzhiyun .tlv_type = 0x1f, 579*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_req, 580*4882a593Smuzhiyun hw_stats_drop_size), 581*4882a593Smuzhiyun }, 582*4882a593Smuzhiyun { 583*4882a593Smuzhiyun .data_type = QMI_EOTI, 584*4882a593Smuzhiyun }, 585*4882a593Smuzhiyun }; 586*4882a593Smuzhiyun 587*4882a593Smuzhiyun /* QMI message structure definition for struct ipa_init_modem_driver_rsp */ 588*4882a593Smuzhiyun struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = { 589*4882a593Smuzhiyun { 590*4882a593Smuzhiyun .data_type = QMI_STRUCT, 591*4882a593Smuzhiyun .elem_len = 1, 592*4882a593Smuzhiyun .elem_size = 593*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 594*4882a593Smuzhiyun rsp), 595*4882a593Smuzhiyun .tlv_type = 0x02, 596*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 597*4882a593Smuzhiyun rsp), 598*4882a593Smuzhiyun .ei_array = qmi_response_type_v01_ei, 599*4882a593Smuzhiyun }, 600*4882a593Smuzhiyun { 601*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 602*4882a593Smuzhiyun .elem_len = 1, 603*4882a593Smuzhiyun .elem_size = 604*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 605*4882a593Smuzhiyun ctrl_comm_dest_end_pt_valid), 606*4882a593Smuzhiyun .tlv_type = 0x10, 607*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 608*4882a593Smuzhiyun ctrl_comm_dest_end_pt_valid), 609*4882a593Smuzhiyun }, 610*4882a593Smuzhiyun { 611*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 612*4882a593Smuzhiyun .elem_len = 1, 613*4882a593Smuzhiyun .elem_size = 614*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 615*4882a593Smuzhiyun ctrl_comm_dest_end_pt), 616*4882a593Smuzhiyun .tlv_type = 0x10, 617*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 618*4882a593Smuzhiyun ctrl_comm_dest_end_pt), 619*4882a593Smuzhiyun }, 620*4882a593Smuzhiyun { 621*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 622*4882a593Smuzhiyun .elem_len = 1, 623*4882a593Smuzhiyun .elem_size = 624*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 625*4882a593Smuzhiyun default_end_pt_valid), 626*4882a593Smuzhiyun .tlv_type = 0x11, 627*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 628*4882a593Smuzhiyun default_end_pt_valid), 629*4882a593Smuzhiyun }, 630*4882a593Smuzhiyun { 631*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_4_BYTE, 632*4882a593Smuzhiyun .elem_len = 1, 633*4882a593Smuzhiyun .elem_size = 634*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 635*4882a593Smuzhiyun default_end_pt), 636*4882a593Smuzhiyun .tlv_type = 0x11, 637*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 638*4882a593Smuzhiyun default_end_pt), 639*4882a593Smuzhiyun }, 640*4882a593Smuzhiyun { 641*4882a593Smuzhiyun .data_type = QMI_OPT_FLAG, 642*4882a593Smuzhiyun .elem_len = 1, 643*4882a593Smuzhiyun .elem_size = 644*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 645*4882a593Smuzhiyun modem_driver_init_pending_valid), 646*4882a593Smuzhiyun .tlv_type = 0x12, 647*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 648*4882a593Smuzhiyun modem_driver_init_pending_valid), 649*4882a593Smuzhiyun }, 650*4882a593Smuzhiyun { 651*4882a593Smuzhiyun .data_type = QMI_UNSIGNED_1_BYTE, 652*4882a593Smuzhiyun .elem_len = 1, 653*4882a593Smuzhiyun .elem_size = 654*4882a593Smuzhiyun sizeof_field(struct ipa_init_modem_driver_rsp, 655*4882a593Smuzhiyun modem_driver_init_pending), 656*4882a593Smuzhiyun .tlv_type = 0x12, 657*4882a593Smuzhiyun .offset = offsetof(struct ipa_init_modem_driver_rsp, 658*4882a593Smuzhiyun modem_driver_init_pending), 659*4882a593Smuzhiyun }, 660*4882a593Smuzhiyun { 661*4882a593Smuzhiyun .data_type = QMI_EOTI, 662*4882a593Smuzhiyun }, 663*4882a593Smuzhiyun }; 664