blob: fef7505cad145e626583e3fdb6832e8aa5473201 [file] [log] [blame]
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -08001/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 */
13#include <linux/qmi_encdec.h>
14
15#include <soc/qcom/msm_qmi_interface.h>
16
17#include "usb_audio_qmi_v01.h"
18
19static struct elem_info mem_info_v01_ei[] = {
20 {
21 .data_type = QMI_UNSIGNED_8_BYTE,
22 .elem_len = 1,
23 .elem_size = sizeof(uint64_t),
24 .is_array = NO_ARRAY,
25 .tlv_type = 0,
26 .offset = offsetof(struct mem_info_v01,
27 va),
28 },
29 {
30 .data_type = QMI_UNSIGNED_8_BYTE,
31 .elem_len = 1,
32 .elem_size = sizeof(uint64_t),
33 .is_array = NO_ARRAY,
34 .tlv_type = 0,
35 .offset = offsetof(struct mem_info_v01,
36 pa),
37 },
38 {
39 .data_type = QMI_UNSIGNED_4_BYTE,
40 .elem_len = 1,
41 .elem_size = sizeof(uint32_t),
42 .is_array = NO_ARRAY,
43 .tlv_type = 0,
44 .offset = offsetof(struct mem_info_v01,
45 size),
46 },
47 {
48 .data_type = QMI_EOTI,
49 .is_array = NO_ARRAY,
50 .is_array = QMI_COMMON_TLV_TYPE,
51 },
52};
53
54static struct elem_info apps_mem_info_v01_ei[] = {
55 {
56 .data_type = QMI_STRUCT,
57 .elem_len = 1,
58 .elem_size = sizeof(struct mem_info_v01),
59 .is_array = NO_ARRAY,
60 .tlv_type = 0,
61 .offset = offsetof(struct apps_mem_info_v01,
62 evt_ring),
63 .ei_array = mem_info_v01_ei,
64 },
65 {
66 .data_type = QMI_STRUCT,
67 .elem_len = 1,
68 .elem_size = sizeof(struct mem_info_v01),
69 .is_array = NO_ARRAY,
70 .tlv_type = 0,
71 .offset = offsetof(struct apps_mem_info_v01,
72 tr_data),
73 .ei_array = mem_info_v01_ei,
74 },
75 {
76 .data_type = QMI_STRUCT,
77 .elem_len = 1,
78 .elem_size = sizeof(struct mem_info_v01),
79 .is_array = NO_ARRAY,
80 .tlv_type = 0,
81 .offset = offsetof(struct apps_mem_info_v01,
82 tr_sync),
83 .ei_array = mem_info_v01_ei,
84 },
85 {
86 .data_type = QMI_STRUCT,
87 .elem_len = 1,
88 .elem_size = sizeof(struct mem_info_v01),
89 .is_array = NO_ARRAY,
90 .tlv_type = 0,
91 .offset = offsetof(struct apps_mem_info_v01,
92 xfer_buff),
93 .ei_array = mem_info_v01_ei,
94 },
95 {
96 .data_type = QMI_STRUCT,
97 .elem_len = 1,
98 .elem_size = sizeof(struct mem_info_v01),
99 .is_array = NO_ARRAY,
100 .tlv_type = 0,
101 .offset = offsetof(struct apps_mem_info_v01,
102 dcba),
103 .ei_array = mem_info_v01_ei,
104 },
105 {
106 .data_type = QMI_EOTI,
107 .is_array = NO_ARRAY,
108 .is_array = QMI_COMMON_TLV_TYPE,
109 },
110};
111
112static struct elem_info usb_endpoint_descriptor_v01_ei[] = {
113 {
114 .data_type = QMI_UNSIGNED_1_BYTE,
115 .elem_len = 1,
116 .elem_size = sizeof(uint8_t),
117 .is_array = NO_ARRAY,
118 .tlv_type = 0,
119 .offset = offsetof(struct usb_endpoint_descriptor_v01,
120 bLength),
121 },
122 {
123 .data_type = QMI_UNSIGNED_1_BYTE,
124 .elem_len = 1,
125 .elem_size = sizeof(uint8_t),
126 .is_array = NO_ARRAY,
127 .tlv_type = 0,
128 .offset = offsetof(struct usb_endpoint_descriptor_v01,
129 bDescriptorType),
130 },
131 {
132 .data_type = QMI_UNSIGNED_1_BYTE,
133 .elem_len = 1,
134 .elem_size = sizeof(uint8_t),
135 .is_array = NO_ARRAY,
136 .tlv_type = 0,
137 .offset = offsetof(struct usb_endpoint_descriptor_v01,
138 bEndpointAddress),
139 },
140 {
141 .data_type = QMI_UNSIGNED_1_BYTE,
142 .elem_len = 1,
143 .elem_size = sizeof(uint8_t),
144 .is_array = NO_ARRAY,
145 .tlv_type = 0,
146 .offset = offsetof(struct usb_endpoint_descriptor_v01,
147 bmAttributes),
148 },
149 {
150 .data_type = QMI_UNSIGNED_2_BYTE,
151 .elem_len = 1,
152 .elem_size = sizeof(uint16_t),
153 .is_array = NO_ARRAY,
154 .tlv_type = 0,
155 .offset = offsetof(struct usb_endpoint_descriptor_v01,
156 wMaxPacketSize),
157 },
158 {
159 .data_type = QMI_UNSIGNED_1_BYTE,
160 .elem_len = 1,
161 .elem_size = sizeof(uint8_t),
162 .is_array = NO_ARRAY,
163 .tlv_type = 0,
164 .offset = offsetof(struct usb_endpoint_descriptor_v01,
165 bInterval),
166 },
167 {
168 .data_type = QMI_UNSIGNED_1_BYTE,
169 .elem_len = 1,
170 .elem_size = sizeof(uint8_t),
171 .is_array = NO_ARRAY,
172 .tlv_type = 0,
173 .offset = offsetof(struct usb_endpoint_descriptor_v01,
174 bRefresh),
175 },
176 {
177 .data_type = QMI_UNSIGNED_1_BYTE,
178 .elem_len = 1,
179 .elem_size = sizeof(uint8_t),
180 .is_array = NO_ARRAY,
181 .tlv_type = 0,
182 .offset = offsetof(struct usb_endpoint_descriptor_v01,
183 bSynchAddress),
184 },
185 {
186 .data_type = QMI_EOTI,
187 .is_array = NO_ARRAY,
188 .is_array = QMI_COMMON_TLV_TYPE,
189 },
190};
191
192static struct elem_info usb_interface_descriptor_v01_ei[] = {
193 {
194 .data_type = QMI_UNSIGNED_1_BYTE,
195 .elem_len = 1,
196 .elem_size = sizeof(uint8_t),
197 .is_array = NO_ARRAY,
198 .tlv_type = 0,
199 .offset = offsetof(struct usb_interface_descriptor_v01,
200 bLength),
201 },
202 {
203 .data_type = QMI_UNSIGNED_1_BYTE,
204 .elem_len = 1,
205 .elem_size = sizeof(uint8_t),
206 .is_array = NO_ARRAY,
207 .tlv_type = 0,
208 .offset = offsetof(struct usb_interface_descriptor_v01,
209 bDescriptorType),
210 },
211 {
212 .data_type = QMI_UNSIGNED_1_BYTE,
213 .elem_len = 1,
214 .elem_size = sizeof(uint8_t),
215 .is_array = NO_ARRAY,
216 .tlv_type = 0,
217 .offset = offsetof(struct usb_interface_descriptor_v01,
218 bInterfaceNumber),
219 },
220 {
221 .data_type = QMI_UNSIGNED_1_BYTE,
222 .elem_len = 1,
223 .elem_size = sizeof(uint8_t),
224 .is_array = NO_ARRAY,
225 .tlv_type = 0,
226 .offset = offsetof(struct usb_interface_descriptor_v01,
227 bAlternateSetting),
228 },
229 {
230 .data_type = QMI_UNSIGNED_1_BYTE,
231 .elem_len = 1,
232 .elem_size = sizeof(uint8_t),
233 .is_array = NO_ARRAY,
234 .tlv_type = 0,
235 .offset = offsetof(struct usb_interface_descriptor_v01,
236 bNumEndpoints),
237 },
238 {
239 .data_type = QMI_UNSIGNED_1_BYTE,
240 .elem_len = 1,
241 .elem_size = sizeof(uint8_t),
242 .is_array = NO_ARRAY,
243 .tlv_type = 0,
244 .offset = offsetof(struct usb_interface_descriptor_v01,
245 bInterfaceClass),
246 },
247 {
248 .data_type = QMI_UNSIGNED_1_BYTE,
249 .elem_len = 1,
250 .elem_size = sizeof(uint8_t),
251 .is_array = NO_ARRAY,
252 .tlv_type = 0,
253 .offset = offsetof(struct usb_interface_descriptor_v01,
254 bInterfaceSubClass),
255 },
256 {
257 .data_type = QMI_UNSIGNED_1_BYTE,
258 .elem_len = 1,
259 .elem_size = sizeof(uint8_t),
260 .is_array = NO_ARRAY,
261 .tlv_type = 0,
262 .offset = offsetof(struct usb_interface_descriptor_v01,
263 bInterfaceProtocol),
264 },
265 {
266 .data_type = QMI_UNSIGNED_1_BYTE,
267 .elem_len = 1,
268 .elem_size = sizeof(uint8_t),
269 .is_array = NO_ARRAY,
270 .tlv_type = 0,
271 .offset = offsetof(struct usb_interface_descriptor_v01,
272 iInterface),
273 },
274 {
275 .data_type = QMI_EOTI,
276 .is_array = NO_ARRAY,
277 .is_array = QMI_COMMON_TLV_TYPE,
278 },
279};
280
281struct elem_info qmi_uaudio_stream_req_msg_v01_ei[] = {
282 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800283 .data_type = QMI_UNSIGNED_1_BYTE,
284 .elem_len = 1,
285 .elem_size = sizeof(uint8_t),
286 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700287 .tlv_type = 0x01,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800288 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
289 enable),
290 },
291 {
292 .data_type = QMI_UNSIGNED_4_BYTE,
293 .elem_len = 1,
294 .elem_size = sizeof(uint32_t),
295 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700296 .tlv_type = 0x02,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800297 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
298 usb_token),
299 },
300 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700301 .data_type = QMI_OPT_FLAG,
302 .elem_len = 1,
303 .elem_size = sizeof(uint8_t),
304 .is_array = NO_ARRAY,
305 .tlv_type = 0x10,
306 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
307 audio_format_valid),
308 },
309 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800310 .data_type = QMI_UNSIGNED_4_BYTE,
311 .elem_len = 1,
312 .elem_size = sizeof(uint32_t),
313 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700314 .tlv_type = 0x10,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800315 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
316 audio_format),
317 },
318 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700319 .data_type = QMI_OPT_FLAG,
320 .elem_len = 1,
321 .elem_size = sizeof(uint8_t),
322 .is_array = NO_ARRAY,
323 .tlv_type = 0x11,
324 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
325 number_of_ch_valid),
326 },
327 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800328 .data_type = QMI_UNSIGNED_4_BYTE,
329 .elem_len = 1,
330 .elem_size = sizeof(uint32_t),
331 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700332 .tlv_type = 0x11,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800333 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
334 number_of_ch),
335 },
336 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700337 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800338 .elem_len = 1,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700339 .elem_size = sizeof(uint8_t),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800340 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700341 .tlv_type = 0x12,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800342 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700343 bit_rate_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800344 },
345 {
346 .data_type = QMI_UNSIGNED_4_BYTE,
347 .elem_len = 1,
348 .elem_size = sizeof(uint32_t),
349 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700350 .tlv_type = 0x12,
351 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
352 bit_rate),
353 },
354 {
355 .data_type = QMI_OPT_FLAG,
356 .elem_len = 1,
357 .elem_size = sizeof(uint8_t),
358 .is_array = NO_ARRAY,
359 .tlv_type = 0x13,
360 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
361 xfer_buff_size_valid),
362 },
363 {
364 .data_type = QMI_UNSIGNED_4_BYTE,
365 .elem_len = 1,
366 .elem_size = sizeof(uint32_t),
367 .is_array = NO_ARRAY,
368 .tlv_type = 0x13,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800369 .offset = offsetof(struct qmi_uaudio_stream_req_msg_v01,
370 xfer_buff_size),
371 },
372 {
373 .data_type = QMI_EOTI,
374 .is_array = NO_ARRAY,
375 .is_array = QMI_COMMON_TLV_TYPE,
376 },
377};
378
379struct elem_info qmi_uaudio_stream_resp_msg_v01_ei[] = {
380 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700381 .data_type = QMI_STRUCT,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800382 .elem_len = 1,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700383 .elem_size = sizeof(struct qmi_response_type_v01),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800384 .is_array = NO_ARRAY,
385 .tlv_type = 0x02,
386 .offset = offsetof(
387 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700388 resp),
389 .ei_array = get_qmi_response_type_v01_ei(),
390 },
391 {
392 .data_type = QMI_OPT_FLAG,
393 .elem_len = 1,
394 .elem_size = sizeof(uint8_t),
395 .is_array = NO_ARRAY,
396 .tlv_type = 0x10,
397 .offset = offsetof(
398 struct qmi_uaudio_stream_resp_msg_v01,
399 status_valid),
400 },
401 {
402 .data_type = QMI_SIGNED_4_BYTE_ENUM,
403 .elem_len = 1,
404 .elem_size = sizeof(enum usb_audio_stream_status_enum_v01),
405 .is_array = NO_ARRAY,
406 .tlv_type = 0x10,
407 .offset = offsetof(
408 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800409 status),
410 },
411 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700412 .data_type = QMI_OPT_FLAG,
413 .elem_len = 1,
414 .elem_size = sizeof(uint8_t),
415 .is_array = NO_ARRAY,
416 .tlv_type = 0x11,
417 .offset = offsetof(
418 struct qmi_uaudio_stream_resp_msg_v01,
419 internal_status_valid),
420 },
421 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800422 .data_type = QMI_UNSIGNED_4_BYTE,
423 .elem_len = 1,
424 .elem_size = sizeof(uint32_t),
425 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700426 .tlv_type = 0x11,
427 .offset = offsetof(
428 struct qmi_uaudio_stream_resp_msg_v01,
429 internal_status),
430 },
431 {
432 .data_type = QMI_OPT_FLAG,
433 .elem_len = 1,
434 .elem_size = sizeof(uint8_t),
435 .is_array = NO_ARRAY,
436 .tlv_type = 0x12,
437 .offset = offsetof(
438 struct qmi_uaudio_stream_resp_msg_v01,
439 slot_id_valid),
440 },
441 {
442 .data_type = QMI_UNSIGNED_4_BYTE,
443 .elem_len = 1,
444 .elem_size = sizeof(uint32_t),
445 .is_array = NO_ARRAY,
446 .tlv_type = 0x12,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800447 .offset = offsetof(
448 struct qmi_uaudio_stream_resp_msg_v01,
449 slot_id),
450 },
451 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700452 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800453 .elem_len = 1,
454 .elem_size = sizeof(uint8_t),
455 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700456 .tlv_type = 0x13,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800457 .offset = offsetof(
458 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700459 usb_token_valid),
460 },
461 {
462 .data_type = QMI_UNSIGNED_4_BYTE,
463 .elem_len = 1,
464 .elem_size = sizeof(uint32_t),
465 .is_array = NO_ARRAY,
466 .tlv_type = 0x13,
467 .offset = offsetof(
468 struct qmi_uaudio_stream_resp_msg_v01,
469 usb_token),
470 },
471 {
472 .data_type = QMI_OPT_FLAG,
473 .elem_len = 1,
474 .elem_size = sizeof(uint8_t),
475 .is_array = NO_ARRAY,
476 .tlv_type = 0x14,
477 .offset = offsetof(
478 struct qmi_uaudio_stream_resp_msg_v01,
479 std_as_opr_intf_desc_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800480 },
481 {
482 .data_type = QMI_STRUCT,
483 .elem_len = 1,
484 .elem_size = sizeof(struct usb_interface_descriptor_v01),
485 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700486 .tlv_type = 0x14,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800487 .offset = offsetof(
488 struct qmi_uaudio_stream_resp_msg_v01,
489 std_as_opr_intf_desc),
490 .ei_array = usb_interface_descriptor_v01_ei,
491 },
492 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700493 .data_type = QMI_OPT_FLAG,
494 .elem_len = 1,
495 .elem_size = sizeof(uint8_t),
496 .is_array = NO_ARRAY,
497 .tlv_type = 0x15,
498 .offset = offsetof(
499 struct qmi_uaudio_stream_resp_msg_v01,
500 std_as_data_ep_desc_valid),
501 },
502 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800503 .data_type = QMI_STRUCT,
504 .elem_len = 1,
505 .elem_size = sizeof(struct usb_endpoint_descriptor_v01),
506 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700507 .tlv_type = 0x15,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800508 .offset = offsetof(
509 struct qmi_uaudio_stream_resp_msg_v01,
510 std_as_data_ep_desc),
511 .ei_array = usb_endpoint_descriptor_v01_ei,
512 },
513 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700514 .data_type = QMI_OPT_FLAG,
515 .elem_len = 1,
516 .elem_size = sizeof(uint8_t),
517 .is_array = NO_ARRAY,
518 .tlv_type = 0x16,
519 .offset = offsetof(
520 struct qmi_uaudio_stream_resp_msg_v01,
521 std_as_sync_ep_desc_valid),
522 },
523 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800524 .data_type = QMI_STRUCT,
525 .elem_len = 1,
526 .elem_size = sizeof(struct usb_endpoint_descriptor_v01),
527 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700528 .tlv_type = 0x16,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800529 .offset = offsetof(
530 struct qmi_uaudio_stream_resp_msg_v01,
531 std_as_sync_ep_desc),
532 .ei_array = usb_endpoint_descriptor_v01_ei,
533 },
534 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700535 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800536 .elem_len = 1,
537 .elem_size = sizeof(uint8_t),
538 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700539 .tlv_type = 0x17,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800540 .offset = offsetof(
541 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700542 usb_audio_spec_revision_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800543 },
544 {
545 .data_type = QMI_UNSIGNED_2_BYTE,
546 .elem_len = 1,
547 .elem_size = sizeof(uint16_t),
548 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700549 .tlv_type = 0x17,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800550 .offset = offsetof(
551 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700552 usb_audio_spec_revision),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800553 },
554 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700555 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800556 .elem_len = 1,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700557 .elem_size = sizeof(uint8_t),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800558 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700559 .tlv_type = 0x18,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800560 .offset = offsetof(
561 struct qmi_uaudio_stream_resp_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700562 data_path_delay_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800563 },
564 {
565 .data_type = QMI_UNSIGNED_1_BYTE,
566 .elem_len = 1,
567 .elem_size = sizeof(uint8_t),
568 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700569 .tlv_type = 0x18,
570 .offset = offsetof(
571 struct qmi_uaudio_stream_resp_msg_v01,
572 data_path_delay),
573 },
574 {
575 .data_type = QMI_OPT_FLAG,
576 .elem_len = 1,
577 .elem_size = sizeof(uint8_t),
578 .is_array = NO_ARRAY,
579 .tlv_type = 0x19,
580 .offset = offsetof(
581 struct qmi_uaudio_stream_resp_msg_v01,
582 usb_audio_subslot_size_valid),
583 },
584 {
585 .data_type = QMI_UNSIGNED_1_BYTE,
586 .elem_len = 1,
587 .elem_size = sizeof(uint8_t),
588 .is_array = NO_ARRAY,
589 .tlv_type = 0x19,
590 .offset = offsetof(
591 struct qmi_uaudio_stream_resp_msg_v01,
592 usb_audio_subslot_size),
593 },
594 {
595 .data_type = QMI_OPT_FLAG,
596 .elem_len = 1,
597 .elem_size = sizeof(uint8_t),
598 .is_array = NO_ARRAY,
599 .tlv_type = 0x1A,
600 .offset = offsetof(
601 struct qmi_uaudio_stream_resp_msg_v01,
602 xhci_mem_info_valid),
603 },
604 {
605 .data_type = QMI_STRUCT,
606 .elem_len = 1,
607 .elem_size = sizeof(struct apps_mem_info_v01),
608 .is_array = NO_ARRAY,
609 .tlv_type = 0x1A,
610 .offset = offsetof(
611 struct qmi_uaudio_stream_resp_msg_v01,
612 xhci_mem_info),
613 .ei_array = apps_mem_info_v01_ei,
614 },
615 {
616 .data_type = QMI_OPT_FLAG,
617 .elem_len = 1,
618 .elem_size = sizeof(uint8_t),
619 .is_array = NO_ARRAY,
620 .tlv_type = 0x1B,
621 .offset = offsetof(
622 struct qmi_uaudio_stream_resp_msg_v01,
623 interrupter_num_valid),
624 },
625 {
626 .data_type = QMI_UNSIGNED_1_BYTE,
627 .elem_len = 1,
628 .elem_size = sizeof(uint8_t),
629 .is_array = NO_ARRAY,
630 .tlv_type = 0x1B,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800631 .offset = offsetof(
632 struct qmi_uaudio_stream_resp_msg_v01,
633 interrupter_num),
634 },
635 {
636 .data_type = QMI_EOTI,
637 .is_array = NO_ARRAY,
638 .is_array = QMI_COMMON_TLV_TYPE,
639 },
640};
641
642struct elem_info qmi_uaudio_stream_ind_msg_v01_ei[] = {
643 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700644 .data_type = QMI_SIGNED_4_BYTE_ENUM,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800645 .elem_len = 1,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700646 .elem_size = sizeof(
647 enum usb_audio_device_indication_enum_v01),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800648 .is_array = NO_ARRAY,
649 .tlv_type = 0x01,
650 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700651 dev_event),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800652 },
653 {
654 .data_type = QMI_UNSIGNED_4_BYTE,
655 .elem_len = 1,
656 .elem_size = sizeof(uint32_t),
657 .is_array = NO_ARRAY,
658 .tlv_type = 0x02,
659 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800660 slot_id),
661 },
662 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700663 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800664 .elem_len = 1,
665 .elem_size = sizeof(uint8_t),
666 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700667 .tlv_type = 0x10,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800668 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700669 usb_token_valid),
670 },
671 {
672 .data_type = QMI_UNSIGNED_4_BYTE,
673 .elem_len = 1,
674 .elem_size = sizeof(uint32_t),
675 .is_array = NO_ARRAY,
676 .tlv_type = 0x10,
677 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
678 usb_token),
679 },
680 {
681 .data_type = QMI_OPT_FLAG,
682 .elem_len = 1,
683 .elem_size = sizeof(uint8_t),
684 .is_array = NO_ARRAY,
685 .tlv_type = 0x11,
686 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
687 std_as_opr_intf_desc_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800688 },
689 {
690 .data_type = QMI_STRUCT,
691 .elem_len = 1,
692 .elem_size = sizeof(struct usb_interface_descriptor_v01),
693 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700694 .tlv_type = 0x11,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800695 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
696 std_as_opr_intf_desc),
697 .ei_array = usb_interface_descriptor_v01_ei,
698 },
699 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700700 .data_type = QMI_OPT_FLAG,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800701 .elem_len = 1,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700702 .elem_size = sizeof(uint8_t),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800703 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700704 .tlv_type = 0x12,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800705 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700706 std_as_data_ep_desc_valid),
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800707 },
708 {
709 .data_type = QMI_STRUCT,
710 .elem_len = 1,
711 .elem_size = sizeof(struct usb_endpoint_descriptor_v01),
712 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700713 .tlv_type = 0x12,
714 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
715 std_as_data_ep_desc),
716 .ei_array = usb_endpoint_descriptor_v01_ei,
717 },
718 {
719 .data_type = QMI_OPT_FLAG,
720 .elem_len = 1,
721 .elem_size = sizeof(uint8_t),
722 .is_array = NO_ARRAY,
723 .tlv_type = 0x13,
724 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
725 std_as_sync_ep_desc_valid),
726 },
727 {
728 .data_type = QMI_STRUCT,
729 .elem_len = 1,
730 .elem_size = sizeof(struct usb_endpoint_descriptor_v01),
731 .is_array = NO_ARRAY,
732 .tlv_type = 0x13,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800733 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
734 std_as_sync_ep_desc),
735 .ei_array = usb_endpoint_descriptor_v01_ei,
736 },
737 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700738 .data_type = QMI_OPT_FLAG,
739 .elem_len = 1,
740 .elem_size = sizeof(uint8_t),
741 .is_array = NO_ARRAY,
742 .tlv_type = 0x14,
743 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
744 usb_audio_spec_revision_valid),
745 },
746 {
747 .data_type = QMI_UNSIGNED_2_BYTE,
748 .elem_len = 1,
749 .elem_size = sizeof(uint16_t),
750 .is_array = NO_ARRAY,
751 .tlv_type = 0x14,
752 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
753 usb_audio_spec_revision),
754 },
755 {
756 .data_type = QMI_OPT_FLAG,
757 .elem_len = 1,
758 .elem_size = sizeof(uint8_t),
759 .is_array = NO_ARRAY,
760 .tlv_type = 0x15,
761 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
762 data_path_delay_valid),
763 },
764 {
765 .data_type = QMI_UNSIGNED_1_BYTE,
766 .elem_len = 1,
767 .elem_size = sizeof(uint8_t),
768 .is_array = NO_ARRAY,
769 .tlv_type = 0x15,
770 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
771 data_path_delay),
772 },
773 {
774 .data_type = QMI_OPT_FLAG,
775 .elem_len = 1,
776 .elem_size = sizeof(uint8_t),
777 .is_array = NO_ARRAY,
778 .tlv_type = 0x16,
779 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
780 usb_audio_subslot_size_valid),
781 },
782 {
783 .data_type = QMI_UNSIGNED_1_BYTE,
784 .elem_len = 1,
785 .elem_size = sizeof(uint8_t),
786 .is_array = NO_ARRAY,
787 .tlv_type = 0x16,
788 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
789 usb_audio_subslot_size),
790 },
791 {
792 .data_type = QMI_OPT_FLAG,
793 .elem_len = 1,
794 .elem_size = sizeof(uint8_t),
795 .is_array = NO_ARRAY,
796 .tlv_type = 0x17,
797 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
798 xhci_mem_info_valid),
799 },
800 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800801 .data_type = QMI_STRUCT,
802 .elem_len = 1,
803 .elem_size = sizeof(struct apps_mem_info_v01),
804 .is_array = NO_ARRAY,
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700805 .tlv_type = 0x17,
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800806 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
807 xhci_mem_info),
808 .ei_array = apps_mem_info_v01_ei,
809 },
810 {
Hemant Kumaraa2fa3c2016-07-18 16:26:48 -0700811 .data_type = QMI_OPT_FLAG,
812 .elem_len = 1,
813 .elem_size = sizeof(uint8_t),
814 .is_array = NO_ARRAY,
815 .tlv_type = 0x18,
816 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
817 interrupter_num_valid),
818 },
819 {
820 .data_type = QMI_UNSIGNED_1_BYTE,
821 .elem_len = 1,
822 .elem_size = sizeof(uint8_t),
823 .is_array = NO_ARRAY,
824 .tlv_type = 0x18,
825 .offset = offsetof(struct qmi_uaudio_stream_ind_msg_v01,
826 interrupter_num),
827 },
828 {
Hemant Kumar0ef9fbb2016-01-28 11:41:42 -0800829 .data_type = QMI_EOTI,
830 .is_array = NO_ARRAY,
831 .is_array = QMI_COMMON_TLV_TYPE,
832 },
833};