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
,