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