1530f9216SAlex Elder // SPDX-License-Identifier: GPL-2.0 2530f9216SAlex Elder 3530f9216SAlex Elder /* Copyright (c) 2018, The Linux Foundation. All rights reserved. 4a4388da5SAlex Elder * Copyright (C) 2018-2022 Linaro Ltd. 5530f9216SAlex Elder */ 6530f9216SAlex Elder #include <linux/stddef.h> 7530f9216SAlex Elder #include <linux/soc/qcom/qmi.h> 8530f9216SAlex Elder 9530f9216SAlex Elder #include "ipa_qmi_msg.h" 10530f9216SAlex Elder 11530f9216SAlex Elder /* QMI message structure definition for struct ipa_indication_register_req */ 12*c0facc04SJeff Johnson const struct qmi_elem_info ipa_indication_register_req_ei[] = { 13530f9216SAlex Elder { 14530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 15530f9216SAlex Elder .elem_len = 1, 16530f9216SAlex Elder .elem_size = 17530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 18530f9216SAlex Elder master_driver_init_complete_valid), 19530f9216SAlex Elder .tlv_type = 0x10, 20530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 21530f9216SAlex Elder master_driver_init_complete_valid), 22530f9216SAlex Elder }, 23530f9216SAlex Elder { 24530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 25530f9216SAlex Elder .elem_len = 1, 26530f9216SAlex Elder .elem_size = 27530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 28530f9216SAlex Elder master_driver_init_complete), 29530f9216SAlex Elder .tlv_type = 0x10, 30530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 31530f9216SAlex Elder master_driver_init_complete), 32530f9216SAlex Elder }, 33530f9216SAlex Elder { 34530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 35530f9216SAlex Elder .elem_len = 1, 36530f9216SAlex Elder .elem_size = 37530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 38530f9216SAlex Elder data_usage_quota_reached_valid), 39530f9216SAlex Elder .tlv_type = 0x11, 40530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 41530f9216SAlex Elder data_usage_quota_reached_valid), 42530f9216SAlex Elder }, 43530f9216SAlex Elder { 44530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 45530f9216SAlex Elder .elem_len = 1, 46530f9216SAlex Elder .elem_size = 47530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 48530f9216SAlex Elder data_usage_quota_reached), 49530f9216SAlex Elder .tlv_type = 0x11, 50530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 51530f9216SAlex Elder data_usage_quota_reached), 52530f9216SAlex Elder }, 53530f9216SAlex Elder { 54530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 55530f9216SAlex Elder .elem_len = 1, 56530f9216SAlex Elder .elem_size = 57530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 58530f9216SAlex Elder ipa_mhi_ready_ind_valid), 598aa68304SAlex Elder .tlv_type = 0x12, 60530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 61530f9216SAlex Elder ipa_mhi_ready_ind_valid), 62530f9216SAlex Elder }, 63530f9216SAlex Elder { 64530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 65530f9216SAlex Elder .elem_len = 1, 66530f9216SAlex Elder .elem_size = 67530f9216SAlex Elder sizeof_field(struct ipa_indication_register_req, 68530f9216SAlex Elder ipa_mhi_ready_ind), 698aa68304SAlex Elder .tlv_type = 0x12, 70530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 71530f9216SAlex Elder ipa_mhi_ready_ind), 72530f9216SAlex Elder }, 73530f9216SAlex Elder { 746ec7a9c2SAlex Elder .data_type = QMI_OPT_FLAG, 756ec7a9c2SAlex Elder .elem_len = 1, 766ec7a9c2SAlex Elder .elem_size = 776ec7a9c2SAlex Elder sizeof_field(struct ipa_indication_register_req, 786ec7a9c2SAlex Elder endpoint_desc_ind_valid), 796ec7a9c2SAlex Elder .tlv_type = 0x13, 806ec7a9c2SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 816ec7a9c2SAlex Elder endpoint_desc_ind_valid), 826ec7a9c2SAlex Elder }, 836ec7a9c2SAlex Elder { 846ec7a9c2SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 856ec7a9c2SAlex Elder .elem_len = 1, 866ec7a9c2SAlex Elder .elem_size = 876ec7a9c2SAlex Elder sizeof_field(struct ipa_indication_register_req, 886ec7a9c2SAlex Elder endpoint_desc_ind), 896ec7a9c2SAlex Elder .tlv_type = 0x13, 906ec7a9c2SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 916ec7a9c2SAlex Elder endpoint_desc_ind), 926ec7a9c2SAlex Elder }, 936ec7a9c2SAlex Elder { 946ec7a9c2SAlex Elder .data_type = QMI_OPT_FLAG, 956ec7a9c2SAlex Elder .elem_len = 1, 966ec7a9c2SAlex Elder .elem_size = 976ec7a9c2SAlex Elder sizeof_field(struct ipa_indication_register_req, 986ec7a9c2SAlex Elder bw_change_ind_valid), 996ec7a9c2SAlex Elder .tlv_type = 0x14, 1006ec7a9c2SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 1016ec7a9c2SAlex Elder bw_change_ind_valid), 1026ec7a9c2SAlex Elder }, 1036ec7a9c2SAlex Elder { 1046ec7a9c2SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 1056ec7a9c2SAlex Elder .elem_len = 1, 1066ec7a9c2SAlex Elder .elem_size = 1076ec7a9c2SAlex Elder sizeof_field(struct ipa_indication_register_req, 1086ec7a9c2SAlex Elder bw_change_ind), 1096ec7a9c2SAlex Elder .tlv_type = 0x14, 1106ec7a9c2SAlex Elder .offset = offsetof(struct ipa_indication_register_req, 1116ec7a9c2SAlex Elder bw_change_ind), 1126ec7a9c2SAlex Elder }, 1136ec7a9c2SAlex Elder { 114530f9216SAlex Elder .data_type = QMI_EOTI, 115530f9216SAlex Elder }, 116530f9216SAlex Elder }; 117530f9216SAlex Elder 118530f9216SAlex Elder /* QMI message structure definition for struct ipa_indication_register_rsp */ 119*c0facc04SJeff Johnson const struct qmi_elem_info ipa_indication_register_rsp_ei[] = { 120530f9216SAlex Elder { 121530f9216SAlex Elder .data_type = QMI_STRUCT, 122530f9216SAlex Elder .elem_len = 1, 123530f9216SAlex Elder .elem_size = 124530f9216SAlex Elder sizeof_field(struct ipa_indication_register_rsp, 125530f9216SAlex Elder rsp), 126530f9216SAlex Elder .tlv_type = 0x02, 127530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_rsp, 128530f9216SAlex Elder rsp), 129530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 130530f9216SAlex Elder }, 131530f9216SAlex Elder { 132530f9216SAlex Elder .data_type = QMI_EOTI, 133530f9216SAlex Elder }, 134530f9216SAlex Elder }; 135530f9216SAlex Elder 136530f9216SAlex Elder /* QMI message structure definition for struct ipa_driver_init_complete_req */ 137*c0facc04SJeff Johnson const struct qmi_elem_info ipa_driver_init_complete_req_ei[] = { 138530f9216SAlex Elder { 139530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 140530f9216SAlex Elder .elem_len = 1, 141530f9216SAlex Elder .elem_size = 142530f9216SAlex Elder sizeof_field(struct ipa_driver_init_complete_req, 143530f9216SAlex Elder status), 144530f9216SAlex Elder .tlv_type = 0x01, 145530f9216SAlex Elder .offset = offsetof(struct ipa_driver_init_complete_req, 146530f9216SAlex Elder status), 147530f9216SAlex Elder }, 148530f9216SAlex Elder { 149530f9216SAlex Elder .data_type = QMI_EOTI, 150530f9216SAlex Elder }, 151530f9216SAlex Elder }; 152530f9216SAlex Elder 153530f9216SAlex Elder /* QMI message structure definition for struct ipa_driver_init_complete_rsp */ 154*c0facc04SJeff Johnson const struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = { 155530f9216SAlex Elder { 156530f9216SAlex Elder .data_type = QMI_STRUCT, 157530f9216SAlex Elder .elem_len = 1, 158530f9216SAlex Elder .elem_size = 159530f9216SAlex Elder sizeof_field(struct ipa_driver_init_complete_rsp, 160530f9216SAlex Elder rsp), 161530f9216SAlex Elder .tlv_type = 0x02, 16274478ea4SAlex Elder .offset = offsetof(struct ipa_driver_init_complete_rsp, 163530f9216SAlex Elder rsp), 164530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 165530f9216SAlex Elder }, 166530f9216SAlex Elder { 167530f9216SAlex Elder .data_type = QMI_EOTI, 168530f9216SAlex Elder }, 169530f9216SAlex Elder }; 170530f9216SAlex Elder 171530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_complete_ind */ 172*c0facc04SJeff Johnson const struct qmi_elem_info ipa_init_complete_ind_ei[] = { 173530f9216SAlex Elder { 174530f9216SAlex Elder .data_type = QMI_STRUCT, 175530f9216SAlex Elder .elem_len = 1, 176530f9216SAlex Elder .elem_size = 177530f9216SAlex Elder sizeof_field(struct ipa_init_complete_ind, 178530f9216SAlex Elder status), 179530f9216SAlex Elder .tlv_type = 0x02, 18074478ea4SAlex Elder .offset = offsetof(struct ipa_init_complete_ind, 181530f9216SAlex Elder status), 182530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 183530f9216SAlex Elder }, 184530f9216SAlex Elder { 185530f9216SAlex Elder .data_type = QMI_EOTI, 186530f9216SAlex Elder }, 187530f9216SAlex Elder }; 188530f9216SAlex Elder 189530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_bounds */ 190*c0facc04SJeff Johnson const struct qmi_elem_info ipa_mem_bounds_ei[] = { 191530f9216SAlex Elder { 192530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 193530f9216SAlex Elder .elem_len = 1, 194530f9216SAlex Elder .elem_size = 195530f9216SAlex Elder sizeof_field(struct ipa_mem_bounds, start), 196530f9216SAlex Elder .offset = offsetof(struct ipa_mem_bounds, start), 197530f9216SAlex Elder }, 198530f9216SAlex Elder { 199530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 200530f9216SAlex Elder .elem_len = 1, 201530f9216SAlex Elder .elem_size = 202530f9216SAlex Elder sizeof_field(struct ipa_mem_bounds, end), 203530f9216SAlex Elder .offset = offsetof(struct ipa_mem_bounds, end), 204530f9216SAlex Elder }, 205530f9216SAlex Elder { 206530f9216SAlex Elder .data_type = QMI_EOTI, 207530f9216SAlex Elder }, 208530f9216SAlex Elder }; 209530f9216SAlex Elder 210530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_array */ 211*c0facc04SJeff Johnson const struct qmi_elem_info ipa_mem_array_ei[] = { 212530f9216SAlex Elder { 213530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 214530f9216SAlex Elder .elem_len = 1, 215530f9216SAlex Elder .elem_size = 216530f9216SAlex Elder sizeof_field(struct ipa_mem_array, start), 217530f9216SAlex Elder .offset = offsetof(struct ipa_mem_array, start), 218530f9216SAlex Elder }, 219530f9216SAlex Elder { 220530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 221530f9216SAlex Elder .elem_len = 1, 222530f9216SAlex Elder .elem_size = 223530f9216SAlex Elder sizeof_field(struct ipa_mem_array, count), 224530f9216SAlex Elder .offset = offsetof(struct ipa_mem_array, count), 225530f9216SAlex Elder }, 226530f9216SAlex Elder { 227530f9216SAlex Elder .data_type = QMI_EOTI, 228530f9216SAlex Elder }, 229530f9216SAlex Elder }; 230530f9216SAlex Elder 231530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_range */ 232*c0facc04SJeff Johnson const struct qmi_elem_info ipa_mem_range_ei[] = { 233530f9216SAlex Elder { 234530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 235530f9216SAlex Elder .elem_len = 1, 236530f9216SAlex Elder .elem_size = 237530f9216SAlex Elder sizeof_field(struct ipa_mem_range, start), 238530f9216SAlex Elder .offset = offsetof(struct ipa_mem_range, start), 239530f9216SAlex Elder }, 240530f9216SAlex Elder { 241530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 242530f9216SAlex Elder .elem_len = 1, 243530f9216SAlex Elder .elem_size = 244530f9216SAlex Elder sizeof_field(struct ipa_mem_range, size), 245530f9216SAlex Elder .offset = offsetof(struct ipa_mem_range, size), 246530f9216SAlex Elder }, 247530f9216SAlex Elder { 248530f9216SAlex Elder .data_type = QMI_EOTI, 249530f9216SAlex Elder }, 250530f9216SAlex Elder }; 251530f9216SAlex Elder 252530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_modem_driver_req */ 253*c0facc04SJeff Johnson const struct qmi_elem_info ipa_init_modem_driver_req_ei[] = { 254530f9216SAlex Elder { 255530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 256530f9216SAlex Elder .elem_len = 1, 257530f9216SAlex Elder .elem_size = 258530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 259530f9216SAlex Elder platform_type_valid), 260530f9216SAlex Elder .tlv_type = 0x10, 26174478ea4SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 262530f9216SAlex Elder platform_type_valid), 263530f9216SAlex Elder }, 264530f9216SAlex Elder { 265530f9216SAlex Elder .data_type = QMI_SIGNED_4_BYTE_ENUM, 266530f9216SAlex Elder .elem_len = 1, 267530f9216SAlex Elder .elem_size = 268530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 269530f9216SAlex Elder platform_type), 270530f9216SAlex Elder .tlv_type = 0x10, 271530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 272530f9216SAlex Elder platform_type), 273530f9216SAlex Elder }, 274530f9216SAlex Elder { 275530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 276530f9216SAlex Elder .elem_len = 1, 277530f9216SAlex Elder .elem_size = 278530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 279530f9216SAlex Elder hdr_tbl_info_valid), 280530f9216SAlex Elder .tlv_type = 0x11, 281530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 282530f9216SAlex Elder hdr_tbl_info_valid), 283530f9216SAlex Elder }, 284530f9216SAlex Elder { 285530f9216SAlex Elder .data_type = QMI_STRUCT, 286530f9216SAlex Elder .elem_len = 1, 287530f9216SAlex Elder .elem_size = 288530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 289530f9216SAlex Elder hdr_tbl_info), 290530f9216SAlex Elder .tlv_type = 0x11, 291530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 292530f9216SAlex Elder hdr_tbl_info), 293530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 294530f9216SAlex Elder }, 295530f9216SAlex Elder { 296530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 297530f9216SAlex Elder .elem_len = 1, 298530f9216SAlex Elder .elem_size = 299530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 300530f9216SAlex Elder v4_route_tbl_info_valid), 301530f9216SAlex Elder .tlv_type = 0x12, 302530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 303530f9216SAlex Elder v4_route_tbl_info_valid), 304530f9216SAlex Elder }, 305530f9216SAlex Elder { 306530f9216SAlex Elder .data_type = QMI_STRUCT, 307530f9216SAlex Elder .elem_len = 1, 308530f9216SAlex Elder .elem_size = 309530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 310530f9216SAlex Elder v4_route_tbl_info), 311530f9216SAlex Elder .tlv_type = 0x12, 312530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 313530f9216SAlex Elder v4_route_tbl_info), 314cf412ec3SAlex Elder .ei_array = ipa_mem_bounds_ei, 315530f9216SAlex Elder }, 316530f9216SAlex Elder { 317530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 318530f9216SAlex Elder .elem_len = 1, 319530f9216SAlex Elder .elem_size = 320530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 321530f9216SAlex Elder v6_route_tbl_info_valid), 322530f9216SAlex Elder .tlv_type = 0x13, 323530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 324530f9216SAlex Elder v6_route_tbl_info_valid), 325530f9216SAlex Elder }, 326530f9216SAlex Elder { 327530f9216SAlex Elder .data_type = QMI_STRUCT, 328530f9216SAlex Elder .elem_len = 1, 329530f9216SAlex Elder .elem_size = 330530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 331530f9216SAlex Elder v6_route_tbl_info), 332530f9216SAlex Elder .tlv_type = 0x13, 333530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 334530f9216SAlex Elder v6_route_tbl_info), 335cf412ec3SAlex Elder .ei_array = ipa_mem_bounds_ei, 336530f9216SAlex Elder }, 337530f9216SAlex Elder { 338530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 339530f9216SAlex Elder .elem_len = 1, 340530f9216SAlex Elder .elem_size = 341530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 342530f9216SAlex Elder v4_filter_tbl_start_valid), 343530f9216SAlex Elder .tlv_type = 0x14, 344530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 345530f9216SAlex Elder v4_filter_tbl_start_valid), 346530f9216SAlex Elder }, 347530f9216SAlex Elder { 348530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 349530f9216SAlex Elder .elem_len = 1, 350530f9216SAlex Elder .elem_size = 351530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 352530f9216SAlex Elder v4_filter_tbl_start), 353530f9216SAlex Elder .tlv_type = 0x14, 354530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 355530f9216SAlex Elder v4_filter_tbl_start), 356530f9216SAlex Elder }, 357530f9216SAlex Elder { 358530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 359530f9216SAlex Elder .elem_len = 1, 360530f9216SAlex Elder .elem_size = 361530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 362530f9216SAlex Elder v6_filter_tbl_start_valid), 363530f9216SAlex Elder .tlv_type = 0x15, 364530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 365530f9216SAlex Elder v6_filter_tbl_start_valid), 366530f9216SAlex Elder }, 367530f9216SAlex Elder { 368530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 369530f9216SAlex Elder .elem_len = 1, 370530f9216SAlex Elder .elem_size = 371530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 372530f9216SAlex Elder v6_filter_tbl_start), 373530f9216SAlex Elder .tlv_type = 0x15, 374530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 375530f9216SAlex Elder v6_filter_tbl_start), 376530f9216SAlex Elder }, 377530f9216SAlex Elder { 378530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 379530f9216SAlex Elder .elem_len = 1, 380530f9216SAlex Elder .elem_size = 381530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 382530f9216SAlex Elder modem_mem_info_valid), 383530f9216SAlex Elder .tlv_type = 0x16, 384530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 385530f9216SAlex Elder modem_mem_info_valid), 386530f9216SAlex Elder }, 387530f9216SAlex Elder { 388530f9216SAlex Elder .data_type = QMI_STRUCT, 389530f9216SAlex Elder .elem_len = 1, 390530f9216SAlex Elder .elem_size = 391530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 392530f9216SAlex Elder modem_mem_info), 393530f9216SAlex Elder .tlv_type = 0x16, 394530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 395530f9216SAlex Elder modem_mem_info), 396530f9216SAlex Elder .ei_array = ipa_mem_range_ei, 397530f9216SAlex Elder }, 398530f9216SAlex Elder { 399530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 400530f9216SAlex Elder .elem_len = 1, 401530f9216SAlex Elder .elem_size = 402530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 403530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 404530f9216SAlex Elder .tlv_type = 0x17, 405530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 406530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 407530f9216SAlex Elder }, 408530f9216SAlex Elder { 409530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 410530f9216SAlex Elder .elem_len = 1, 411530f9216SAlex Elder .elem_size = 412530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 413530f9216SAlex Elder ctrl_comm_dest_end_pt), 414530f9216SAlex Elder .tlv_type = 0x17, 415530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 416530f9216SAlex Elder ctrl_comm_dest_end_pt), 417530f9216SAlex Elder }, 418530f9216SAlex Elder { 419530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 420530f9216SAlex Elder .elem_len = 1, 421530f9216SAlex Elder .elem_size = 422530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 423530f9216SAlex Elder skip_uc_load_valid), 424530f9216SAlex Elder .tlv_type = 0x18, 425530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 426530f9216SAlex Elder skip_uc_load_valid), 427530f9216SAlex Elder }, 428530f9216SAlex Elder { 429530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 430530f9216SAlex Elder .elem_len = 1, 431530f9216SAlex Elder .elem_size = 432530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 433530f9216SAlex Elder skip_uc_load), 434530f9216SAlex Elder .tlv_type = 0x18, 435530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 436530f9216SAlex Elder skip_uc_load), 437530f9216SAlex Elder }, 438530f9216SAlex Elder { 439530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 440530f9216SAlex Elder .elem_len = 1, 441530f9216SAlex Elder .elem_size = 442530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 443530f9216SAlex Elder hdr_proc_ctx_tbl_info_valid), 444530f9216SAlex Elder .tlv_type = 0x19, 445530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 446530f9216SAlex Elder hdr_proc_ctx_tbl_info_valid), 447530f9216SAlex Elder }, 448530f9216SAlex Elder { 449530f9216SAlex Elder .data_type = QMI_STRUCT, 450530f9216SAlex Elder .elem_len = 1, 451530f9216SAlex Elder .elem_size = 452530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 453530f9216SAlex Elder hdr_proc_ctx_tbl_info), 454530f9216SAlex Elder .tlv_type = 0x19, 455530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 456530f9216SAlex Elder hdr_proc_ctx_tbl_info), 457530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 458530f9216SAlex Elder }, 459530f9216SAlex Elder { 460530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 461530f9216SAlex Elder .elem_len = 1, 462530f9216SAlex Elder .elem_size = 463530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 464530f9216SAlex Elder zip_tbl_info_valid), 465530f9216SAlex Elder .tlv_type = 0x1a, 466530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 467530f9216SAlex Elder zip_tbl_info_valid), 468530f9216SAlex Elder }, 469530f9216SAlex Elder { 470530f9216SAlex Elder .data_type = QMI_STRUCT, 471530f9216SAlex Elder .elem_len = 1, 472530f9216SAlex Elder .elem_size = 473530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 474530f9216SAlex Elder zip_tbl_info), 475530f9216SAlex Elder .tlv_type = 0x1a, 476530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 477530f9216SAlex Elder zip_tbl_info), 478530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 479530f9216SAlex Elder }, 480530f9216SAlex Elder { 481530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 482530f9216SAlex Elder .elem_len = 1, 483530f9216SAlex Elder .elem_size = 484530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 485530f9216SAlex Elder v4_hash_route_tbl_info_valid), 486530f9216SAlex Elder .tlv_type = 0x1b, 487530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 488530f9216SAlex Elder v4_hash_route_tbl_info_valid), 489530f9216SAlex Elder }, 490530f9216SAlex Elder { 491530f9216SAlex Elder .data_type = QMI_STRUCT, 492530f9216SAlex Elder .elem_len = 1, 493530f9216SAlex Elder .elem_size = 494530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 495530f9216SAlex Elder v4_hash_route_tbl_info), 496530f9216SAlex Elder .tlv_type = 0x1b, 497530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 498530f9216SAlex Elder v4_hash_route_tbl_info), 499cf412ec3SAlex Elder .ei_array = ipa_mem_bounds_ei, 500530f9216SAlex Elder }, 501530f9216SAlex Elder { 502530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 503530f9216SAlex Elder .elem_len = 1, 504530f9216SAlex Elder .elem_size = 505530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 506530f9216SAlex Elder v6_hash_route_tbl_info_valid), 507530f9216SAlex Elder .tlv_type = 0x1c, 508530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 509530f9216SAlex Elder v6_hash_route_tbl_info_valid), 510530f9216SAlex Elder }, 511530f9216SAlex Elder { 512530f9216SAlex Elder .data_type = QMI_STRUCT, 513530f9216SAlex Elder .elem_len = 1, 514530f9216SAlex Elder .elem_size = 515530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 516530f9216SAlex Elder v6_hash_route_tbl_info), 517530f9216SAlex Elder .tlv_type = 0x1c, 518530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 519530f9216SAlex Elder v6_hash_route_tbl_info), 520cf412ec3SAlex Elder .ei_array = ipa_mem_bounds_ei, 521530f9216SAlex Elder }, 522530f9216SAlex Elder { 523530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 524530f9216SAlex Elder .elem_len = 1, 525530f9216SAlex Elder .elem_size = 526530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 527530f9216SAlex Elder v4_hash_filter_tbl_start_valid), 528530f9216SAlex Elder .tlv_type = 0x1d, 529530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 530530f9216SAlex Elder v4_hash_filter_tbl_start_valid), 531530f9216SAlex Elder }, 532530f9216SAlex Elder { 533530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 534530f9216SAlex Elder .elem_len = 1, 535530f9216SAlex Elder .elem_size = 536530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 537530f9216SAlex Elder v4_hash_filter_tbl_start), 538530f9216SAlex Elder .tlv_type = 0x1d, 539530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 540530f9216SAlex Elder v4_hash_filter_tbl_start), 541530f9216SAlex Elder }, 542530f9216SAlex Elder { 543530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 544530f9216SAlex Elder .elem_len = 1, 545530f9216SAlex Elder .elem_size = 546530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 547530f9216SAlex Elder v6_hash_filter_tbl_start_valid), 548530f9216SAlex Elder .tlv_type = 0x1e, 549530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 550530f9216SAlex Elder v6_hash_filter_tbl_start_valid), 551530f9216SAlex Elder }, 552530f9216SAlex Elder { 553530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 554530f9216SAlex Elder .elem_len = 1, 555530f9216SAlex Elder .elem_size = 556530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 557530f9216SAlex Elder v6_hash_filter_tbl_start), 558530f9216SAlex Elder .tlv_type = 0x1e, 559530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 560530f9216SAlex Elder v6_hash_filter_tbl_start), 561530f9216SAlex Elder }, 562530f9216SAlex Elder { 563530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 564530f9216SAlex Elder .elem_len = 1, 565530f9216SAlex Elder .elem_size = 566530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 567530f9216SAlex Elder hw_stats_quota_base_addr_valid), 568530f9216SAlex Elder .tlv_type = 0x1f, 569530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 570530f9216SAlex Elder hw_stats_quota_base_addr_valid), 571530f9216SAlex Elder }, 572530f9216SAlex Elder { 5737ac629e3SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 574530f9216SAlex Elder .elem_len = 1, 575530f9216SAlex Elder .elem_size = 576530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 577530f9216SAlex Elder hw_stats_quota_base_addr), 578530f9216SAlex Elder .tlv_type = 0x1f, 579530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 580530f9216SAlex Elder hw_stats_quota_base_addr), 581530f9216SAlex Elder }, 582530f9216SAlex Elder { 583530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 584530f9216SAlex Elder .elem_len = 1, 585530f9216SAlex Elder .elem_size = 586530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 587530f9216SAlex Elder hw_stats_quota_size_valid), 5887ac629e3SAlex Elder .tlv_type = 0x20, 589530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 590530f9216SAlex Elder hw_stats_quota_size_valid), 591530f9216SAlex Elder }, 592530f9216SAlex Elder { 5937ac629e3SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 594530f9216SAlex Elder .elem_len = 1, 595530f9216SAlex Elder .elem_size = 596530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 597530f9216SAlex Elder hw_stats_quota_size), 5987ac629e3SAlex Elder .tlv_type = 0x20, 599530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 600530f9216SAlex Elder hw_stats_quota_size), 601530f9216SAlex Elder }, 602530f9216SAlex Elder { 603530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 604530f9216SAlex Elder .elem_len = 1, 605530f9216SAlex Elder .elem_size = 606530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 6077ac629e3SAlex Elder hw_stats_drop_base_addr_valid), 6087ac629e3SAlex Elder .tlv_type = 0x21, 6097ac629e3SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 6107ac629e3SAlex Elder hw_stats_drop_base_addr_valid), 6117ac629e3SAlex Elder }, 6127ac629e3SAlex Elder { 6137ac629e3SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 6147ac629e3SAlex Elder .elem_len = 1, 6157ac629e3SAlex Elder .elem_size = 6167ac629e3SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 6177ac629e3SAlex Elder hw_stats_drop_base_addr), 6187ac629e3SAlex Elder .tlv_type = 0x21, 6197ac629e3SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 6207ac629e3SAlex Elder hw_stats_drop_base_addr), 6217ac629e3SAlex Elder }, 6227ac629e3SAlex Elder { 6237ac629e3SAlex Elder .data_type = QMI_OPT_FLAG, 6247ac629e3SAlex Elder .elem_len = 1, 6257ac629e3SAlex Elder .elem_size = 6267ac629e3SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 627530f9216SAlex Elder hw_stats_drop_size_valid), 6287ac629e3SAlex Elder .tlv_type = 0x22, 629530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 630530f9216SAlex Elder hw_stats_drop_size_valid), 631530f9216SAlex Elder }, 632530f9216SAlex Elder { 6337ac629e3SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 634530f9216SAlex Elder .elem_len = 1, 635530f9216SAlex Elder .elem_size = 636530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 637530f9216SAlex Elder hw_stats_drop_size), 6387ac629e3SAlex Elder .tlv_type = 0x22, 639530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 640530f9216SAlex Elder hw_stats_drop_size), 641530f9216SAlex Elder }, 642530f9216SAlex Elder { 643530f9216SAlex Elder .data_type = QMI_EOTI, 644530f9216SAlex Elder }, 645530f9216SAlex Elder }; 646530f9216SAlex Elder 647530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_modem_driver_rsp */ 648*c0facc04SJeff Johnson const struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = { 649530f9216SAlex Elder { 650530f9216SAlex Elder .data_type = QMI_STRUCT, 651530f9216SAlex Elder .elem_len = 1, 652530f9216SAlex Elder .elem_size = 653530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 654530f9216SAlex Elder rsp), 655530f9216SAlex Elder .tlv_type = 0x02, 656530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 657530f9216SAlex Elder rsp), 658530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 659530f9216SAlex Elder }, 660530f9216SAlex Elder { 661530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 662530f9216SAlex Elder .elem_len = 1, 663530f9216SAlex Elder .elem_size = 664530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 665530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 666530f9216SAlex Elder .tlv_type = 0x10, 667530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 668530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 669530f9216SAlex Elder }, 670530f9216SAlex Elder { 671530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 672530f9216SAlex Elder .elem_len = 1, 673530f9216SAlex Elder .elem_size = 674530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 675530f9216SAlex Elder ctrl_comm_dest_end_pt), 676530f9216SAlex Elder .tlv_type = 0x10, 677530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 678530f9216SAlex Elder ctrl_comm_dest_end_pt), 679530f9216SAlex Elder }, 680530f9216SAlex Elder { 681530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 682530f9216SAlex Elder .elem_len = 1, 683530f9216SAlex Elder .elem_size = 684530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 685530f9216SAlex Elder default_end_pt_valid), 686530f9216SAlex Elder .tlv_type = 0x11, 687530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 688530f9216SAlex Elder default_end_pt_valid), 689530f9216SAlex Elder }, 690530f9216SAlex Elder { 691530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 692530f9216SAlex Elder .elem_len = 1, 693530f9216SAlex Elder .elem_size = 694530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 695530f9216SAlex Elder default_end_pt), 696530f9216SAlex Elder .tlv_type = 0x11, 697530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 698530f9216SAlex Elder default_end_pt), 699530f9216SAlex Elder }, 700530f9216SAlex Elder { 701530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 702530f9216SAlex Elder .elem_len = 1, 703530f9216SAlex Elder .elem_size = 704530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 705530f9216SAlex Elder modem_driver_init_pending_valid), 706530f9216SAlex Elder .tlv_type = 0x12, 707530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 708530f9216SAlex Elder modem_driver_init_pending_valid), 709530f9216SAlex Elder }, 710530f9216SAlex Elder { 711530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 712530f9216SAlex Elder .elem_len = 1, 713530f9216SAlex Elder .elem_size = 714530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 715530f9216SAlex Elder modem_driver_init_pending), 716530f9216SAlex Elder .tlv_type = 0x12, 717530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 718530f9216SAlex Elder modem_driver_init_pending), 719530f9216SAlex Elder }, 720530f9216SAlex Elder { 721530f9216SAlex Elder .data_type = QMI_EOTI, 722530f9216SAlex Elder }, 723530f9216SAlex Elder }; 724