• 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 	AFE_LSM_TOPOLOGY_CAL_TYPE,
103 	AFE_LSM_TX_CAL_TYPE,
104 	ADM_LSM_TOPOLOGY_CAL_TYPE,
105 	ADM_LSM_AUDPROC_CAL_TYPE,
106 	ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE,
107 	MAX_CAL_TYPES,
108 };
109 
110 #define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE
111 #define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE
112 
113 #define AFE_SIDETONE_IIR_CAL_TYPE AFE_SIDETONE_IIR_CAL_TYPE
114 
115 #define AFE_LSM_TOPOLOGY_CAL_TYPE AFE_LSM_TOPOLOGY_CAL_TYPE
116 #define AFE_LSM_TX_CAL_TYPE AFE_LSM_TX_CAL_TYPE
117 #define ADM_LSM_TOPOLOGY_CAL_TYPE ADM_LSM_TOPOLOGY_CAL_TYPE
118 #define ADM_LSM_AUDPROC_CAL_TYPE ADM_LSM_AUDPROC_CAL_TYPE
119 #define ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE
120 #define LSM_CAL_TYPES
121 
122 #define TOPOLOGY_SPECIFIC_CHANNEL_INFO
123 #define MSM_SPKR_PROT_SPV3
124 
125 enum {
126 	VERSION_0_0,
127 };
128 
129 enum {
130 	PER_VOCODER_CAL_BIT_MASK = 0x10000,
131 };
132 
133 #define MAX_IOCTL_CMD_SIZE	512
134 
135 /* common structures */
136 
137 struct audio_cal_header {
138 	int32_t		data_size;
139 	int32_t		version;
140 	int32_t		cal_type;
141 	int32_t		cal_type_size;
142 };
143 
144 struct audio_cal_type_header {
145 	int32_t		version;
146 	int32_t		buffer_number;
147 };
148 
149 struct audio_cal_data {
150 	/* Size of cal data at mem_handle allocation or at vaddr */
151 	int32_t		cal_size;
152 	/* If mem_handle if shared memory is used*/
153 	int32_t		mem_handle;
154 	/* size of virtual memory if shared memory not used */
155 };
156 
157 
158 /* AUDIO_ALLOCATE_CALIBRATION */
159 struct audio_cal_type_alloc {
160 	struct audio_cal_type_header	cal_hdr;
161 	struct audio_cal_data		cal_data;
162 };
163 
164 struct audio_cal_alloc {
165 	struct audio_cal_header		hdr;
166 	struct audio_cal_type_alloc	cal_type;
167 };
168 
169 
170 /* AUDIO_DEALLOCATE_CALIBRATION */
171 struct audio_cal_type_dealloc {
172 	struct audio_cal_type_header	cal_hdr;
173 	struct audio_cal_data		cal_data;
174 };
175 
176 struct audio_cal_dealloc {
177 	struct audio_cal_header		hdr;
178 	struct audio_cal_type_dealloc	cal_type;
179 };
180 
181 
182 /* AUDIO_PREPARE_CALIBRATION */
183 struct audio_cal_type_prepare {
184 	struct audio_cal_type_header	cal_hdr;
185 	struct audio_cal_data		cal_data;
186 };
187 
188 struct audio_cal_prepare {
189 	struct audio_cal_header		hdr;
190 	struct audio_cal_type_prepare	cal_type;
191 };
192 
193 
194 /* AUDIO_POST_CALIBRATION */
195 struct audio_cal_type_post {
196 	struct audio_cal_type_header	cal_hdr;
197 	struct audio_cal_data		cal_data;
198 };
199 
200 struct audio_cal_post {
201 	struct audio_cal_header		hdr;
202 	struct audio_cal_type_post	cal_type;
203 };
204 
205 /*AUDIO_CORE_META_INFO */
206 
207 struct audio_cal_info_metainfo {
208 	uint32_t nKey;
209 };
210 
211 /* Cal info types */
212 enum {
213 	RX_DEVICE,
214 	TX_DEVICE,
215 	MAX_PATH_TYPE
216 };
217 
218 struct audio_cal_info_adm_top {
219 	int32_t		topology;
220 	int32_t		acdb_id;
221 	/* RX_DEVICE or TX_DEVICE */
222 	int32_t		path;
223 	int32_t		app_type;
224 	int32_t		sample_rate;
225 };
226 
227 struct audio_cal_info_audproc {
228 	int32_t		acdb_id;
229 	/* RX_DEVICE or TX_DEVICE */
230 	int32_t		path;
231 	int32_t		app_type;
232 	int32_t		sample_rate;
233 };
234 
235 struct audio_cal_info_audvol {
236 	int32_t		acdb_id;
237 	/* RX_DEVICE or TX_DEVICE */
238 	int32_t		path;
239 	int32_t		app_type;
240 	int32_t		vol_index;
241 };
242 
243 struct audio_cal_info_afe {
244 	int32_t		acdb_id;
245 	/* RX_DEVICE or TX_DEVICE */
246 	int32_t		path;
247 	int32_t		sample_rate;
248 };
249 
250 struct audio_cal_info_afe_top {
251 	int32_t		topology;
252 	int32_t		acdb_id;
253 	/* RX_DEVICE or TX_DEVICE */
254 	int32_t		path;
255 	int32_t		sample_rate;
256 };
257 
258 struct audio_cal_info_asm_top {
259 	int32_t		topology;
260 	int32_t		app_type;
261 };
262 
263 struct audio_cal_info_audstrm {
264 	int32_t		app_type;
265 };
266 
267 struct audio_cal_info_aanc {
268 	int32_t		acdb_id;
269 };
270 
271 #define MAX_HW_DELAY_ENTRIES	25
272 
273 struct audio_cal_hw_delay_entry {
274 	uint32_t sample_rate;
275 	uint32_t delay_usec;
276 };
277 
278 struct audio_cal_hw_delay_data {
279 	uint32_t				num_entries;
280 	struct audio_cal_hw_delay_entry		entry[MAX_HW_DELAY_ENTRIES];
281 };
282 
283 struct audio_cal_info_hw_delay {
284 	int32_t					acdb_id;
285 	/* RX_DEVICE or TX_DEVICE */
286 	int32_t					path;
287 	int32_t					property_type;
288 	struct audio_cal_hw_delay_data		data;
289 };
290 
291 enum msm_spkr_prot_states {
292 	MSM_SPKR_PROT_CALIBRATED,
293 	MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
294 	MSM_SPKR_PROT_DISABLED,
295 	MSM_SPKR_PROT_NOT_CALIBRATED,
296 	MSM_SPKR_PROT_PRE_CALIBRATED,
297 	MSM_SPKR_PROT_IN_FTM_MODE,
298 	MSM_SPKR_PROT_IN_V_VALI_MODE
299 };
300 #define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE
301 #define MSM_SPKR_PROT_IN_V_VALI_MODE MSM_SPKR_PROT_IN_V_VALI_MODE
302 
303 enum msm_spkr_count {
304 	SP_V2_SPKR_1,
305 	SP_V2_SPKR_2,
306 	SP_V2_NUM_MAX_SPKRS
307 };
308 
309 struct audio_cal_info_spk_prot_cfg {
310 	int32_t		r0[SP_V2_NUM_MAX_SPKRS];
311 	int32_t		t0[SP_V2_NUM_MAX_SPKRS];
312 	uint32_t	quick_calib_flag;
313 	uint32_t	mode;
314 	/*
315 	 * 0 - Start spk prot
316 	 * 1 - Start calib
317 	 * 2 - Disable spk prot
318 	 */
319 #ifdef MSM_SPKR_PROT_SPV3
320 	uint32_t	sp_version;
321 	int32_t	limiter_th[SP_V2_NUM_MAX_SPKRS];
322 #endif
323 };
324 
325 struct audio_cal_info_sp_th_vi_ftm_cfg {
326 	/*
327 	 * mode should be first param, add new params later to this.
328 	 * we use this mode(first 4 bytes) to differentiate
329 	 * whether it is TH_VI FTM or v-validation.
330 	 */
331 	uint32_t	mode;
332 	/*
333 	 * 0 - normal running mode
334 	 * 1 - Calibration
335 	 * 2 - FTM mode
336 	 */
337 	uint32_t	wait_time[SP_V2_NUM_MAX_SPKRS];
338 	uint32_t	ftm_time[SP_V2_NUM_MAX_SPKRS];
339 };
340 
341 struct audio_cal_info_sp_th_vi_v_vali_cfg {
342 	/*
343 	 * mode should be first param, add new params later to this.
344 	 * we use this mode(first 4 bytes) to differentiate
345 	 * whether it is TH_VI FTM or v-validation.
346 	 */
347 	uint32_t	mode;
348 	/*
349 	 * 0 - normal running mode
350 	 * 1 - Calibration
351 	 * 2 - FTM mode
352 	 * 3 - V-Validation mode
353 	 */
354 	uint32_t	wait_time[SP_V2_NUM_MAX_SPKRS];
355 	uint32_t	vali_time[SP_V2_NUM_MAX_SPKRS];
356 
357 };
358 
359 struct audio_cal_info_sp_ex_vi_ftm_cfg {
360 	uint32_t	wait_time[SP_V2_NUM_MAX_SPKRS];
361 	uint32_t	ftm_time[SP_V2_NUM_MAX_SPKRS];
362 	uint32_t	mode;
363 	/*
364 	 * 0 - normal running mode
365 	 * 2 - FTM mode
366 	 */
367 };
368 
369 struct audio_cal_info_sp_ex_vi_param {
370 	int32_t		freq_q20[SP_V2_NUM_MAX_SPKRS];
371 	int32_t		resis_q24[SP_V2_NUM_MAX_SPKRS];
372 	int32_t		qmct_q24[SP_V2_NUM_MAX_SPKRS];
373 	int32_t		status[SP_V2_NUM_MAX_SPKRS];
374 };
375 
376 struct audio_cal_info_sp_th_vi_param {
377 	/*
378 	 * mode should be first param, add new params later to this.
379 	 * we use this mode(first 4 bytes) to differentiate
380 	 * whether it is TH_VI FTM or v-validation.
381 	 */
382 	uint32_t	mode;
383 	int32_t		r_dc_q24[SP_V2_NUM_MAX_SPKRS];
384 	int32_t		temp_q22[SP_V2_NUM_MAX_SPKRS];
385 	int32_t		status[SP_V2_NUM_MAX_SPKRS];
386 };
387 
388 struct audio_cal_info_sp_th_vi_v_vali_param {
389 	/*
390 	 * mode should be first param, add new params later to this.
391 	 * we use this mode(first 4 bytes) to differentiate
392 	 * whether it is TH_VI FTM or v-validation.
393 	 */
394 	uint32_t	mode;
395 	uint32_t	vrms_q24[SP_V2_NUM_MAX_SPKRS];
396 	int32_t		status[SP_V2_NUM_MAX_SPKRS];
397 };
398 
399 struct audio_cal_info_msm_spk_prot_status {
400 	int32_t		r0[SP_V2_NUM_MAX_SPKRS];
401 	int32_t		status;
402 };
403 
404 struct audio_cal_info_sidetone {
405 	uint16_t	enable;
406 	uint16_t	gain;
407 	int32_t		tx_acdb_id;
408 	int32_t		rx_acdb_id;
409 	int32_t		mid;
410 	int32_t		pid;
411 };
412 
413 #define MAX_SIDETONE_IIR_DATA_SIZE   224
414 #define MAX_NO_IIR_FILTER_STAGE      10
415 
416 struct audio_cal_info_sidetone_iir {
417 	uint16_t	iir_enable;
418 	uint16_t	num_biquad_stages;
419 	uint16_t	pregain;
420 	int32_t	        tx_acdb_id;
421 	int32_t	        rx_acdb_id;
422 	int32_t	        mid;
423 	int32_t	        pid;
424 	uint8_t	        iir_config[MAX_SIDETONE_IIR_DATA_SIZE];
425 };
426 struct audio_cal_info_lsm_top {
427 	int32_t		topology;
428 	int32_t		acdb_id;
429 	int32_t		app_type;
430 };
431 
432 
433 struct audio_cal_info_lsm {
434 	int32_t		acdb_id;
435 	/* RX_DEVICE or TX_DEVICE */
436 	int32_t		path;
437 	int32_t		app_type;
438 };
439 
440 #define VSS_NUM_CHANNELS_MAX	32
441 
442 struct audio_cal_info_voc_top {
443 	int32_t		topology;
444 	int32_t		acdb_id;
445 #ifdef TOPOLOGY_SPECIFIC_CHANNEL_INFO
446 	uint32_t	num_channels;
447 	uint8_t		channel_mapping[VSS_NUM_CHANNELS_MAX];
448 #endif
449 };
450 
451 struct audio_cal_info_vocproc {
452 	int32_t		tx_acdb_id;
453 	int32_t		rx_acdb_id;
454 	int32_t		tx_sample_rate;
455 	int32_t		rx_sample_rate;
456 };
457 
458 enum {
459 	DEFAULT_FEATURE_SET,
460 	VOL_BOOST_FEATURE_SET,
461 };
462 
463 struct audio_cal_info_vocvol {
464 	int32_t		tx_acdb_id;
465 	int32_t		rx_acdb_id;
466 	/* DEFAULT_ or VOL_BOOST_FEATURE_SET */
467 	int32_t		feature_set;
468 };
469 
470 struct audio_cal_info_vocdev_cfg {
471 	int32_t		tx_acdb_id;
472 	int32_t		rx_acdb_id;
473 };
474 
475 #define MAX_VOICE_COLUMNS	20
476 
477 union audio_cal_col_na {
478 	uint8_t		val8;
479 	uint16_t	val16;
480 	uint32_t	val32;
481 	uint64_t	val64;
482 } __attribute__((packed));
483 
484 struct audio_cal_col {
485 	uint32_t		id;
486 	uint32_t		type;
487 	union audio_cal_col_na	na_value;
488 } __attribute__((packed));
489 
490 struct audio_cal_col_data {
491 	uint32_t		num_columns;
492 	struct audio_cal_col	column[MAX_VOICE_COLUMNS];
493 } __attribute__((packed));
494 
495 struct audio_cal_info_voc_col {
496 	int32_t				table_id;
497 	int32_t				tx_acdb_id;
498 	int32_t				rx_acdb_id;
499 	struct audio_cal_col_data	data;
500 };
501 
502 /* AUDIO_SET_CALIBRATION & */
503 struct audio_cal_type_basic {
504 	struct audio_cal_type_header	cal_hdr;
505 	struct audio_cal_data		cal_data;
506 };
507 
508 struct audio_cal_basic {
509 	struct audio_cal_header		hdr;
510 	struct audio_cal_type_basic	cal_type;
511 };
512 
513 struct audio_cal_type_adm_top {
514 	struct audio_cal_type_header	cal_hdr;
515 	struct audio_cal_data		cal_data;
516 	struct audio_cal_info_adm_top	cal_info;
517 };
518 
519 struct audio_cal_adm_top {
520 	struct audio_cal_header		hdr;
521 	struct audio_cal_type_adm_top	cal_type;
522 };
523 
524 struct audio_cal_type_metainfo {
525 	struct audio_cal_type_header	cal_hdr;
526 	struct audio_cal_data		cal_data;
527 	struct audio_cal_info_metainfo	cal_info;
528 };
529 
530 struct audio_core_metainfo {
531 	struct audio_cal_header	  hdr;
532 	struct audio_cal_type_metainfo cal_type;
533 };
534 
535 struct audio_cal_type_audproc {
536 	struct audio_cal_type_header	cal_hdr;
537 	struct audio_cal_data		cal_data;
538 	struct audio_cal_info_audproc	cal_info;
539 };
540 
541 struct audio_cal_audproc {
542 	struct audio_cal_header		hdr;
543 	struct audio_cal_type_audproc	cal_type;
544 };
545 
546 struct audio_cal_type_audvol {
547 	struct audio_cal_type_header	cal_hdr;
548 	struct audio_cal_data		cal_data;
549 	struct audio_cal_info_audvol	cal_info;
550 };
551 
552 struct audio_cal_audvol {
553 	struct audio_cal_header		hdr;
554 	struct audio_cal_type_audvol	cal_type;
555 };
556 
557 struct audio_cal_type_asm_top {
558 	struct audio_cal_type_header	cal_hdr;
559 	struct audio_cal_data		cal_data;
560 	struct audio_cal_info_asm_top	cal_info;
561 };
562 
563 struct audio_cal_asm_top {
564 	struct audio_cal_header		hdr;
565 	struct audio_cal_type_asm_top	cal_type;
566 };
567 
568 struct audio_cal_type_audstrm {
569 	struct audio_cal_type_header	cal_hdr;
570 	struct audio_cal_data		cal_data;
571 	struct audio_cal_info_audstrm	cal_info;
572 };
573 
574 struct audio_cal_audstrm {
575 	struct audio_cal_header		hdr;
576 	struct audio_cal_type_audstrm	cal_type;
577 };
578 
579 struct audio_cal_type_afe {
580 	struct audio_cal_type_header	cal_hdr;
581 	struct audio_cal_data		cal_data;
582 	struct audio_cal_info_afe	cal_info;
583 };
584 
585 struct audio_cal_afe {
586 	struct audio_cal_header		hdr;
587 	struct audio_cal_type_afe	cal_type;
588 };
589 
590 struct audio_cal_type_afe_top {
591 	struct audio_cal_type_header	cal_hdr;
592 	struct audio_cal_data		cal_data;
593 	struct audio_cal_info_afe_top	cal_info;
594 };
595 
596 struct audio_cal_afe_top {
597 	struct audio_cal_header		hdr;
598 	struct audio_cal_type_afe_top	cal_type;
599 };
600 
601 struct audio_cal_type_aanc {
602 	struct audio_cal_type_header	cal_hdr;
603 	struct audio_cal_data		cal_data;
604 	struct audio_cal_info_aanc	cal_info;
605 };
606 
607 struct audio_cal_aanc {
608 	struct audio_cal_header		hdr;
609 	struct audio_cal_type_aanc	cal_type;
610 };
611 
612 struct audio_cal_type_fb_spk_prot_cfg {
613 	struct audio_cal_type_header		cal_hdr;
614 	struct audio_cal_data			cal_data;
615 	struct audio_cal_info_spk_prot_cfg	cal_info;
616 };
617 
618 struct audio_cal_fb_spk_prot_cfg {
619 	struct audio_cal_header			hdr;
620 	struct audio_cal_type_fb_spk_prot_cfg	cal_type;
621 };
622 
623 struct audio_cal_type_sp_th_vi_ftm_cfg {
624 	struct audio_cal_type_header		cal_hdr;
625 	struct audio_cal_data			cal_data;
626 	struct audio_cal_info_sp_th_vi_ftm_cfg	cal_info;
627 };
628 
629 struct audio_cal_sp_th_vi_ftm_cfg {
630 	struct audio_cal_header			hdr;
631 	struct audio_cal_type_sp_th_vi_ftm_cfg	cal_type;
632 };
633 
634 struct audio_cal_type_sp_th_vi_v_vali_cfg {
635 	struct audio_cal_type_header		cal_hdr;
636 	struct audio_cal_data			cal_data;
637 	struct audio_cal_info_sp_th_vi_v_vali_cfg	cal_info;
638 };
639 
640 struct audio_cal_sp_th_vi_v_vali_cfg {
641 	struct audio_cal_header			hdr;
642 	struct audio_cal_type_sp_th_vi_v_vali_cfg	cal_type;
643 };
644 
645 struct audio_cal_type_sp_ex_vi_ftm_cfg {
646 	struct audio_cal_type_header		cal_hdr;
647 	struct audio_cal_data			cal_data;
648 	struct audio_cal_info_sp_ex_vi_ftm_cfg	cal_info;
649 };
650 
651 struct audio_cal_sp_ex_vi_ftm_cfg {
652 	struct audio_cal_header			hdr;
653 	struct audio_cal_type_sp_ex_vi_ftm_cfg	cal_type;
654 };
655 struct audio_cal_type_hw_delay {
656 	struct audio_cal_type_header	cal_hdr;
657 	struct audio_cal_data		cal_data;
658 	struct audio_cal_info_hw_delay	cal_info;
659 };
660 
661 struct audio_cal_hw_delay {
662 	struct audio_cal_header		hdr;
663 	struct audio_cal_type_hw_delay	cal_type;
664 };
665 
666 struct audio_cal_type_sidetone {
667 	struct audio_cal_type_header		cal_hdr;
668 	struct audio_cal_data			cal_data;
669 	struct audio_cal_info_sidetone		cal_info;
670 };
671 
672 struct audio_cal_sidetone {
673 	struct audio_cal_header			hdr;
674 	struct audio_cal_type_sidetone		cal_type;
675 };
676 
677 struct audio_cal_type_sidetone_iir {
678 	struct audio_cal_type_header	   cal_hdr;
679 	struct audio_cal_data		   cal_data;
680 	struct audio_cal_info_sidetone_iir cal_info;
681 };
682 
683 struct audio_cal_sidetone_iir {
684 	struct audio_cal_header		   hdr;
685 	struct audio_cal_type_sidetone_iir cal_type;
686 };
687 
688 struct audio_cal_type_lsm_top {
689 	struct audio_cal_type_header	cal_hdr;
690 	struct audio_cal_data		cal_data;
691 	struct audio_cal_info_lsm_top	cal_info;
692 };
693 
694 struct audio_cal_lsm_top {
695 	struct audio_cal_header		hdr;
696 	struct audio_cal_type_lsm_top	cal_type;
697 };
698 
699 struct audio_cal_type_lsm {
700 	struct audio_cal_type_header	cal_hdr;
701 	struct audio_cal_data		cal_data;
702 	struct audio_cal_info_lsm	cal_info;
703 };
704 
705 struct audio_cal_lsm {
706 	struct audio_cal_header		hdr;
707 	struct audio_cal_type_lsm	cal_type;
708 };
709 
710 struct audio_cal_type_voc_top {
711 	struct audio_cal_type_header	cal_hdr;
712 	struct audio_cal_data		cal_data;
713 	struct audio_cal_info_voc_top	cal_info;
714 };
715 
716 struct audio_cal_voc_top {
717 	struct audio_cal_header		hdr;
718 	struct audio_cal_type_voc_top	cal_type;
719 };
720 
721 struct audio_cal_type_vocproc {
722 	struct audio_cal_type_header	cal_hdr;
723 	struct audio_cal_data		cal_data;
724 	struct audio_cal_info_vocproc	cal_info;
725 };
726 
727 struct audio_cal_vocproc {
728 	struct audio_cal_header		hdr;
729 	struct audio_cal_type_vocproc	cal_type;
730 };
731 
732 struct audio_cal_type_vocvol {
733 	struct audio_cal_type_header	cal_hdr;
734 	struct audio_cal_data		cal_data;
735 	struct audio_cal_info_vocvol	cal_info;
736 };
737 
738 struct audio_cal_vocvol {
739 	struct audio_cal_header		hdr;
740 	struct audio_cal_type_vocvol	cal_type;
741 };
742 
743 struct audio_cal_type_vocdev_cfg {
744 	struct audio_cal_type_header		cal_hdr;
745 	struct audio_cal_data			cal_data;
746 	struct audio_cal_info_vocdev_cfg	cal_info;
747 };
748 
749 struct audio_cal_vocdev_cfg {
750 	struct audio_cal_header			hdr;
751 	struct audio_cal_type_vocdev_cfg	cal_type;
752 };
753 
754 struct audio_cal_type_voc_col {
755 	struct audio_cal_type_header	cal_hdr;
756 	struct audio_cal_data		cal_data;
757 	struct audio_cal_info_voc_col	cal_info;
758 };
759 
760 struct audio_cal_voc_col {
761 	struct audio_cal_header		hdr;
762 	struct audio_cal_type_voc_col	cal_type;
763 };
764 
765 /* AUDIO_GET_CALIBRATION */
766 struct audio_cal_type_fb_spk_prot_status {
767 	struct audio_cal_type_header			cal_hdr;
768 	struct audio_cal_data				cal_data;
769 	struct audio_cal_info_msm_spk_prot_status	cal_info;
770 };
771 
772 struct audio_cal_fb_spk_prot_status {
773 	struct audio_cal_header				hdr;
774 	struct audio_cal_type_fb_spk_prot_status	cal_type;
775 };
776 
777 struct audio_cal_type_sp_th_vi_param {
778 	struct audio_cal_type_header			cal_hdr;
779 	struct audio_cal_data				cal_data;
780 	struct audio_cal_info_sp_th_vi_param		cal_info;
781 };
782 
783 struct audio_cal_sp_th_vi_param {
784 	struct audio_cal_header				hdr;
785 	struct audio_cal_type_sp_th_vi_param		cal_type;
786 };
787 
788 struct audio_cal_type_sp_th_vi_v_vali_param {
789 	struct audio_cal_type_header			cal_hdr;
790 	struct audio_cal_data				cal_data;
791 	struct audio_cal_info_sp_th_vi_v_vali_param	cal_info;
792 };
793 
794 struct audio_cal_sp_th_vi_v_vali_param {
795 	struct audio_cal_header				hdr;
796 	struct audio_cal_type_sp_th_vi_v_vali_param	cal_type;
797 };
798 struct audio_cal_type_sp_ex_vi_param {
799 	struct audio_cal_type_header			cal_hdr;
800 	struct audio_cal_data				cal_data;
801 	struct audio_cal_info_sp_ex_vi_param		cal_info;
802 };
803 
804 struct audio_cal_sp_ex_vi_param {
805 	struct audio_cal_header				hdr;
806 	struct audio_cal_type_sp_ex_vi_param		cal_type;
807 };
808 #endif /* _MSM_AUDIO_CALIBRATION_H */
809