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