• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _MSM_AUDIO_CALIBRATION_H
2 #define _MSM_AUDIO_CALIBRATION_H
3 
4 #include <linux/types.h>
5 #include <linux/ioctl.h>
6 
7 #define CAL_IOCTL_MAGIC 'a'
8 
9 #define AUDIO_ALLOCATE_CALIBRATION	_IOWR(CAL_IOCTL_MAGIC, \
10 							200, void *)
11 #define AUDIO_DEALLOCATE_CALIBRATION	_IOWR(CAL_IOCTL_MAGIC, \
12 							201, void *)
13 #define AUDIO_PREPARE_CALIBRATION	_IOWR(CAL_IOCTL_MAGIC, \
14 							202, void *)
15 #define AUDIO_SET_CALIBRATION		_IOWR(CAL_IOCTL_MAGIC, \
16 							203, void *)
17 #define AUDIO_GET_CALIBRATION		_IOWR(CAL_IOCTL_MAGIC, \
18 							204, void *)
19 #define AUDIO_POST_CALIBRATION		_IOWR(CAL_IOCTL_MAGIC, \
20 							205, void *)
21 
22 /* For Real-Time Audio Calibration */
23 #define AUDIO_GET_RTAC_ADM_INFO		_IOR(CAL_IOCTL_MAGIC, \
24 							207, void *)
25 #define AUDIO_GET_RTAC_VOICE_INFO	_IOR(CAL_IOCTL_MAGIC, \
26 							208, void *)
27 #define AUDIO_GET_RTAC_ADM_CAL		_IOWR(CAL_IOCTL_MAGIC, \
28 							209, void *)
29 #define AUDIO_SET_RTAC_ADM_CAL		_IOWR(CAL_IOCTL_MAGIC, \
30 							210, void *)
31 #define AUDIO_GET_RTAC_ASM_CAL		_IOWR(CAL_IOCTL_MAGIC, \
32 							211, void *)
33 #define AUDIO_SET_RTAC_ASM_CAL		_IOWR(CAL_IOCTL_MAGIC, \
34 							212, void *)
35 #define AUDIO_GET_RTAC_CVS_CAL		_IOWR(CAL_IOCTL_MAGIC, \
36 							213, void *)
37 #define AUDIO_SET_RTAC_CVS_CAL		_IOWR(CAL_IOCTL_MAGIC, \
38 							214, void *)
39 #define AUDIO_GET_RTAC_CVP_CAL		_IOWR(CAL_IOCTL_MAGIC, \
40 							215, void *)
41 #define AUDIO_SET_RTAC_CVP_CAL		_IOWR(CAL_IOCTL_MAGIC, \
42 							216, void *)
43 #define AUDIO_GET_RTAC_AFE_CAL		_IOWR(CAL_IOCTL_MAGIC, \
44 							217, void *)
45 #define AUDIO_SET_RTAC_AFE_CAL		_IOWR(CAL_IOCTL_MAGIC, \
46 							218, void *)
47 enum {
48 	CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
49 	CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
50 	CVP_VOCPROC_STATIC_CAL_TYPE,
51 	CVP_VOCPROC_DYNAMIC_CAL_TYPE,
52 	CVS_VOCSTRM_STATIC_CAL_TYPE,
53 	CVP_VOCDEV_CFG_CAL_TYPE,
54 	CVP_VOCPROC_STATIC_COL_CAL_TYPE,
55 	CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
56 	CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
57 
58 	ADM_TOPOLOGY_CAL_TYPE,
59 	ADM_CUST_TOPOLOGY_CAL_TYPE,
60 	ADM_AUDPROC_CAL_TYPE,
61 	ADM_AUDVOL_CAL_TYPE,
62 
63 	ASM_TOPOLOGY_CAL_TYPE,
64 	ASM_CUST_TOPOLOGY_CAL_TYPE,
65 	ASM_AUDSTRM_CAL_TYPE,
66 
67 	AFE_COMMON_RX_CAL_TYPE,
68 	AFE_COMMON_TX_CAL_TYPE,
69 	AFE_ANC_CAL_TYPE,
70 	AFE_AANC_CAL_TYPE,
71 	AFE_FB_SPKR_PROT_CAL_TYPE,
72 	AFE_HW_DELAY_CAL_TYPE,
73 	AFE_SIDETONE_CAL_TYPE,
74 	AFE_TOPOLOGY_CAL_TYPE,
75 	AFE_CUST_TOPOLOGY_CAL_TYPE,
76 
77 	LSM_CUST_TOPOLOGY_CAL_TYPE,
78 	LSM_TOPOLOGY_CAL_TYPE,
79 	LSM_CAL_TYPE,
80 
81 	ADM_RTAC_INFO_CAL_TYPE,
82 	VOICE_RTAC_INFO_CAL_TYPE,
83 	ADM_RTAC_APR_CAL_TYPE,
84 	ASM_RTAC_APR_CAL_TYPE,
85 	VOICE_RTAC_APR_CAL_TYPE,
86 
87 	MAD_CAL_TYPE,
88 	ULP_AFE_CAL_TYPE,
89 	ULP_LSM_CAL_TYPE,
90 
91 	DTS_EAGLE_CAL_TYPE,
92 	AUDIO_CORE_METAINFO_CAL_TYPE,
93 	SRS_TRUMEDIA_CAL_TYPE,
94 
95 	CORE_CUSTOM_TOPOLOGIES_CAL_TYPE,
96 	ADM_RTAC_AUDVOL_CAL_TYPE,
97 
98 	ULP_LSM_TOPOLOGY_ID_CAL_TYPE,
99 	AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE,
100 	AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE,
101 	AFE_SIDETONE_IIR_CAL_TYPE,
102 	MAX_CAL_TYPES,
103 };
104 
105 #define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE
106 #define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE
107 
108 #define AFE_SIDETONE_IIR_CAL_TYPE AFE_SIDETONE_IIR_CAL_TYPE
109 
110 enum {
111 	VERSION_0_0,
112 };
113 
114 enum {
115 	PER_VOCODER_CAL_BIT_MASK = 0x10000,
116 };
117 
118 #define MAX_IOCTL_CMD_SIZE	512
119 
120 /* common structures */
121 
122 struct audio_cal_header {
123 	int32_t		data_size;
124 	int32_t		version;
125 	int32_t		cal_type;
126 	int32_t		cal_type_size;
127 };
128 
129 struct audio_cal_type_header {
130 	int32_t		version;
131 	int32_t		buffer_number;
132 };
133 
134 struct audio_cal_data {
135 	/* Size of cal data at mem_handle allocation or at vaddr */
136 	int32_t		cal_size;
137 	/* If mem_handle if shared memory is used*/
138 	int32_t		mem_handle;
139 	/* size of virtual memory if shared memory not used */
140 };
141 
142 
143 /* AUDIO_ALLOCATE_CALIBRATION */
144 struct audio_cal_type_alloc {
145 	struct audio_cal_type_header	cal_hdr;
146 	struct audio_cal_data		cal_data;
147 };
148 
149 struct audio_cal_alloc {
150 	struct audio_cal_header		hdr;
151 	struct audio_cal_type_alloc	cal_type;
152 };
153 
154 
155 /* AUDIO_DEALLOCATE_CALIBRATION */
156 struct audio_cal_type_dealloc {
157 	struct audio_cal_type_header	cal_hdr;
158 	struct audio_cal_data		cal_data;
159 };
160 
161 struct audio_cal_dealloc {
162 	struct audio_cal_header		hdr;
163 	struct audio_cal_type_dealloc	cal_type;
164 };
165 
166 
167 /* AUDIO_PREPARE_CALIBRATION */
168 struct audio_cal_type_prepare {
169 	struct audio_cal_type_header	cal_hdr;
170 	struct audio_cal_data		cal_data;
171 };
172 
173 struct audio_cal_prepare {
174 	struct audio_cal_header		hdr;
175 	struct audio_cal_type_prepare	cal_type;
176 };
177 
178 
179 /* AUDIO_POST_CALIBRATION */
180 struct audio_cal_type_post {
181 	struct audio_cal_type_header	cal_hdr;
182 	struct audio_cal_data		cal_data;
183 };
184 
185 struct audio_cal_post {
186 	struct audio_cal_header		hdr;
187 	struct audio_cal_type_post	cal_type;
188 };
189 
190 /*AUDIO_CORE_META_INFO */
191 
192 struct audio_cal_info_metainfo {
193 	uint32_t nKey;
194 };
195 
196 /* Cal info types */
197 enum {
198 	RX_DEVICE,
199 	TX_DEVICE,
200 	MAX_PATH_TYPE
201 };
202 
203 struct audio_cal_info_adm_top {
204 	int32_t		topology;
205 	int32_t		acdb_id;
206 	/* RX_DEVICE or TX_DEVICE */
207 	int32_t		path;
208 	int32_t		app_type;
209 	int32_t		sample_rate;
210 };
211 
212 struct audio_cal_info_audproc {
213 	int32_t		acdb_id;
214 	/* RX_DEVICE or TX_DEVICE */
215 	int32_t		path;
216 	int32_t		app_type;
217 	int32_t		sample_rate;
218 };
219 
220 struct audio_cal_info_audvol {
221 	int32_t		acdb_id;
222 	/* RX_DEVICE or TX_DEVICE */
223 	int32_t		path;
224 	int32_t		app_type;
225 	int32_t		vol_index;
226 };
227 
228 struct audio_cal_info_afe {
229 	int32_t		acdb_id;
230 	/* RX_DEVICE or TX_DEVICE */
231 	int32_t		path;
232 	int32_t		sample_rate;
233 };
234 
235 struct audio_cal_info_afe_top {
236 	int32_t		topology;
237 	int32_t		acdb_id;
238 	/* RX_DEVICE or TX_DEVICE */
239 	int32_t		path;
240 	int32_t		sample_rate;
241 };
242 
243 struct audio_cal_info_asm_top {
244 	int32_t		topology;
245 	int32_t		app_type;
246 };
247 
248 struct audio_cal_info_audstrm {
249 	int32_t		app_type;
250 };
251 
252 struct audio_cal_info_aanc {
253 	int32_t		acdb_id;
254 };
255 
256 #define MAX_HW_DELAY_ENTRIES	25
257 
258 struct audio_cal_hw_delay_entry {
259 	uint32_t sample_rate;
260 	uint32_t delay_usec;
261 };
262 
263 struct audio_cal_hw_delay_data {
264 	uint32_t				num_entries;
265 	struct audio_cal_hw_delay_entry		entry[MAX_HW_DELAY_ENTRIES];
266 };
267 
268 struct audio_cal_info_hw_delay {
269 	int32_t					acdb_id;
270 	/* RX_DEVICE or TX_DEVICE */
271 	int32_t					path;
272 	int32_t					property_type;
273 	struct audio_cal_hw_delay_data		data;
274 };
275 
276 enum msm_spkr_prot_states {
277 	MSM_SPKR_PROT_CALIBRATED,
278 	MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
279 	MSM_SPKR_PROT_DISABLED,
280 	MSM_SPKR_PROT_NOT_CALIBRATED,
281 	MSM_SPKR_PROT_PRE_CALIBRATED,
282 	MSM_SPKR_PROT_IN_FTM_MODE
283 };
284 #define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE
285 
286 enum msm_spkr_count {
287 	SP_V2_SPKR_1,
288 	SP_V2_SPKR_2,
289 	SP_V2_NUM_MAX_SPKRS
290 };
291 
292 struct audio_cal_info_spk_prot_cfg {
293 	int32_t		r0[SP_V2_NUM_MAX_SPKRS];
294 	int32_t		t0[SP_V2_NUM_MAX_SPKRS];
295 	uint32_t	quick_calib_flag;
296 	uint32_t	mode;
297 	/*
298 	 * 0 - Start spk prot
299 	 * 1 - Start calib
300 	 * 2 - Disable spk prot
301 	 */
302 };
303 
304 struct audio_cal_info_sp_th_vi_ftm_cfg {
305 	uint32_t	wait_time[SP_V2_NUM_MAX_SPKRS];
306 	uint32_t	ftm_time[SP_V2_NUM_MAX_SPKRS];
307 	uint32_t	mode;
308 	/*
309 	 * 0 - normal running mode
310 	 * 1 - Calibration
311 	 * 2 - FTM mode
312 	 */
313 };
314 
315 struct audio_cal_info_sp_ex_vi_ftm_cfg {
316 	uint32_t	wait_time[SP_V2_NUM_MAX_SPKRS];
317 	uint32_t	ftm_time[SP_V2_NUM_MAX_SPKRS];
318 	uint32_t	mode;
319 	/*
320 	 * 0 - normal running mode
321 	 * 2 - FTM mode
322 	 */
323 };
324 
325 struct audio_cal_info_sp_ex_vi_param {
326 	int32_t		freq_q20[SP_V2_NUM_MAX_SPKRS];
327 	int32_t		resis_q24[SP_V2_NUM_MAX_SPKRS];
328 	int32_t		qmct_q24[SP_V2_NUM_MAX_SPKRS];
329 	int32_t		status[SP_V2_NUM_MAX_SPKRS];
330 };
331 
332 struct audio_cal_info_sp_th_vi_param {
333 	int32_t		r_dc_q24[SP_V2_NUM_MAX_SPKRS];
334 	int32_t		temp_q22[SP_V2_NUM_MAX_SPKRS];
335 	int32_t		status[SP_V2_NUM_MAX_SPKRS];
336 };
337 
338 struct audio_cal_info_msm_spk_prot_status {
339 	int32_t		r0[SP_V2_NUM_MAX_SPKRS];
340 	int32_t		status;
341 };
342 
343 struct audio_cal_info_sidetone {
344 	uint16_t	enable;
345 	uint16_t	gain;
346 	int32_t		tx_acdb_id;
347 	int32_t		rx_acdb_id;
348 	int32_t		mid;
349 	int32_t		pid;
350 };
351 
352 #define MAX_SIDETONE_IIR_DATA_SIZE   224
353 #define MAX_NO_IIR_FILTER_STAGE      10
354 
355 struct audio_cal_info_sidetone_iir {
356 	uint16_t	iir_enable;
357 	uint16_t	num_biquad_stages;
358 	uint16_t	pregain;
359 	int32_t	        tx_acdb_id;
360 	int32_t	        rx_acdb_id;
361 	int32_t	        mid;
362 	int32_t	        pid;
363 	uint8_t	        iir_config[MAX_SIDETONE_IIR_DATA_SIZE];
364 };
365 struct audio_cal_info_lsm_top {
366 	int32_t		topology;
367 	int32_t		acdb_id;
368 	int32_t		app_type;
369 };
370 
371 
372 struct audio_cal_info_lsm {
373 	int32_t		acdb_id;
374 	/* RX_DEVICE or TX_DEVICE */
375 	int32_t		path;
376 	int32_t		app_type;
377 };
378 
379 struct audio_cal_info_voc_top {
380 	int32_t		topology;
381 	int32_t		acdb_id;
382 };
383 
384 struct audio_cal_info_vocproc {
385 	int32_t		tx_acdb_id;
386 	int32_t		rx_acdb_id;
387 	int32_t		tx_sample_rate;
388 	int32_t		rx_sample_rate;
389 };
390 
391 enum {
392 	DEFAULT_FEATURE_SET,
393 	VOL_BOOST_FEATURE_SET,
394 };
395 
396 struct audio_cal_info_vocvol {
397 	int32_t		tx_acdb_id;
398 	int32_t		rx_acdb_id;
399 	/* DEFUALT_ or VOL_BOOST_FEATURE_SET */
400 	int32_t		feature_set;
401 };
402 
403 struct audio_cal_info_vocdev_cfg {
404 	int32_t		tx_acdb_id;
405 	int32_t		rx_acdb_id;
406 };
407 
408 #define MAX_VOICE_COLUMNS	20
409 
410 union audio_cal_col_na {
411 	uint8_t		val8;
412 	uint16_t	val16;
413 	uint32_t	val32;
414 	uint64_t	val64;
415 } __attribute__((packed));
416 
417 struct audio_cal_col {
418 	uint32_t		id;
419 	uint32_t		type;
420 	union audio_cal_col_na	na_value;
421 } __attribute__((packed));
422 
423 struct audio_cal_col_data {
424 	uint32_t		num_columns;
425 	struct audio_cal_col	column[MAX_VOICE_COLUMNS];
426 } __attribute__((packed));
427 
428 struct audio_cal_info_voc_col {
429 	int32_t				table_id;
430 	int32_t				tx_acdb_id;
431 	int32_t				rx_acdb_id;
432 	struct audio_cal_col_data	data;
433 };
434 
435 /* AUDIO_SET_CALIBRATION & */
436 struct audio_cal_type_basic {
437 	struct audio_cal_type_header	cal_hdr;
438 	struct audio_cal_data		cal_data;
439 };
440 
441 struct audio_cal_basic {
442 	struct audio_cal_header		hdr;
443 	struct audio_cal_type_basic	cal_type;
444 };
445 
446 struct audio_cal_type_adm_top {
447 	struct audio_cal_type_header	cal_hdr;
448 	struct audio_cal_data		cal_data;
449 	struct audio_cal_info_adm_top	cal_info;
450 };
451 
452 struct audio_cal_adm_top {
453 	struct audio_cal_header		hdr;
454 	struct audio_cal_type_adm_top	cal_type;
455 };
456 
457 struct audio_cal_type_metainfo {
458 	struct audio_cal_type_header	cal_hdr;
459 	struct audio_cal_data		cal_data;
460 	struct audio_cal_info_metainfo	cal_info;
461 };
462 
463 struct audio_core_metainfo {
464 	struct audio_cal_header	  hdr;
465 	struct audio_cal_type_metainfo cal_type;
466 };
467 
468 struct audio_cal_type_audproc {
469 	struct audio_cal_type_header	cal_hdr;
470 	struct audio_cal_data		cal_data;
471 	struct audio_cal_info_audproc	cal_info;
472 };
473 
474 struct audio_cal_audproc {
475 	struct audio_cal_header		hdr;
476 	struct audio_cal_type_audproc	cal_type;
477 };
478 
479 struct audio_cal_type_audvol {
480 	struct audio_cal_type_header	cal_hdr;
481 	struct audio_cal_data		cal_data;
482 	struct audio_cal_info_audvol	cal_info;
483 };
484 
485 struct audio_cal_audvol {
486 	struct audio_cal_header		hdr;
487 	struct audio_cal_type_audvol	cal_type;
488 };
489 
490 struct audio_cal_type_asm_top {
491 	struct audio_cal_type_header	cal_hdr;
492 	struct audio_cal_data		cal_data;
493 	struct audio_cal_info_asm_top	cal_info;
494 };
495 
496 struct audio_cal_asm_top {
497 	struct audio_cal_header		hdr;
498 	struct audio_cal_type_asm_top	cal_type;
499 };
500 
501 struct audio_cal_type_audstrm {
502 	struct audio_cal_type_header	cal_hdr;
503 	struct audio_cal_data		cal_data;
504 	struct audio_cal_info_audstrm	cal_info;
505 };
506 
507 struct audio_cal_audstrm {
508 	struct audio_cal_header		hdr;
509 	struct audio_cal_type_audstrm	cal_type;
510 };
511 
512 struct audio_cal_type_afe {
513 	struct audio_cal_type_header	cal_hdr;
514 	struct audio_cal_data		cal_data;
515 	struct audio_cal_info_afe	cal_info;
516 };
517 
518 struct audio_cal_afe {
519 	struct audio_cal_header		hdr;
520 	struct audio_cal_type_afe	cal_type;
521 };
522 
523 struct audio_cal_type_afe_top {
524 	struct audio_cal_type_header	cal_hdr;
525 	struct audio_cal_data		cal_data;
526 	struct audio_cal_info_afe_top	cal_info;
527 };
528 
529 struct audio_cal_afe_top {
530 	struct audio_cal_header		hdr;
531 	struct audio_cal_type_afe_top	cal_type;
532 };
533 
534 struct audio_cal_type_aanc {
535 	struct audio_cal_type_header	cal_hdr;
536 	struct audio_cal_data		cal_data;
537 	struct audio_cal_info_aanc	cal_info;
538 };
539 
540 struct audio_cal_aanc {
541 	struct audio_cal_header		hdr;
542 	struct audio_cal_type_aanc	cal_type;
543 };
544 
545 struct audio_cal_type_fb_spk_prot_cfg {
546 	struct audio_cal_type_header		cal_hdr;
547 	struct audio_cal_data			cal_data;
548 	struct audio_cal_info_spk_prot_cfg	cal_info;
549 };
550 
551 struct audio_cal_fb_spk_prot_cfg {
552 	struct audio_cal_header			hdr;
553 	struct audio_cal_type_fb_spk_prot_cfg	cal_type;
554 };
555 
556 struct audio_cal_type_sp_th_vi_ftm_cfg {
557 	struct audio_cal_type_header		cal_hdr;
558 	struct audio_cal_data			cal_data;
559 	struct audio_cal_info_sp_th_vi_ftm_cfg	cal_info;
560 };
561 
562 struct audio_cal_sp_th_vi_ftm_cfg {
563 	struct audio_cal_header			hdr;
564 	struct audio_cal_type_sp_th_vi_ftm_cfg	cal_type;
565 };
566 
567 struct audio_cal_type_sp_ex_vi_ftm_cfg {
568 	struct audio_cal_type_header		cal_hdr;
569 	struct audio_cal_data			cal_data;
570 	struct audio_cal_info_sp_ex_vi_ftm_cfg	cal_info;
571 };
572 
573 struct audio_cal_sp_ex_vi_ftm_cfg {
574 	struct audio_cal_header			hdr;
575 	struct audio_cal_type_sp_ex_vi_ftm_cfg	cal_type;
576 };
577 struct audio_cal_type_hw_delay {
578 	struct audio_cal_type_header	cal_hdr;
579 	struct audio_cal_data		cal_data;
580 	struct audio_cal_info_hw_delay	cal_info;
581 };
582 
583 struct audio_cal_hw_delay {
584 	struct audio_cal_header		hdr;
585 	struct audio_cal_type_hw_delay	cal_type;
586 };
587 
588 struct audio_cal_type_sidetone {
589 	struct audio_cal_type_header		cal_hdr;
590 	struct audio_cal_data			cal_data;
591 	struct audio_cal_info_sidetone		cal_info;
592 };
593 
594 struct audio_cal_sidetone {
595 	struct audio_cal_header			hdr;
596 	struct audio_cal_type_sidetone		cal_type;
597 };
598 
599 struct audio_cal_type_sidetone_iir {
600 	struct audio_cal_type_header	   cal_hdr;
601 	struct audio_cal_data		   cal_data;
602 	struct audio_cal_info_sidetone_iir cal_info;
603 };
604 
605 struct audio_cal_sidetone_iir {
606 	struct audio_cal_header		   hdr;
607 	struct audio_cal_type_sidetone_iir cal_type;
608 };
609 
610 struct audio_cal_type_lsm_top {
611 	struct audio_cal_type_header	cal_hdr;
612 	struct audio_cal_data		cal_data;
613 	struct audio_cal_info_lsm_top	cal_info;
614 };
615 
616 struct audio_cal_lsm_top {
617 	struct audio_cal_header		hdr;
618 	struct audio_cal_type_lsm_top	cal_type;
619 };
620 
621 struct audio_cal_type_lsm {
622 	struct audio_cal_type_header	cal_hdr;
623 	struct audio_cal_data		cal_data;
624 	struct audio_cal_info_lsm	cal_info;
625 };
626 
627 struct audio_cal_lsm {
628 	struct audio_cal_header		hdr;
629 	struct audio_cal_type_lsm	cal_type;
630 };
631 
632 struct audio_cal_type_voc_top {
633 	struct audio_cal_type_header	cal_hdr;
634 	struct audio_cal_data		cal_data;
635 	struct audio_cal_info_voc_top	cal_info;
636 };
637 
638 struct audio_cal_voc_top {
639 	struct audio_cal_header		hdr;
640 	struct audio_cal_type_voc_top	cal_type;
641 };
642 
643 struct audio_cal_type_vocproc {
644 	struct audio_cal_type_header	cal_hdr;
645 	struct audio_cal_data		cal_data;
646 	struct audio_cal_info_vocproc	cal_info;
647 };
648 
649 struct audio_cal_vocproc {
650 	struct audio_cal_header		hdr;
651 	struct audio_cal_type_vocproc	cal_type;
652 };
653 
654 struct audio_cal_type_vocvol {
655 	struct audio_cal_type_header	cal_hdr;
656 	struct audio_cal_data		cal_data;
657 	struct audio_cal_info_vocvol	cal_info;
658 };
659 
660 struct audio_cal_vocvol {
661 	struct audio_cal_header		hdr;
662 	struct audio_cal_type_vocvol	cal_type;
663 };
664 
665 struct audio_cal_type_vocdev_cfg {
666 	struct audio_cal_type_header		cal_hdr;
667 	struct audio_cal_data			cal_data;
668 	struct audio_cal_info_vocdev_cfg	cal_info;
669 };
670 
671 struct audio_cal_vocdev_cfg {
672 	struct audio_cal_header			hdr;
673 	struct audio_cal_type_vocdev_cfg	cal_type;
674 };
675 
676 struct audio_cal_type_voc_col {
677 	struct audio_cal_type_header	cal_hdr;
678 	struct audio_cal_data		cal_data;
679 	struct audio_cal_info_voc_col	cal_info;
680 };
681 
682 struct audio_cal_voc_col {
683 	struct audio_cal_header		hdr;
684 	struct audio_cal_type_voc_col	cal_type;
685 };
686 
687 /* AUDIO_GET_CALIBRATION */
688 struct audio_cal_type_fb_spk_prot_status {
689 	struct audio_cal_type_header			cal_hdr;
690 	struct audio_cal_data				cal_data;
691 	struct audio_cal_info_msm_spk_prot_status	cal_info;
692 };
693 
694 struct audio_cal_fb_spk_prot_status {
695 	struct audio_cal_header				hdr;
696 	struct audio_cal_type_fb_spk_prot_status	cal_type;
697 };
698 
699 struct audio_cal_type_sp_th_vi_param {
700 	struct audio_cal_type_header			cal_hdr;
701 	struct audio_cal_data				cal_data;
702 	struct audio_cal_info_sp_th_vi_param		cal_info;
703 };
704 
705 struct audio_cal_sp_th_vi_param {
706 	struct audio_cal_header				hdr;
707 	struct audio_cal_type_sp_th_vi_param		cal_type;
708 };
709 struct audio_cal_type_sp_ex_vi_param {
710 	struct audio_cal_type_header			cal_hdr;
711 	struct audio_cal_data				cal_data;
712 	struct audio_cal_info_sp_ex_vi_param		cal_info;
713 };
714 
715 struct audio_cal_sp_ex_vi_param {
716 	struct audio_cal_header				hdr;
717 	struct audio_cal_type_sp_ex_vi_param		cal_type;
718 };
719 #endif /* _MSM_AUDIO_CALIBRATION_H */
720