1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2024 Linaro Ltd.
6 #include <linux/stddef.h>
8 #include <linux/soc/qcom/qmi.h>
10 #include "ipa_qmi_msg.h"
12 /* QMI message structure definition for struct ipa_indication_register_req */
13 const struct qmi_elem_info ipa_indication_register_req_ei[] = {
15 .data_type = QMI_OPT_FLAG,
18 sizeof_field(struct ipa_indication_register_req,
19 master_driver_init_complete_valid),
21 .offset = offsetof(struct ipa_indication_register_req,
22 master_driver_init_complete_valid),
25 .data_type = QMI_UNSIGNED_1_BYTE,
28 sizeof_field(struct ipa_indication_register_req,
29 master_driver_init_complete),
31 .offset = offsetof(struct ipa_indication_register_req,
32 master_driver_init_complete),
35 .data_type = QMI_OPT_FLAG,
38 sizeof_field(struct ipa_indication_register_req,
39 data_usage_quota_reached_valid),
41 .offset = offsetof(struct ipa_indication_register_req,
42 data_usage_quota_reached_valid),
45 .data_type = QMI_UNSIGNED_1_BYTE,
48 sizeof_field(struct ipa_indication_register_req,
49 data_usage_quota_reached),
51 .offset = offsetof(struct ipa_indication_register_req,
52 data_usage_quota_reached),
55 .data_type = QMI_OPT_FLAG,
58 sizeof_field(struct ipa_indication_register_req,
59 ipa_mhi_ready_ind_valid),
61 .offset = offsetof(struct ipa_indication_register_req,
62 ipa_mhi_ready_ind_valid),
65 .data_type = QMI_UNSIGNED_1_BYTE,
68 sizeof_field(struct ipa_indication_register_req,
71 .offset = offsetof(struct ipa_indication_register_req,
75 .data_type = QMI_OPT_FLAG,
78 sizeof_field(struct ipa_indication_register_req,
79 endpoint_desc_ind_valid),
81 .offset = offsetof(struct ipa_indication_register_req,
82 endpoint_desc_ind_valid),
85 .data_type = QMI_UNSIGNED_1_BYTE,
88 sizeof_field(struct ipa_indication_register_req,
91 .offset = offsetof(struct ipa_indication_register_req,
95 .data_type = QMI_OPT_FLAG,
98 sizeof_field(struct ipa_indication_register_req,
101 .offset = offsetof(struct ipa_indication_register_req,
102 bw_change_ind_valid),
105 .data_type = QMI_UNSIGNED_1_BYTE,
108 sizeof_field(struct ipa_indication_register_req,
111 .offset = offsetof(struct ipa_indication_register_req,
115 .data_type = QMI_EOTI,
119 /* QMI message structure definition for struct ipa_indication_register_rsp */
120 const struct qmi_elem_info ipa_indication_register_rsp_ei[] = {
122 .data_type = QMI_STRUCT,
125 sizeof_field(struct ipa_indication_register_rsp,
128 .offset = offsetof(struct ipa_indication_register_rsp,
130 .ei_array = qmi_response_type_v01_ei,
133 .data_type = QMI_EOTI,
137 /* QMI message structure definition for struct ipa_driver_init_complete_req */
138 const struct qmi_elem_info ipa_driver_init_complete_req_ei[] = {
140 .data_type = QMI_UNSIGNED_1_BYTE,
143 sizeof_field(struct ipa_driver_init_complete_req,
146 .offset = offsetof(struct ipa_driver_init_complete_req,
150 .data_type = QMI_EOTI,
154 /* QMI message structure definition for struct ipa_driver_init_complete_rsp */
155 const struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = {
157 .data_type = QMI_STRUCT,
160 sizeof_field(struct ipa_driver_init_complete_rsp,
163 .offset = offsetof(struct ipa_driver_init_complete_rsp,
165 .ei_array = qmi_response_type_v01_ei,
168 .data_type = QMI_EOTI,
172 /* QMI message structure definition for struct ipa_init_complete_ind */
173 const struct qmi_elem_info ipa_init_complete_ind_ei[] = {
175 .data_type = QMI_STRUCT,
178 sizeof_field(struct ipa_init_complete_ind,
181 .offset = offsetof(struct ipa_init_complete_ind,
183 .ei_array = qmi_response_type_v01_ei,
186 .data_type = QMI_EOTI,
190 /* QMI message structure definition for struct ipa_mem_bounds */
191 const struct qmi_elem_info ipa_mem_bounds_ei[] = {
193 .data_type = QMI_UNSIGNED_4_BYTE,
196 sizeof_field(struct ipa_mem_bounds, start),
197 .offset = offsetof(struct ipa_mem_bounds, start),
200 .data_type = QMI_UNSIGNED_4_BYTE,
203 sizeof_field(struct ipa_mem_bounds, end),
204 .offset = offsetof(struct ipa_mem_bounds, end),
207 .data_type = QMI_EOTI,
211 /* QMI message structure definition for struct ipa_mem_array */
212 const struct qmi_elem_info ipa_mem_array_ei[] = {
214 .data_type = QMI_UNSIGNED_4_BYTE,
217 sizeof_field(struct ipa_mem_array, start),
218 .offset = offsetof(struct ipa_mem_array, start),
221 .data_type = QMI_UNSIGNED_4_BYTE,
224 sizeof_field(struct ipa_mem_array, count),
225 .offset = offsetof(struct ipa_mem_array, count),
228 .data_type = QMI_EOTI,
232 /* QMI message structure definition for struct ipa_mem_range */
233 const struct qmi_elem_info ipa_mem_range_ei[] = {
235 .data_type = QMI_UNSIGNED_4_BYTE,
238 sizeof_field(struct ipa_mem_range, start),
239 .offset = offsetof(struct ipa_mem_range, start),
242 .data_type = QMI_UNSIGNED_4_BYTE,
245 sizeof_field(struct ipa_mem_range, size),
246 .offset = offsetof(struct ipa_mem_range, size),
249 .data_type = QMI_EOTI,
253 /* QMI message structure definition for struct ipa_init_modem_driver_req */
254 const struct qmi_elem_info ipa_init_modem_driver_req_ei[] = {
256 .data_type = QMI_OPT_FLAG,
259 sizeof_field(struct ipa_init_modem_driver_req,
260 platform_type_valid),
262 .offset = offsetof(struct ipa_init_modem_driver_req,
263 platform_type_valid),
266 .data_type = QMI_SIGNED_4_BYTE_ENUM,
269 sizeof_field(struct ipa_init_modem_driver_req,
272 .offset = offsetof(struct ipa_init_modem_driver_req,
276 .data_type = QMI_OPT_FLAG,
279 sizeof_field(struct ipa_init_modem_driver_req,
282 .offset = offsetof(struct ipa_init_modem_driver_req,
286 .data_type = QMI_STRUCT,
289 sizeof_field(struct ipa_init_modem_driver_req,
292 .offset = offsetof(struct ipa_init_modem_driver_req,
294 .ei_array = ipa_mem_bounds_ei,
297 .data_type = QMI_OPT_FLAG,
300 sizeof_field(struct ipa_init_modem_driver_req,
301 v4_route_tbl_info_valid),
303 .offset = offsetof(struct ipa_init_modem_driver_req,
304 v4_route_tbl_info_valid),
307 .data_type = QMI_STRUCT,
310 sizeof_field(struct ipa_init_modem_driver_req,
313 .offset = offsetof(struct ipa_init_modem_driver_req,
315 .ei_array = ipa_mem_bounds_ei,
318 .data_type = QMI_OPT_FLAG,
321 sizeof_field(struct ipa_init_modem_driver_req,
322 v6_route_tbl_info_valid),
324 .offset = offsetof(struct ipa_init_modem_driver_req,
325 v6_route_tbl_info_valid),
328 .data_type = QMI_STRUCT,
331 sizeof_field(struct ipa_init_modem_driver_req,
334 .offset = offsetof(struct ipa_init_modem_driver_req,
336 .ei_array = ipa_mem_bounds_ei,
339 .data_type = QMI_OPT_FLAG,
342 sizeof_field(struct ipa_init_modem_driver_req,
343 v4_filter_tbl_start_valid),
345 .offset = offsetof(struct ipa_init_modem_driver_req,
346 v4_filter_tbl_start_valid),
349 .data_type = QMI_UNSIGNED_4_BYTE,
352 sizeof_field(struct ipa_init_modem_driver_req,
353 v4_filter_tbl_start),
355 .offset = offsetof(struct ipa_init_modem_driver_req,
356 v4_filter_tbl_start),
359 .data_type = QMI_OPT_FLAG,
362 sizeof_field(struct ipa_init_modem_driver_req,
363 v6_filter_tbl_start_valid),
365 .offset = offsetof(struct ipa_init_modem_driver_req,
366 v6_filter_tbl_start_valid),
369 .data_type = QMI_UNSIGNED_4_BYTE,
372 sizeof_field(struct ipa_init_modem_driver_req,
373 v6_filter_tbl_start),
375 .offset = offsetof(struct ipa_init_modem_driver_req,
376 v6_filter_tbl_start),
379 .data_type = QMI_OPT_FLAG,
382 sizeof_field(struct ipa_init_modem_driver_req,
383 modem_mem_info_valid),
385 .offset = offsetof(struct ipa_init_modem_driver_req,
386 modem_mem_info_valid),
389 .data_type = QMI_STRUCT,
392 sizeof_field(struct ipa_init_modem_driver_req,
395 .offset = offsetof(struct ipa_init_modem_driver_req,
397 .ei_array = ipa_mem_range_ei,
400 .data_type = QMI_OPT_FLAG,
403 sizeof_field(struct ipa_init_modem_driver_req,
404 ctrl_comm_dest_end_pt_valid),
406 .offset = offsetof(struct ipa_init_modem_driver_req,
407 ctrl_comm_dest_end_pt_valid),
410 .data_type = QMI_UNSIGNED_4_BYTE,
413 sizeof_field(struct ipa_init_modem_driver_req,
414 ctrl_comm_dest_end_pt),
416 .offset = offsetof(struct ipa_init_modem_driver_req,
417 ctrl_comm_dest_end_pt),
420 .data_type = QMI_OPT_FLAG,
423 sizeof_field(struct ipa_init_modem_driver_req,
426 .offset = offsetof(struct ipa_init_modem_driver_req,
430 .data_type = QMI_UNSIGNED_1_BYTE,
433 sizeof_field(struct ipa_init_modem_driver_req,
436 .offset = offsetof(struct ipa_init_modem_driver_req,
440 .data_type = QMI_OPT_FLAG,
443 sizeof_field(struct ipa_init_modem_driver_req,
444 hdr_proc_ctx_tbl_info_valid),
446 .offset = offsetof(struct ipa_init_modem_driver_req,
447 hdr_proc_ctx_tbl_info_valid),
450 .data_type = QMI_STRUCT,
453 sizeof_field(struct ipa_init_modem_driver_req,
454 hdr_proc_ctx_tbl_info),
456 .offset = offsetof(struct ipa_init_modem_driver_req,
457 hdr_proc_ctx_tbl_info),
458 .ei_array = ipa_mem_bounds_ei,
461 .data_type = QMI_OPT_FLAG,
464 sizeof_field(struct ipa_init_modem_driver_req,
467 .offset = offsetof(struct ipa_init_modem_driver_req,
471 .data_type = QMI_STRUCT,
474 sizeof_field(struct ipa_init_modem_driver_req,
477 .offset = offsetof(struct ipa_init_modem_driver_req,
479 .ei_array = ipa_mem_bounds_ei,
482 .data_type = QMI_OPT_FLAG,
485 sizeof_field(struct ipa_init_modem_driver_req,
486 v4_hash_route_tbl_info_valid),
488 .offset = offsetof(struct ipa_init_modem_driver_req,
489 v4_hash_route_tbl_info_valid),
492 .data_type = QMI_STRUCT,
495 sizeof_field(struct ipa_init_modem_driver_req,
496 v4_hash_route_tbl_info),
498 .offset = offsetof(struct ipa_init_modem_driver_req,
499 v4_hash_route_tbl_info),
500 .ei_array = ipa_mem_bounds_ei,
503 .data_type = QMI_OPT_FLAG,
506 sizeof_field(struct ipa_init_modem_driver_req,
507 v6_hash_route_tbl_info_valid),
509 .offset = offsetof(struct ipa_init_modem_driver_req,
510 v6_hash_route_tbl_info_valid),
513 .data_type = QMI_STRUCT,
516 sizeof_field(struct ipa_init_modem_driver_req,
517 v6_hash_route_tbl_info),
519 .offset = offsetof(struct ipa_init_modem_driver_req,
520 v6_hash_route_tbl_info),
521 .ei_array = ipa_mem_bounds_ei,
524 .data_type = QMI_OPT_FLAG,
527 sizeof_field(struct ipa_init_modem_driver_req,
528 v4_hash_filter_tbl_start_valid),
530 .offset = offsetof(struct ipa_init_modem_driver_req,
531 v4_hash_filter_tbl_start_valid),
534 .data_type = QMI_UNSIGNED_4_BYTE,
537 sizeof_field(struct ipa_init_modem_driver_req,
538 v4_hash_filter_tbl_start),
540 .offset = offsetof(struct ipa_init_modem_driver_req,
541 v4_hash_filter_tbl_start),
544 .data_type = QMI_OPT_FLAG,
547 sizeof_field(struct ipa_init_modem_driver_req,
548 v6_hash_filter_tbl_start_valid),
550 .offset = offsetof(struct ipa_init_modem_driver_req,
551 v6_hash_filter_tbl_start_valid),
554 .data_type = QMI_UNSIGNED_4_BYTE,
557 sizeof_field(struct ipa_init_modem_driver_req,
558 v6_hash_filter_tbl_start),
560 .offset = offsetof(struct ipa_init_modem_driver_req,
561 v6_hash_filter_tbl_start),
564 .data_type = QMI_OPT_FLAG,
567 sizeof_field(struct ipa_init_modem_driver_req,
568 hw_stats_quota_base_addr_valid),
570 .offset = offsetof(struct ipa_init_modem_driver_req,
571 hw_stats_quota_base_addr_valid),
574 .data_type = QMI_UNSIGNED_4_BYTE,
577 sizeof_field(struct ipa_init_modem_driver_req,
578 hw_stats_quota_base_addr),
580 .offset = offsetof(struct ipa_init_modem_driver_req,
581 hw_stats_quota_base_addr),
584 .data_type = QMI_OPT_FLAG,
587 sizeof_field(struct ipa_init_modem_driver_req,
588 hw_stats_quota_size_valid),
590 .offset = offsetof(struct ipa_init_modem_driver_req,
591 hw_stats_quota_size_valid),
594 .data_type = QMI_UNSIGNED_4_BYTE,
597 sizeof_field(struct ipa_init_modem_driver_req,
598 hw_stats_quota_size),
600 .offset = offsetof(struct ipa_init_modem_driver_req,
601 hw_stats_quota_size),
604 .data_type = QMI_OPT_FLAG,
607 sizeof_field(struct ipa_init_modem_driver_req,
608 hw_stats_drop_base_addr_valid),
610 .offset = offsetof(struct ipa_init_modem_driver_req,
611 hw_stats_drop_base_addr_valid),
614 .data_type = QMI_UNSIGNED_4_BYTE,
617 sizeof_field(struct ipa_init_modem_driver_req,
618 hw_stats_drop_base_addr),
620 .offset = offsetof(struct ipa_init_modem_driver_req,
621 hw_stats_drop_base_addr),
624 .data_type = QMI_OPT_FLAG,
627 sizeof_field(struct ipa_init_modem_driver_req,
628 hw_stats_drop_size_valid),
630 .offset = offsetof(struct ipa_init_modem_driver_req,
631 hw_stats_drop_size_valid),
634 .data_type = QMI_UNSIGNED_4_BYTE,
637 sizeof_field(struct ipa_init_modem_driver_req,
640 .offset = offsetof(struct ipa_init_modem_driver_req,
644 .data_type = QMI_EOTI,
648 /* QMI message structure definition for struct ipa_init_modem_driver_rsp */
649 const struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = {
651 .data_type = QMI_STRUCT,
654 sizeof_field(struct ipa_init_modem_driver_rsp,
657 .offset = offsetof(struct ipa_init_modem_driver_rsp,
659 .ei_array = qmi_response_type_v01_ei,
662 .data_type = QMI_OPT_FLAG,
665 sizeof_field(struct ipa_init_modem_driver_rsp,
666 ctrl_comm_dest_end_pt_valid),
668 .offset = offsetof(struct ipa_init_modem_driver_rsp,
669 ctrl_comm_dest_end_pt_valid),
672 .data_type = QMI_UNSIGNED_4_BYTE,
675 sizeof_field(struct ipa_init_modem_driver_rsp,
676 ctrl_comm_dest_end_pt),
678 .offset = offsetof(struct ipa_init_modem_driver_rsp,
679 ctrl_comm_dest_end_pt),
682 .data_type = QMI_OPT_FLAG,
685 sizeof_field(struct ipa_init_modem_driver_rsp,
686 default_end_pt_valid),
688 .offset = offsetof(struct ipa_init_modem_driver_rsp,
689 default_end_pt_valid),
692 .data_type = QMI_UNSIGNED_4_BYTE,
695 sizeof_field(struct ipa_init_modem_driver_rsp,
698 .offset = offsetof(struct ipa_init_modem_driver_rsp,
702 .data_type = QMI_OPT_FLAG,
705 sizeof_field(struct ipa_init_modem_driver_rsp,
706 modem_driver_init_pending_valid),
708 .offset = offsetof(struct ipa_init_modem_driver_rsp,
709 modem_driver_init_pending_valid),
712 .data_type = QMI_UNSIGNED_1_BYTE,
715 sizeof_field(struct ipa_init_modem_driver_rsp,
716 modem_driver_init_pending),
718 .offset = offsetof(struct ipa_init_modem_driver_rsp,
719 modem_driver_init_pending),
722 .data_type = QMI_EOTI,