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};
v5.9
  1// SPDX-License-Identifier: GPL-2.0
  2
  3/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
  4 * Copyright (C) 2018-2020 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 */
 12struct 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	= 0x11,
 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	= 0x11,
 70		.offset		= offsetof(struct ipa_indication_register_req,
 71					   ipa_mhi_ready_ind),
 72	},
 73	{
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 74		.data_type	= QMI_EOTI,
 75	},
 76};
 77
 78/* QMI message structure definition for struct ipa_indication_register_rsp */
 79struct qmi_elem_info ipa_indication_register_rsp_ei[] = {
 80	{
 81		.data_type	= QMI_STRUCT,
 82		.elem_len	= 1,
 83		.elem_size	=
 84			sizeof_field(struct ipa_indication_register_rsp,
 85				     rsp),
 86		.tlv_type	= 0x02,
 87		.offset		= offsetof(struct ipa_indication_register_rsp,
 88					   rsp),
 89		.ei_array	= qmi_response_type_v01_ei,
 90	},
 91	{
 92		.data_type	= QMI_EOTI,
 93	},
 94};
 95
 96/* QMI message structure definition for struct ipa_driver_init_complete_req */
 97struct qmi_elem_info ipa_driver_init_complete_req_ei[] = {
 98	{
 99		.data_type	= QMI_UNSIGNED_1_BYTE,
100		.elem_len	= 1,
101		.elem_size	=
102			sizeof_field(struct ipa_driver_init_complete_req,
103				     status),
104		.tlv_type	= 0x01,
105		.offset		= offsetof(struct ipa_driver_init_complete_req,
106					   status),
107	},
108	{
109		.data_type	= QMI_EOTI,
110	},
111};
112
113/* QMI message structure definition for struct ipa_driver_init_complete_rsp */
114struct qmi_elem_info ipa_driver_init_complete_rsp_ei[] = {
115	{
116		.data_type	= QMI_STRUCT,
117		.elem_len	= 1,
118		.elem_size	=
119			sizeof_field(struct ipa_driver_init_complete_rsp,
120				     rsp),
121		.tlv_type	= 0x02,
122		.offset		= offsetof(struct ipa_driver_init_complete_rsp,
123					   rsp),
124		.ei_array	= qmi_response_type_v01_ei,
125	},
126	{
127		.data_type	= QMI_EOTI,
128	},
129};
130
131/* QMI message structure definition for struct ipa_init_complete_ind */
132struct qmi_elem_info ipa_init_complete_ind_ei[] = {
133	{
134		.data_type	= QMI_STRUCT,
135		.elem_len	= 1,
136		.elem_size	=
137			sizeof_field(struct ipa_init_complete_ind,
138				     status),
139		.tlv_type	= 0x02,
140		.offset		= offsetof(struct ipa_init_complete_ind,
141					   status),
142		.ei_array	= qmi_response_type_v01_ei,
143	},
144	{
145		.data_type	= QMI_EOTI,
146	},
147};
148
149/* QMI message structure definition for struct ipa_mem_bounds */
150struct qmi_elem_info ipa_mem_bounds_ei[] = {
151	{
152		.data_type	= QMI_UNSIGNED_4_BYTE,
153		.elem_len	= 1,
154		.elem_size	=
155			sizeof_field(struct ipa_mem_bounds, start),
156		.offset		= offsetof(struct ipa_mem_bounds, start),
157	},
158	{
159		.data_type	= QMI_UNSIGNED_4_BYTE,
160		.elem_len	= 1,
161		.elem_size	=
162			sizeof_field(struct ipa_mem_bounds, end),
163		.offset		= offsetof(struct ipa_mem_bounds, end),
164	},
165	{
166		.data_type	= QMI_EOTI,
167	},
168};
169
170/* QMI message structure definition for struct ipa_mem_array */
171struct qmi_elem_info ipa_mem_array_ei[] = {
172	{
173		.data_type	= QMI_UNSIGNED_4_BYTE,
174		.elem_len	= 1,
175		.elem_size	=
176			sizeof_field(struct ipa_mem_array, start),
177		.offset		= offsetof(struct ipa_mem_array, start),
178	},
179	{
180		.data_type	= QMI_UNSIGNED_4_BYTE,
181		.elem_len	= 1,
182		.elem_size	=
183			sizeof_field(struct ipa_mem_array, count),
184		.offset		= offsetof(struct ipa_mem_array, count),
185	},
186	{
187		.data_type	= QMI_EOTI,
188	},
189};
190
191/* QMI message structure definition for struct ipa_mem_range */
192struct qmi_elem_info ipa_mem_range_ei[] = {
193	{
194		.data_type	= QMI_UNSIGNED_4_BYTE,
195		.elem_len	= 1,
196		.elem_size	=
197			sizeof_field(struct ipa_mem_range, start),
198		.offset		= offsetof(struct ipa_mem_range, start),
199	},
200	{
201		.data_type	= QMI_UNSIGNED_4_BYTE,
202		.elem_len	= 1,
203		.elem_size	=
204			sizeof_field(struct ipa_mem_range, size),
205		.offset		= offsetof(struct ipa_mem_range, size),
206	},
207	{
208		.data_type	= QMI_EOTI,
209	},
210};
211
212/* QMI message structure definition for struct ipa_init_modem_driver_req */
213struct qmi_elem_info ipa_init_modem_driver_req_ei[] = {
214	{
215		.data_type	= QMI_OPT_FLAG,
216		.elem_len	= 1,
217		.elem_size	=
218			sizeof_field(struct ipa_init_modem_driver_req,
219				     platform_type_valid),
220		.tlv_type	= 0x10,
221		.offset		= offsetof(struct ipa_init_modem_driver_req,
222					   platform_type_valid),
223	},
224	{
225		.data_type	= QMI_SIGNED_4_BYTE_ENUM,
226		.elem_len	= 1,
227		.elem_size	=
228			sizeof_field(struct ipa_init_modem_driver_req,
229				     platform_type),
230		.tlv_type	= 0x10,
231		.offset		= offsetof(struct ipa_init_modem_driver_req,
232					   platform_type),
233	},
234	{
235		.data_type	= QMI_OPT_FLAG,
236		.elem_len	= 1,
237		.elem_size	=
238			sizeof_field(struct ipa_init_modem_driver_req,
239				     hdr_tbl_info_valid),
240		.tlv_type	= 0x11,
241		.offset		= offsetof(struct ipa_init_modem_driver_req,
242					   hdr_tbl_info_valid),
243	},
244	{
245		.data_type	= QMI_STRUCT,
246		.elem_len	= 1,
247		.elem_size	=
248			sizeof_field(struct ipa_init_modem_driver_req,
249				     hdr_tbl_info),
250		.tlv_type	= 0x11,
251		.offset		= offsetof(struct ipa_init_modem_driver_req,
252					   hdr_tbl_info),
253		.ei_array	= ipa_mem_bounds_ei,
254	},
255	{
256		.data_type	= QMI_OPT_FLAG,
257		.elem_len	= 1,
258		.elem_size	=
259			sizeof_field(struct ipa_init_modem_driver_req,
260				     v4_route_tbl_info_valid),
261		.tlv_type	= 0x12,
262		.offset		= offsetof(struct ipa_init_modem_driver_req,
263					   v4_route_tbl_info_valid),
264	},
265	{
266		.data_type	= QMI_STRUCT,
267		.elem_len	= 1,
268		.elem_size	=
269			sizeof_field(struct ipa_init_modem_driver_req,
270				     v4_route_tbl_info),
271		.tlv_type	= 0x12,
272		.offset		= offsetof(struct ipa_init_modem_driver_req,
273					   v4_route_tbl_info),
274		.ei_array	= ipa_mem_array_ei,
275	},
276	{
277		.data_type	= QMI_OPT_FLAG,
278		.elem_len	= 1,
279		.elem_size	=
280			sizeof_field(struct ipa_init_modem_driver_req,
281				     v6_route_tbl_info_valid),
282		.tlv_type	= 0x13,
283		.offset		= offsetof(struct ipa_init_modem_driver_req,
284					   v6_route_tbl_info_valid),
285	},
286	{
287		.data_type	= QMI_STRUCT,
288		.elem_len	= 1,
289		.elem_size	=
290			sizeof_field(struct ipa_init_modem_driver_req,
291				     v6_route_tbl_info),
292		.tlv_type	= 0x13,
293		.offset		= offsetof(struct ipa_init_modem_driver_req,
294					   v6_route_tbl_info),
295		.ei_array	= ipa_mem_array_ei,
296	},
297	{
298		.data_type	= QMI_OPT_FLAG,
299		.elem_len	= 1,
300		.elem_size	=
301			sizeof_field(struct ipa_init_modem_driver_req,
302				     v4_filter_tbl_start_valid),
303		.tlv_type	= 0x14,
304		.offset		= offsetof(struct ipa_init_modem_driver_req,
305					   v4_filter_tbl_start_valid),
306	},
307	{
308		.data_type	= QMI_UNSIGNED_4_BYTE,
309		.elem_len	= 1,
310		.elem_size	=
311			sizeof_field(struct ipa_init_modem_driver_req,
312				     v4_filter_tbl_start),
313		.tlv_type	= 0x14,
314		.offset		= offsetof(struct ipa_init_modem_driver_req,
315					   v4_filter_tbl_start),
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_filter_tbl_start_valid),
323		.tlv_type	= 0x15,
324		.offset		= offsetof(struct ipa_init_modem_driver_req,
325					   v6_filter_tbl_start_valid),
326	},
327	{
328		.data_type	= QMI_UNSIGNED_4_BYTE,
329		.elem_len	= 1,
330		.elem_size	=
331			sizeof_field(struct ipa_init_modem_driver_req,
332				     v6_filter_tbl_start),
333		.tlv_type	= 0x15,
334		.offset		= offsetof(struct ipa_init_modem_driver_req,
335					   v6_filter_tbl_start),
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				     modem_mem_info_valid),
343		.tlv_type	= 0x16,
344		.offset		= offsetof(struct ipa_init_modem_driver_req,
345					   modem_mem_info_valid),
346	},
347	{
348		.data_type	= QMI_STRUCT,
349		.elem_len	= 1,
350		.elem_size	=
351			sizeof_field(struct ipa_init_modem_driver_req,
352				     modem_mem_info),
353		.tlv_type	= 0x16,
354		.offset		= offsetof(struct ipa_init_modem_driver_req,
355					   modem_mem_info),
356		.ei_array	= ipa_mem_range_ei,
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				     ctrl_comm_dest_end_pt_valid),
364		.tlv_type	= 0x17,
365		.offset		= offsetof(struct ipa_init_modem_driver_req,
366					   ctrl_comm_dest_end_pt_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				     ctrl_comm_dest_end_pt),
374		.tlv_type	= 0x17,
375		.offset		= offsetof(struct ipa_init_modem_driver_req,
376					   ctrl_comm_dest_end_pt),
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				     skip_uc_load_valid),
384		.tlv_type	= 0x18,
385		.offset		= offsetof(struct ipa_init_modem_driver_req,
386					   skip_uc_load_valid),
387	},
388	{
389		.data_type	= QMI_UNSIGNED_1_BYTE,
390		.elem_len	= 1,
391		.elem_size	=
392			sizeof_field(struct ipa_init_modem_driver_req,
393				     skip_uc_load),
394		.tlv_type	= 0x18,
395		.offset		= offsetof(struct ipa_init_modem_driver_req,
396					   skip_uc_load),
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				     hdr_proc_ctx_tbl_info_valid),
404		.tlv_type	= 0x19,
405		.offset		= offsetof(struct ipa_init_modem_driver_req,
406					   hdr_proc_ctx_tbl_info_valid),
407	},
408	{
409		.data_type	= QMI_STRUCT,
410		.elem_len	= 1,
411		.elem_size	=
412			sizeof_field(struct ipa_init_modem_driver_req,
413				     hdr_proc_ctx_tbl_info),
414		.tlv_type	= 0x19,
415		.offset		= offsetof(struct ipa_init_modem_driver_req,
416					   hdr_proc_ctx_tbl_info),
417		.ei_array	= ipa_mem_bounds_ei,
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				     zip_tbl_info_valid),
425		.tlv_type	= 0x1a,
426		.offset		= offsetof(struct ipa_init_modem_driver_req,
427					   zip_tbl_info_valid),
428	},
429	{
430		.data_type	= QMI_STRUCT,
431		.elem_len	= 1,
432		.elem_size	=
433			sizeof_field(struct ipa_init_modem_driver_req,
434				     zip_tbl_info),
435		.tlv_type	= 0x1a,
436		.offset		= offsetof(struct ipa_init_modem_driver_req,
437					   zip_tbl_info),
438		.ei_array	= ipa_mem_bounds_ei,
439	},
440	{
441		.data_type	= QMI_OPT_FLAG,
442		.elem_len	= 1,
443		.elem_size	=
444			sizeof_field(struct ipa_init_modem_driver_req,
445				     v4_hash_route_tbl_info_valid),
446		.tlv_type	= 0x1b,
447		.offset		= offsetof(struct ipa_init_modem_driver_req,
448					   v4_hash_route_tbl_info_valid),
449	},
450	{
451		.data_type	= QMI_STRUCT,
452		.elem_len	= 1,
453		.elem_size	=
454			sizeof_field(struct ipa_init_modem_driver_req,
455				     v4_hash_route_tbl_info),
456		.tlv_type	= 0x1b,
457		.offset		= offsetof(struct ipa_init_modem_driver_req,
458					   v4_hash_route_tbl_info),
459		.ei_array	= ipa_mem_array_ei,
460	},
461	{
462		.data_type	= QMI_OPT_FLAG,
463		.elem_len	= 1,
464		.elem_size	=
465			sizeof_field(struct ipa_init_modem_driver_req,
466				     v6_hash_route_tbl_info_valid),
467		.tlv_type	= 0x1c,
468		.offset		= offsetof(struct ipa_init_modem_driver_req,
469					   v6_hash_route_tbl_info_valid),
470	},
471	{
472		.data_type	= QMI_STRUCT,
473		.elem_len	= 1,
474		.elem_size	=
475			sizeof_field(struct ipa_init_modem_driver_req,
476				     v6_hash_route_tbl_info),
477		.tlv_type	= 0x1c,
478		.offset		= offsetof(struct ipa_init_modem_driver_req,
479					   v6_hash_route_tbl_info),
480		.ei_array	= ipa_mem_array_ei,
481	},
482	{
483		.data_type	= QMI_OPT_FLAG,
484		.elem_len	= 1,
485		.elem_size	=
486			sizeof_field(struct ipa_init_modem_driver_req,
487				     v4_hash_filter_tbl_start_valid),
488		.tlv_type	= 0x1d,
489		.offset		= offsetof(struct ipa_init_modem_driver_req,
490					   v4_hash_filter_tbl_start_valid),
491	},
492	{
493		.data_type	= QMI_UNSIGNED_4_BYTE,
494		.elem_len	= 1,
495		.elem_size	=
496			sizeof_field(struct ipa_init_modem_driver_req,
497				     v4_hash_filter_tbl_start),
498		.tlv_type	= 0x1d,
499		.offset		= offsetof(struct ipa_init_modem_driver_req,
500					   v4_hash_filter_tbl_start),
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_filter_tbl_start_valid),
508		.tlv_type	= 0x1e,
509		.offset		= offsetof(struct ipa_init_modem_driver_req,
510					   v6_hash_filter_tbl_start_valid),
511	},
512	{
513		.data_type	= QMI_UNSIGNED_4_BYTE,
514		.elem_len	= 1,
515		.elem_size	=
516			sizeof_field(struct ipa_init_modem_driver_req,
517				     v6_hash_filter_tbl_start),
518		.tlv_type	= 0x1e,
519		.offset		= offsetof(struct ipa_init_modem_driver_req,
520					   v6_hash_filter_tbl_start),
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				     hw_stats_quota_base_addr_valid),
528		.tlv_type	= 0x1f,
529		.offset		= offsetof(struct ipa_init_modem_driver_req,
530					   hw_stats_quota_base_addr_valid),
531	},
532	{
533		.data_type	= QMI_SIGNED_4_BYTE_ENUM,
534		.elem_len	= 1,
535		.elem_size	=
536			sizeof_field(struct ipa_init_modem_driver_req,
537				     hw_stats_quota_base_addr),
538		.tlv_type	= 0x1f,
539		.offset		= offsetof(struct ipa_init_modem_driver_req,
540					   hw_stats_quota_base_addr),
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				     hw_stats_quota_size_valid),
548		.tlv_type	= 0x1f,
549		.offset		= offsetof(struct ipa_init_modem_driver_req,
550					   hw_stats_quota_size_valid),
551	},
552	{
553		.data_type	= QMI_SIGNED_4_BYTE_ENUM,
554		.elem_len	= 1,
555		.elem_size	=
556			sizeof_field(struct ipa_init_modem_driver_req,
557				     hw_stats_quota_size),
558		.tlv_type	= 0x1f,
559		.offset		= offsetof(struct ipa_init_modem_driver_req,
560					   hw_stats_quota_size),
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_drop_size_valid),
568		.tlv_type	= 0x1f,
569		.offset		= offsetof(struct ipa_init_modem_driver_req,
570					   hw_stats_drop_size_valid),
571	},
572	{
573		.data_type	= QMI_SIGNED_4_BYTE_ENUM,
574		.elem_len	= 1,
575		.elem_size	=
576			sizeof_field(struct ipa_init_modem_driver_req,
577				     hw_stats_drop_size),
578		.tlv_type	= 0x1f,
579		.offset		= offsetof(struct ipa_init_modem_driver_req,
580					   hw_stats_drop_size),
581	},
582	{
583		.data_type	= QMI_EOTI,
584	},
585};
586
587/* QMI message structure definition for struct ipa_init_modem_driver_rsp */
588struct qmi_elem_info ipa_init_modem_driver_rsp_ei[] = {
589	{
590		.data_type	= QMI_STRUCT,
591		.elem_len	= 1,
592		.elem_size	=
593			sizeof_field(struct ipa_init_modem_driver_rsp,
594				     rsp),
595		.tlv_type	= 0x02,
596		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
597					   rsp),
598		.ei_array	= qmi_response_type_v01_ei,
599	},
600	{
601		.data_type	= QMI_OPT_FLAG,
602		.elem_len	= 1,
603		.elem_size	=
604			sizeof_field(struct ipa_init_modem_driver_rsp,
605				     ctrl_comm_dest_end_pt_valid),
606		.tlv_type	= 0x10,
607		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
608					   ctrl_comm_dest_end_pt_valid),
609	},
610	{
611		.data_type	= QMI_UNSIGNED_4_BYTE,
612		.elem_len	= 1,
613		.elem_size	=
614			sizeof_field(struct ipa_init_modem_driver_rsp,
615				     ctrl_comm_dest_end_pt),
616		.tlv_type	= 0x10,
617		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
618					   ctrl_comm_dest_end_pt),
619	},
620	{
621		.data_type	= QMI_OPT_FLAG,
622		.elem_len	= 1,
623		.elem_size	=
624			sizeof_field(struct ipa_init_modem_driver_rsp,
625				     default_end_pt_valid),
626		.tlv_type	= 0x11,
627		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
628					   default_end_pt_valid),
629	},
630	{
631		.data_type	= QMI_UNSIGNED_4_BYTE,
632		.elem_len	= 1,
633		.elem_size	=
634			sizeof_field(struct ipa_init_modem_driver_rsp,
635				     default_end_pt),
636		.tlv_type	= 0x11,
637		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
638					   default_end_pt),
639	},
640	{
641		.data_type	= QMI_OPT_FLAG,
642		.elem_len	= 1,
643		.elem_size	=
644			sizeof_field(struct ipa_init_modem_driver_rsp,
645				     modem_driver_init_pending_valid),
646		.tlv_type	= 0x12,
647		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
648					   modem_driver_init_pending_valid),
649	},
650	{
651		.data_type	= QMI_UNSIGNED_1_BYTE,
652		.elem_len	= 1,
653		.elem_size	=
654			sizeof_field(struct ipa_init_modem_driver_rsp,
655				     modem_driver_init_pending),
656		.tlv_type	= 0x12,
657		.offset		= offsetof(struct ipa_init_modem_driver_rsp,
658					   modem_driver_init_pending),
659	},
660	{
661		.data_type	= QMI_EOTI,
662	},
663};