Home | History | Annotate | Download | only in linux
      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