1530f9216SAlex Elder // SPDX-License-Identifier: GPL-2.0 2530f9216SAlex Elder 3530f9216SAlex Elder /* Copyright (c) 2018, The Linux Foundation. All rights reserved. 4530f9216SAlex Elder * Copyright (C) 2018-2020 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 */ 12530f9216SAlex Elder 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 { 74530f9216SAlex Elder .data_type = QMI_EOTI, 75530f9216SAlex Elder }, 76530f9216SAlex Elder }; 77530f9216SAlex Elder 78530f9216SAlex Elder /* QMI message structure definition for struct ipa_indication_register_rsp */ 79530f9216SAlex Elder struct qmi_elem_info ipa_indication_register_rsp_ei[] = { 80530f9216SAlex Elder { 81530f9216SAlex Elder .data_type = QMI_STRUCT, 82530f9216SAlex Elder .elem_len = 1, 83530f9216SAlex Elder .elem_size = 84530f9216SAlex Elder sizeof_field(struct ipa_indication_register_rsp, 85530f9216SAlex Elder rsp), 86530f9216SAlex Elder .tlv_type = 0x02, 87530f9216SAlex Elder .offset = offsetof(struct ipa_indication_register_rsp, 88530f9216SAlex Elder rsp), 89530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 90530f9216SAlex Elder }, 91530f9216SAlex Elder { 92530f9216SAlex Elder .data_type = QMI_EOTI, 93530f9216SAlex Elder }, 94530f9216SAlex Elder }; 95530f9216SAlex Elder 96530f9216SAlex Elder /* QMI message structure definition for struct ipa_driver_init_complete_req */ 97530f9216SAlex Elder struct qmi_elem_info ipa_driver_init_complete_req_ei[] = { 98530f9216SAlex Elder { 99530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 100530f9216SAlex Elder .elem_len = 1, 101530f9216SAlex Elder .elem_size = 102530f9216SAlex Elder sizeof_field(struct ipa_driver_init_complete_req, 103530f9216SAlex Elder status), 104530f9216SAlex Elder .tlv_type = 0x01, 105530f9216SAlex Elder .offset = offsetof(struct ipa_driver_init_complete_req, 106530f9216SAlex Elder status), 107530f9216SAlex Elder }, 108530f9216SAlex Elder { 109530f9216SAlex Elder .data_type = QMI_EOTI, 110530f9216SAlex Elder }, 111530f9216SAlex Elder }; 112530f9216SAlex Elder 113530f9216SAlex Elder /* QMI message structure definition for struct ipa_driver_init_complete_rsp */ 114530f9216SAlex Elder struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = { 115530f9216SAlex Elder { 116530f9216SAlex Elder .data_type = QMI_STRUCT, 117530f9216SAlex Elder .elem_len = 1, 118530f9216SAlex Elder .elem_size = 119530f9216SAlex Elder sizeof_field(struct ipa_driver_init_complete_rsp, 120530f9216SAlex Elder rsp), 121530f9216SAlex Elder .tlv_type = 0x02, 12274478ea4SAlex Elder .offset = offsetof(struct ipa_driver_init_complete_rsp, 123530f9216SAlex Elder rsp), 124530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 125530f9216SAlex Elder }, 126530f9216SAlex Elder { 127530f9216SAlex Elder .data_type = QMI_EOTI, 128530f9216SAlex Elder }, 129530f9216SAlex Elder }; 130530f9216SAlex Elder 131530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_complete_ind */ 132530f9216SAlex Elder struct qmi_elem_info ipa_init_complete_ind_ei[] = { 133530f9216SAlex Elder { 134530f9216SAlex Elder .data_type = QMI_STRUCT, 135530f9216SAlex Elder .elem_len = 1, 136530f9216SAlex Elder .elem_size = 137530f9216SAlex Elder sizeof_field(struct ipa_init_complete_ind, 138530f9216SAlex Elder status), 139530f9216SAlex Elder .tlv_type = 0x02, 14074478ea4SAlex Elder .offset = offsetof(struct ipa_init_complete_ind, 141530f9216SAlex Elder status), 142530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 143530f9216SAlex Elder }, 144530f9216SAlex Elder { 145530f9216SAlex Elder .data_type = QMI_EOTI, 146530f9216SAlex Elder }, 147530f9216SAlex Elder }; 148530f9216SAlex Elder 149530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_bounds */ 150530f9216SAlex Elder struct qmi_elem_info ipa_mem_bounds_ei[] = { 151530f9216SAlex Elder { 152530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 153530f9216SAlex Elder .elem_len = 1, 154530f9216SAlex Elder .elem_size = 155530f9216SAlex Elder sizeof_field(struct ipa_mem_bounds, start), 156530f9216SAlex Elder .offset = offsetof(struct ipa_mem_bounds, start), 157530f9216SAlex Elder }, 158530f9216SAlex Elder { 159530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 160530f9216SAlex Elder .elem_len = 1, 161530f9216SAlex Elder .elem_size = 162530f9216SAlex Elder sizeof_field(struct ipa_mem_bounds, end), 163530f9216SAlex Elder .offset = offsetof(struct ipa_mem_bounds, end), 164530f9216SAlex Elder }, 165530f9216SAlex Elder { 166530f9216SAlex Elder .data_type = QMI_EOTI, 167530f9216SAlex Elder }, 168530f9216SAlex Elder }; 169530f9216SAlex Elder 170530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_array */ 171530f9216SAlex Elder struct qmi_elem_info ipa_mem_array_ei[] = { 172530f9216SAlex Elder { 173530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 174530f9216SAlex Elder .elem_len = 1, 175530f9216SAlex Elder .elem_size = 176530f9216SAlex Elder sizeof_field(struct ipa_mem_array, start), 177530f9216SAlex Elder .offset = offsetof(struct ipa_mem_array, start), 178530f9216SAlex Elder }, 179530f9216SAlex Elder { 180530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 181530f9216SAlex Elder .elem_len = 1, 182530f9216SAlex Elder .elem_size = 183530f9216SAlex Elder sizeof_field(struct ipa_mem_array, count), 184530f9216SAlex Elder .offset = offsetof(struct ipa_mem_array, count), 185530f9216SAlex Elder }, 186530f9216SAlex Elder { 187530f9216SAlex Elder .data_type = QMI_EOTI, 188530f9216SAlex Elder }, 189530f9216SAlex Elder }; 190530f9216SAlex Elder 191530f9216SAlex Elder /* QMI message structure definition for struct ipa_mem_range */ 192530f9216SAlex Elder struct qmi_elem_info ipa_mem_range_ei[] = { 193530f9216SAlex Elder { 194530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 195530f9216SAlex Elder .elem_len = 1, 196530f9216SAlex Elder .elem_size = 197530f9216SAlex Elder sizeof_field(struct ipa_mem_range, start), 198530f9216SAlex Elder .offset = offsetof(struct ipa_mem_range, start), 199530f9216SAlex Elder }, 200530f9216SAlex Elder { 201530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 202530f9216SAlex Elder .elem_len = 1, 203530f9216SAlex Elder .elem_size = 204530f9216SAlex Elder sizeof_field(struct ipa_mem_range, size), 205530f9216SAlex Elder .offset = offsetof(struct ipa_mem_range, size), 206530f9216SAlex Elder }, 207530f9216SAlex Elder { 208530f9216SAlex Elder .data_type = QMI_EOTI, 209530f9216SAlex Elder }, 210530f9216SAlex Elder }; 211530f9216SAlex Elder 212530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_modem_driver_req */ 213530f9216SAlex Elder struct qmi_elem_info ipa_init_modem_driver_req_ei[] = { 214530f9216SAlex Elder { 215530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 216530f9216SAlex Elder .elem_len = 1, 217530f9216SAlex Elder .elem_size = 218530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 219530f9216SAlex Elder platform_type_valid), 220530f9216SAlex Elder .tlv_type = 0x10, 22174478ea4SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 222530f9216SAlex Elder platform_type_valid), 223530f9216SAlex Elder }, 224530f9216SAlex Elder { 225530f9216SAlex Elder .data_type = QMI_SIGNED_4_BYTE_ENUM, 226530f9216SAlex Elder .elem_len = 1, 227530f9216SAlex Elder .elem_size = 228530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 229530f9216SAlex Elder platform_type), 230530f9216SAlex Elder .tlv_type = 0x10, 231530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 232530f9216SAlex Elder platform_type), 233530f9216SAlex Elder }, 234530f9216SAlex Elder { 235530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 236530f9216SAlex Elder .elem_len = 1, 237530f9216SAlex Elder .elem_size = 238530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 239530f9216SAlex Elder hdr_tbl_info_valid), 240530f9216SAlex Elder .tlv_type = 0x11, 241530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 242530f9216SAlex Elder hdr_tbl_info_valid), 243530f9216SAlex Elder }, 244530f9216SAlex Elder { 245530f9216SAlex Elder .data_type = QMI_STRUCT, 246530f9216SAlex Elder .elem_len = 1, 247530f9216SAlex Elder .elem_size = 248530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 249530f9216SAlex Elder hdr_tbl_info), 250530f9216SAlex Elder .tlv_type = 0x11, 251530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 252530f9216SAlex Elder hdr_tbl_info), 253530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 254530f9216SAlex Elder }, 255530f9216SAlex Elder { 256530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 257530f9216SAlex Elder .elem_len = 1, 258530f9216SAlex Elder .elem_size = 259530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 260530f9216SAlex Elder v4_route_tbl_info_valid), 261530f9216SAlex Elder .tlv_type = 0x12, 262530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 263530f9216SAlex Elder v4_route_tbl_info_valid), 264530f9216SAlex Elder }, 265530f9216SAlex Elder { 266530f9216SAlex Elder .data_type = QMI_STRUCT, 267530f9216SAlex Elder .elem_len = 1, 268530f9216SAlex Elder .elem_size = 269530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 270530f9216SAlex Elder v4_route_tbl_info), 271530f9216SAlex Elder .tlv_type = 0x12, 272530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 273530f9216SAlex Elder v4_route_tbl_info), 274530f9216SAlex Elder .ei_array = ipa_mem_array_ei, 275530f9216SAlex Elder }, 276530f9216SAlex Elder { 277530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 278530f9216SAlex Elder .elem_len = 1, 279530f9216SAlex Elder .elem_size = 280530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 281530f9216SAlex Elder v6_route_tbl_info_valid), 282530f9216SAlex Elder .tlv_type = 0x13, 283530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 284530f9216SAlex Elder v6_route_tbl_info_valid), 285530f9216SAlex Elder }, 286530f9216SAlex Elder { 287530f9216SAlex Elder .data_type = QMI_STRUCT, 288530f9216SAlex Elder .elem_len = 1, 289530f9216SAlex Elder .elem_size = 290530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 291530f9216SAlex Elder v6_route_tbl_info), 292530f9216SAlex Elder .tlv_type = 0x13, 293530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 294530f9216SAlex Elder v6_route_tbl_info), 295530f9216SAlex Elder .ei_array = ipa_mem_array_ei, 296530f9216SAlex Elder }, 297530f9216SAlex Elder { 298530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 299530f9216SAlex Elder .elem_len = 1, 300530f9216SAlex Elder .elem_size = 301530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 302530f9216SAlex Elder v4_filter_tbl_start_valid), 303530f9216SAlex Elder .tlv_type = 0x14, 304530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 305530f9216SAlex Elder v4_filter_tbl_start_valid), 306530f9216SAlex Elder }, 307530f9216SAlex Elder { 308530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 309530f9216SAlex Elder .elem_len = 1, 310530f9216SAlex Elder .elem_size = 311530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 312530f9216SAlex Elder v4_filter_tbl_start), 313530f9216SAlex Elder .tlv_type = 0x14, 314530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 315530f9216SAlex Elder v4_filter_tbl_start), 316530f9216SAlex Elder }, 317530f9216SAlex Elder { 318530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 319530f9216SAlex Elder .elem_len = 1, 320530f9216SAlex Elder .elem_size = 321530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 322530f9216SAlex Elder v6_filter_tbl_start_valid), 323530f9216SAlex Elder .tlv_type = 0x15, 324530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 325530f9216SAlex Elder v6_filter_tbl_start_valid), 326530f9216SAlex Elder }, 327530f9216SAlex Elder { 328530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 329530f9216SAlex Elder .elem_len = 1, 330530f9216SAlex Elder .elem_size = 331530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 332530f9216SAlex Elder v6_filter_tbl_start), 333530f9216SAlex Elder .tlv_type = 0x15, 334530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 335530f9216SAlex Elder v6_filter_tbl_start), 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 modem_mem_info_valid), 343530f9216SAlex Elder .tlv_type = 0x16, 344530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 345530f9216SAlex Elder modem_mem_info_valid), 346530f9216SAlex Elder }, 347530f9216SAlex Elder { 348530f9216SAlex Elder .data_type = QMI_STRUCT, 349530f9216SAlex Elder .elem_len = 1, 350530f9216SAlex Elder .elem_size = 351530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 352530f9216SAlex Elder modem_mem_info), 353530f9216SAlex Elder .tlv_type = 0x16, 354530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 355530f9216SAlex Elder modem_mem_info), 356530f9216SAlex Elder .ei_array = ipa_mem_range_ei, 357530f9216SAlex Elder }, 358530f9216SAlex Elder { 359530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 360530f9216SAlex Elder .elem_len = 1, 361530f9216SAlex Elder .elem_size = 362530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 363530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 364530f9216SAlex Elder .tlv_type = 0x17, 365530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 366530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 367530f9216SAlex Elder }, 368530f9216SAlex Elder { 369530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 370530f9216SAlex Elder .elem_len = 1, 371530f9216SAlex Elder .elem_size = 372530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 373530f9216SAlex Elder ctrl_comm_dest_end_pt), 374530f9216SAlex Elder .tlv_type = 0x17, 375530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 376530f9216SAlex Elder ctrl_comm_dest_end_pt), 377530f9216SAlex Elder }, 378530f9216SAlex Elder { 379530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 380530f9216SAlex Elder .elem_len = 1, 381530f9216SAlex Elder .elem_size = 382530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 383530f9216SAlex Elder skip_uc_load_valid), 384530f9216SAlex Elder .tlv_type = 0x18, 385530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 386530f9216SAlex Elder skip_uc_load_valid), 387530f9216SAlex Elder }, 388530f9216SAlex Elder { 389530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 390530f9216SAlex Elder .elem_len = 1, 391530f9216SAlex Elder .elem_size = 392530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 393530f9216SAlex Elder skip_uc_load), 394530f9216SAlex Elder .tlv_type = 0x18, 395530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 396530f9216SAlex Elder skip_uc_load), 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 hdr_proc_ctx_tbl_info_valid), 404530f9216SAlex Elder .tlv_type = 0x19, 405530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 406530f9216SAlex Elder hdr_proc_ctx_tbl_info_valid), 407530f9216SAlex Elder }, 408530f9216SAlex Elder { 409530f9216SAlex Elder .data_type = QMI_STRUCT, 410530f9216SAlex Elder .elem_len = 1, 411530f9216SAlex Elder .elem_size = 412530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 413530f9216SAlex Elder hdr_proc_ctx_tbl_info), 414530f9216SAlex Elder .tlv_type = 0x19, 415530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 416530f9216SAlex Elder hdr_proc_ctx_tbl_info), 417530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 418530f9216SAlex Elder }, 419530f9216SAlex Elder { 420530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 421530f9216SAlex Elder .elem_len = 1, 422530f9216SAlex Elder .elem_size = 423530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 424530f9216SAlex Elder zip_tbl_info_valid), 425530f9216SAlex Elder .tlv_type = 0x1a, 426530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 427530f9216SAlex Elder zip_tbl_info_valid), 428530f9216SAlex Elder }, 429530f9216SAlex Elder { 430530f9216SAlex Elder .data_type = QMI_STRUCT, 431530f9216SAlex Elder .elem_len = 1, 432530f9216SAlex Elder .elem_size = 433530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 434530f9216SAlex Elder zip_tbl_info), 435530f9216SAlex Elder .tlv_type = 0x1a, 436530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 437530f9216SAlex Elder zip_tbl_info), 438530f9216SAlex Elder .ei_array = ipa_mem_bounds_ei, 439530f9216SAlex Elder }, 440530f9216SAlex Elder { 441530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 442530f9216SAlex Elder .elem_len = 1, 443530f9216SAlex Elder .elem_size = 444530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 445530f9216SAlex Elder v4_hash_route_tbl_info_valid), 446530f9216SAlex Elder .tlv_type = 0x1b, 447530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 448530f9216SAlex Elder v4_hash_route_tbl_info_valid), 449530f9216SAlex Elder }, 450530f9216SAlex Elder { 451530f9216SAlex Elder .data_type = QMI_STRUCT, 452530f9216SAlex Elder .elem_len = 1, 453530f9216SAlex Elder .elem_size = 454530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 455530f9216SAlex Elder v4_hash_route_tbl_info), 456530f9216SAlex Elder .tlv_type = 0x1b, 457530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 458530f9216SAlex Elder v4_hash_route_tbl_info), 459530f9216SAlex Elder .ei_array = ipa_mem_array_ei, 460530f9216SAlex Elder }, 461530f9216SAlex Elder { 462530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 463530f9216SAlex Elder .elem_len = 1, 464530f9216SAlex Elder .elem_size = 465530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 466530f9216SAlex Elder v6_hash_route_tbl_info_valid), 467530f9216SAlex Elder .tlv_type = 0x1c, 468530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 469530f9216SAlex Elder v6_hash_route_tbl_info_valid), 470530f9216SAlex Elder }, 471530f9216SAlex Elder { 472530f9216SAlex Elder .data_type = QMI_STRUCT, 473530f9216SAlex Elder .elem_len = 1, 474530f9216SAlex Elder .elem_size = 475530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 476530f9216SAlex Elder v6_hash_route_tbl_info), 477530f9216SAlex Elder .tlv_type = 0x1c, 478530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 479530f9216SAlex Elder v6_hash_route_tbl_info), 480530f9216SAlex Elder .ei_array = ipa_mem_array_ei, 481530f9216SAlex Elder }, 482530f9216SAlex Elder { 483530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 484530f9216SAlex Elder .elem_len = 1, 485530f9216SAlex Elder .elem_size = 486530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 487530f9216SAlex Elder v4_hash_filter_tbl_start_valid), 488530f9216SAlex Elder .tlv_type = 0x1d, 489530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 490530f9216SAlex Elder v4_hash_filter_tbl_start_valid), 491530f9216SAlex Elder }, 492530f9216SAlex Elder { 493530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 494530f9216SAlex Elder .elem_len = 1, 495530f9216SAlex Elder .elem_size = 496530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 497530f9216SAlex Elder v4_hash_filter_tbl_start), 498530f9216SAlex Elder .tlv_type = 0x1d, 499530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 500530f9216SAlex Elder v4_hash_filter_tbl_start), 501530f9216SAlex Elder }, 502530f9216SAlex Elder { 503530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 504530f9216SAlex Elder .elem_len = 1, 505530f9216SAlex Elder .elem_size = 506530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 507530f9216SAlex Elder v6_hash_filter_tbl_start_valid), 508530f9216SAlex Elder .tlv_type = 0x1e, 509530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 510530f9216SAlex Elder v6_hash_filter_tbl_start_valid), 511530f9216SAlex Elder }, 512530f9216SAlex Elder { 513530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 514530f9216SAlex Elder .elem_len = 1, 515530f9216SAlex Elder .elem_size = 516530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 517530f9216SAlex Elder v6_hash_filter_tbl_start), 518530f9216SAlex Elder .tlv_type = 0x1e, 519530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 520530f9216SAlex Elder v6_hash_filter_tbl_start), 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 hw_stats_quota_base_addr_valid), 528530f9216SAlex Elder .tlv_type = 0x1f, 529530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 530530f9216SAlex Elder hw_stats_quota_base_addr_valid), 531530f9216SAlex Elder }, 532530f9216SAlex Elder { 533*7ac629e3SAlex 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 hw_stats_quota_base_addr), 538530f9216SAlex Elder .tlv_type = 0x1f, 539530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 540530f9216SAlex Elder hw_stats_quota_base_addr), 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 hw_stats_quota_size_valid), 548*7ac629e3SAlex Elder .tlv_type = 0x20, 549530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 550530f9216SAlex Elder hw_stats_quota_size_valid), 551530f9216SAlex Elder }, 552530f9216SAlex Elder { 553*7ac629e3SAlex 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 hw_stats_quota_size), 558*7ac629e3SAlex Elder .tlv_type = 0x20, 559530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 560530f9216SAlex Elder hw_stats_quota_size), 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, 567*7ac629e3SAlex Elder hw_stats_drop_base_addr_valid), 568*7ac629e3SAlex Elder .tlv_type = 0x21, 569*7ac629e3SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 570*7ac629e3SAlex Elder hw_stats_drop_base_addr_valid), 571*7ac629e3SAlex Elder }, 572*7ac629e3SAlex Elder { 573*7ac629e3SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 574*7ac629e3SAlex Elder .elem_len = 1, 575*7ac629e3SAlex Elder .elem_size = 576*7ac629e3SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 577*7ac629e3SAlex Elder hw_stats_drop_base_addr), 578*7ac629e3SAlex Elder .tlv_type = 0x21, 579*7ac629e3SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 580*7ac629e3SAlex Elder hw_stats_drop_base_addr), 581*7ac629e3SAlex Elder }, 582*7ac629e3SAlex Elder { 583*7ac629e3SAlex Elder .data_type = QMI_OPT_FLAG, 584*7ac629e3SAlex Elder .elem_len = 1, 585*7ac629e3SAlex Elder .elem_size = 586*7ac629e3SAlex Elder sizeof_field(struct ipa_init_modem_driver_req, 587530f9216SAlex Elder hw_stats_drop_size_valid), 588*7ac629e3SAlex Elder .tlv_type = 0x22, 589530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 590530f9216SAlex Elder hw_stats_drop_size_valid), 591530f9216SAlex Elder }, 592530f9216SAlex Elder { 593*7ac629e3SAlex 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_drop_size), 598*7ac629e3SAlex Elder .tlv_type = 0x22, 599530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_req, 600530f9216SAlex Elder hw_stats_drop_size), 601530f9216SAlex Elder }, 602530f9216SAlex Elder { 603530f9216SAlex Elder .data_type = QMI_EOTI, 604530f9216SAlex Elder }, 605530f9216SAlex Elder }; 606530f9216SAlex Elder 607530f9216SAlex Elder /* QMI message structure definition for struct ipa_init_modem_driver_rsp */ 608530f9216SAlex Elder struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = { 609530f9216SAlex Elder { 610530f9216SAlex Elder .data_type = QMI_STRUCT, 611530f9216SAlex Elder .elem_len = 1, 612530f9216SAlex Elder .elem_size = 613530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 614530f9216SAlex Elder rsp), 615530f9216SAlex Elder .tlv_type = 0x02, 616530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 617530f9216SAlex Elder rsp), 618530f9216SAlex Elder .ei_array = qmi_response_type_v01_ei, 619530f9216SAlex Elder }, 620530f9216SAlex Elder { 621530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 622530f9216SAlex Elder .elem_len = 1, 623530f9216SAlex Elder .elem_size = 624530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 625530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 626530f9216SAlex Elder .tlv_type = 0x10, 627530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 628530f9216SAlex Elder ctrl_comm_dest_end_pt_valid), 629530f9216SAlex Elder }, 630530f9216SAlex Elder { 631530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 632530f9216SAlex Elder .elem_len = 1, 633530f9216SAlex Elder .elem_size = 634530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 635530f9216SAlex Elder ctrl_comm_dest_end_pt), 636530f9216SAlex Elder .tlv_type = 0x10, 637530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 638530f9216SAlex Elder ctrl_comm_dest_end_pt), 639530f9216SAlex Elder }, 640530f9216SAlex Elder { 641530f9216SAlex Elder .data_type = QMI_OPT_FLAG, 642530f9216SAlex Elder .elem_len = 1, 643530f9216SAlex Elder .elem_size = 644530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 645530f9216SAlex Elder default_end_pt_valid), 646530f9216SAlex Elder .tlv_type = 0x11, 647530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 648530f9216SAlex Elder default_end_pt_valid), 649530f9216SAlex Elder }, 650530f9216SAlex Elder { 651530f9216SAlex Elder .data_type = QMI_UNSIGNED_4_BYTE, 652530f9216SAlex Elder .elem_len = 1, 653530f9216SAlex Elder .elem_size = 654530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 655530f9216SAlex Elder default_end_pt), 656530f9216SAlex Elder .tlv_type = 0x11, 657530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 658530f9216SAlex Elder default_end_pt), 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 modem_driver_init_pending_valid), 666530f9216SAlex Elder .tlv_type = 0x12, 667530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 668530f9216SAlex Elder modem_driver_init_pending_valid), 669530f9216SAlex Elder }, 670530f9216SAlex Elder { 671530f9216SAlex Elder .data_type = QMI_UNSIGNED_1_BYTE, 672530f9216SAlex Elder .elem_len = 1, 673530f9216SAlex Elder .elem_size = 674530f9216SAlex Elder sizeof_field(struct ipa_init_modem_driver_rsp, 675530f9216SAlex Elder modem_driver_init_pending), 676530f9216SAlex Elder .tlv_type = 0x12, 677530f9216SAlex Elder .offset = offsetof(struct ipa_init_modem_driver_rsp, 678530f9216SAlex Elder modem_driver_init_pending), 679530f9216SAlex Elder }, 680530f9216SAlex Elder { 681530f9216SAlex Elder .data_type = QMI_EOTI, 682530f9216SAlex Elder }, 683530f9216SAlex Elder }; 684