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