Linux Audio

Check our new training course

Loading...
v6.8
  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};
v6.13.7
  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};