1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _MSM_AUDIO_CALIBRATION_H 20 #define _MSM_AUDIO_CALIBRATION_H 21 #include <linux/types.h> 22 #include <linux/ioctl.h> 23 #define CAL_IOCTL_MAGIC 'a' 24 #define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 200, void *) 25 #define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 201, void *) 26 #define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 202, void *) 27 #define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 203, void *) 28 #define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 204, void *) 29 #define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 205, void *) 30 #define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC, 207, void *) 31 #define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC, 208, void *) 32 #define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 209, void *) 33 #define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 210, void *) 34 #define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 211, void *) 35 #define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 212, void *) 36 #define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 213, void *) 37 #define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 214, void *) 38 #define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 215, void *) 39 #define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 216, void *) 40 #define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 217, void *) 41 #define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 218, void *) 42 enum { 43 CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0, 44 CVP_VOC_TX_TOPOLOGY_CAL_TYPE, 45 CVP_VOCPROC_STATIC_CAL_TYPE, 46 CVP_VOCPROC_DYNAMIC_CAL_TYPE, 47 CVS_VOCSTRM_STATIC_CAL_TYPE, 48 CVP_VOCDEV_CFG_CAL_TYPE, 49 CVP_VOCPROC_STATIC_COL_CAL_TYPE, 50 CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE, 51 CVS_VOCSTRM_STATIC_COL_CAL_TYPE, 52 ADM_TOPOLOGY_CAL_TYPE, 53 ADM_CUST_TOPOLOGY_CAL_TYPE, 54 ADM_AUDPROC_CAL_TYPE, 55 ADM_AUDVOL_CAL_TYPE, 56 ASM_TOPOLOGY_CAL_TYPE, 57 ASM_CUST_TOPOLOGY_CAL_TYPE, 58 ASM_AUDSTRM_CAL_TYPE, 59 AFE_COMMON_RX_CAL_TYPE, 60 AFE_COMMON_TX_CAL_TYPE, 61 AFE_ANC_CAL_TYPE, 62 AFE_AANC_CAL_TYPE, 63 AFE_FB_SPKR_PROT_CAL_TYPE, 64 AFE_HW_DELAY_CAL_TYPE, 65 AFE_SIDETONE_CAL_TYPE, 66 AFE_TOPOLOGY_CAL_TYPE, 67 AFE_CUST_TOPOLOGY_CAL_TYPE, 68 LSM_CUST_TOPOLOGY_CAL_TYPE, 69 LSM_TOPOLOGY_CAL_TYPE, 70 LSM_CAL_TYPE, 71 ADM_RTAC_INFO_CAL_TYPE, 72 VOICE_RTAC_INFO_CAL_TYPE, 73 ADM_RTAC_APR_CAL_TYPE, 74 ASM_RTAC_APR_CAL_TYPE, 75 VOICE_RTAC_APR_CAL_TYPE, 76 MAD_CAL_TYPE, 77 ULP_AFE_CAL_TYPE, 78 ULP_LSM_CAL_TYPE, 79 DTS_EAGLE_CAL_TYPE, 80 AUDIO_CORE_METAINFO_CAL_TYPE, 81 SRS_TRUMEDIA_CAL_TYPE, 82 CORE_CUSTOM_TOPOLOGIES_CAL_TYPE, 83 ADM_RTAC_AUDVOL_CAL_TYPE, 84 ULP_LSM_TOPOLOGY_ID_CAL_TYPE, 85 AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE, 86 AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE, 87 AFE_SIDETONE_IIR_CAL_TYPE, 88 AFE_LSM_TOPOLOGY_CAL_TYPE, 89 AFE_LSM_TX_CAL_TYPE, 90 ADM_LSM_TOPOLOGY_CAL_TYPE, 91 ADM_LSM_AUDPROC_CAL_TYPE, 92 MAX_CAL_TYPES, 93 }; 94 #define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE 95 #define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE 96 #define AFE_SIDETONE_IIR_CAL_TYPE AFE_SIDETONE_IIR_CAL_TYPE 97 #define AFE_LSM_TOPOLOGY_CAL_TYPE AFE_LSM_TOPOLOGY_CAL_TYPE 98 #define AFE_LSM_TX_CAL_TYPE AFE_LSM_TX_CAL_TYPE 99 #define ADM_LSM_TOPOLOGY_CAL_TYPE ADM_LSM_TOPOLOGY_CAL_TYPE 100 #define ADM_LSM_AUDPROC_CAL_TYPE ADM_LSM_AUDPROC_CAL_TYPE 101 #define LSM_CAL_TYPES 102 #define TOPOLOGY_SPECIFIC_CHANNEL_INFO 103 #define MSM_SPKR_PROT_SPV3 104 enum { 105 VERSION_0_0, 106 }; 107 enum { 108 PER_VOCODER_CAL_BIT_MASK = 0x10000, 109 }; 110 #define MAX_IOCTL_CMD_SIZE 512 111 struct audio_cal_header { 112 int32_t data_size; 113 int32_t version; 114 int32_t cal_type; 115 int32_t cal_type_size; 116 }; 117 struct audio_cal_type_header { 118 int32_t version; 119 int32_t buffer_number; 120 }; 121 struct audio_cal_data { 122 int32_t cal_size; 123 int32_t mem_handle; 124 }; 125 struct audio_cal_type_alloc { 126 struct audio_cal_type_header cal_hdr; 127 struct audio_cal_data cal_data; 128 }; 129 struct audio_cal_alloc { 130 struct audio_cal_header hdr; 131 struct audio_cal_type_alloc cal_type; 132 }; 133 struct audio_cal_type_dealloc { 134 struct audio_cal_type_header cal_hdr; 135 struct audio_cal_data cal_data; 136 }; 137 struct audio_cal_dealloc { 138 struct audio_cal_header hdr; 139 struct audio_cal_type_dealloc cal_type; 140 }; 141 struct audio_cal_type_prepare { 142 struct audio_cal_type_header cal_hdr; 143 struct audio_cal_data cal_data; 144 }; 145 struct audio_cal_prepare { 146 struct audio_cal_header hdr; 147 struct audio_cal_type_prepare cal_type; 148 }; 149 struct audio_cal_type_post { 150 struct audio_cal_type_header cal_hdr; 151 struct audio_cal_data cal_data; 152 }; 153 struct audio_cal_post { 154 struct audio_cal_header hdr; 155 struct audio_cal_type_post cal_type; 156 }; 157 struct audio_cal_info_metainfo { 158 uint32_t nKey; 159 }; 160 enum { 161 RX_DEVICE, 162 TX_DEVICE, 163 MAX_PATH_TYPE 164 }; 165 struct audio_cal_info_adm_top { 166 int32_t topology; 167 int32_t acdb_id; 168 int32_t path; 169 int32_t app_type; 170 int32_t sample_rate; 171 }; 172 struct audio_cal_info_audproc { 173 int32_t acdb_id; 174 int32_t path; 175 int32_t app_type; 176 int32_t sample_rate; 177 }; 178 struct audio_cal_info_audvol { 179 int32_t acdb_id; 180 int32_t path; 181 int32_t app_type; 182 int32_t vol_index; 183 }; 184 struct audio_cal_info_afe { 185 int32_t acdb_id; 186 int32_t path; 187 int32_t sample_rate; 188 }; 189 struct audio_cal_info_afe_top { 190 int32_t topology; 191 int32_t acdb_id; 192 int32_t path; 193 int32_t sample_rate; 194 }; 195 struct audio_cal_info_asm_top { 196 int32_t topology; 197 int32_t app_type; 198 }; 199 struct audio_cal_info_audstrm { 200 int32_t app_type; 201 }; 202 struct audio_cal_info_aanc { 203 int32_t acdb_id; 204 }; 205 #define MAX_HW_DELAY_ENTRIES 25 206 struct audio_cal_hw_delay_entry { 207 uint32_t sample_rate; 208 uint32_t delay_usec; 209 }; 210 struct audio_cal_hw_delay_data { 211 uint32_t num_entries; 212 struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES]; 213 }; 214 struct audio_cal_info_hw_delay { 215 int32_t acdb_id; 216 int32_t path; 217 int32_t property_type; 218 struct audio_cal_hw_delay_data data; 219 }; 220 enum msm_spkr_prot_states { 221 MSM_SPKR_PROT_CALIBRATED, 222 MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS, 223 MSM_SPKR_PROT_DISABLED, 224 MSM_SPKR_PROT_NOT_CALIBRATED, 225 MSM_SPKR_PROT_PRE_CALIBRATED, 226 MSM_SPKR_PROT_IN_FTM_MODE 227 }; 228 #define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE 229 enum msm_spkr_count { 230 SP_V2_SPKR_1, 231 SP_V2_SPKR_2, 232 SP_V2_NUM_MAX_SPKRS 233 }; 234 struct audio_cal_info_spk_prot_cfg { 235 int32_t r0[SP_V2_NUM_MAX_SPKRS]; 236 int32_t t0[SP_V2_NUM_MAX_SPKRS]; 237 uint32_t quick_calib_flag; 238 uint32_t mode; 239 #ifdef MSM_SPKR_PROT_SPV3 240 uint32_t sp_version; 241 int32_t limiter_th[SP_V2_NUM_MAX_SPKRS]; 242 #endif 243 }; 244 struct audio_cal_info_sp_th_vi_ftm_cfg { 245 uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 246 uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 247 uint32_t mode; 248 }; 249 struct audio_cal_info_sp_ex_vi_ftm_cfg { 250 uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 251 uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 252 uint32_t mode; 253 }; 254 struct audio_cal_info_sp_ex_vi_param { 255 int32_t freq_q20[SP_V2_NUM_MAX_SPKRS]; 256 int32_t resis_q24[SP_V2_NUM_MAX_SPKRS]; 257 int32_t qmct_q24[SP_V2_NUM_MAX_SPKRS]; 258 int32_t status[SP_V2_NUM_MAX_SPKRS]; 259 }; 260 struct audio_cal_info_sp_th_vi_param { 261 int32_t r_dc_q24[SP_V2_NUM_MAX_SPKRS]; 262 int32_t temp_q22[SP_V2_NUM_MAX_SPKRS]; 263 int32_t status[SP_V2_NUM_MAX_SPKRS]; 264 }; 265 struct audio_cal_info_msm_spk_prot_status { 266 int32_t r0[SP_V2_NUM_MAX_SPKRS]; 267 int32_t status; 268 }; 269 struct audio_cal_info_sidetone { 270 uint16_t enable; 271 uint16_t gain; 272 int32_t tx_acdb_id; 273 int32_t rx_acdb_id; 274 int32_t mid; 275 int32_t pid; 276 }; 277 #define MAX_SIDETONE_IIR_DATA_SIZE 224 278 #define MAX_NO_IIR_FILTER_STAGE 10 279 struct audio_cal_info_sidetone_iir { 280 uint16_t iir_enable; 281 uint16_t num_biquad_stages; 282 uint16_t pregain; 283 int32_t tx_acdb_id; 284 int32_t rx_acdb_id; 285 int32_t mid; 286 int32_t pid; 287 uint8_t iir_config[MAX_SIDETONE_IIR_DATA_SIZE]; 288 }; 289 struct audio_cal_info_lsm_top { 290 int32_t topology; 291 int32_t acdb_id; 292 int32_t app_type; 293 }; 294 struct audio_cal_info_lsm { 295 int32_t acdb_id; 296 int32_t path; 297 int32_t app_type; 298 }; 299 #define VSS_NUM_CHANNELS_MAX 8 300 struct audio_cal_info_voc_top { 301 int32_t topology; 302 int32_t acdb_id; 303 #ifdef TOPOLOGY_SPECIFIC_CHANNEL_INFO 304 uint32_t num_channels; 305 uint8_t channel_mapping[VSS_NUM_CHANNELS_MAX]; 306 #endif 307 }; 308 struct audio_cal_info_vocproc { 309 int32_t tx_acdb_id; 310 int32_t rx_acdb_id; 311 int32_t tx_sample_rate; 312 int32_t rx_sample_rate; 313 }; 314 enum { 315 DEFAULT_FEATURE_SET, 316 VOL_BOOST_FEATURE_SET, 317 }; 318 struct audio_cal_info_vocvol { 319 int32_t tx_acdb_id; 320 int32_t rx_acdb_id; 321 int32_t feature_set; 322 }; 323 struct audio_cal_info_vocdev_cfg { 324 int32_t tx_acdb_id; 325 int32_t rx_acdb_id; 326 }; 327 #define MAX_VOICE_COLUMNS 20 328 union audio_cal_col_na { 329 uint8_t val8; 330 uint16_t val16; 331 uint32_t val32; 332 uint64_t val64; 333 } __attribute__((packed)); 334 struct audio_cal_col { 335 uint32_t id; 336 uint32_t type; 337 union audio_cal_col_na na_value; 338 } __attribute__((packed)); 339 struct audio_cal_col_data { 340 uint32_t num_columns; 341 struct audio_cal_col column[MAX_VOICE_COLUMNS]; 342 } __attribute__((packed)); 343 struct audio_cal_info_voc_col { 344 int32_t table_id; 345 int32_t tx_acdb_id; 346 int32_t rx_acdb_id; 347 struct audio_cal_col_data data; 348 }; 349 struct audio_cal_type_basic { 350 struct audio_cal_type_header cal_hdr; 351 struct audio_cal_data cal_data; 352 }; 353 struct audio_cal_basic { 354 struct audio_cal_header hdr; 355 struct audio_cal_type_basic cal_type; 356 }; 357 struct audio_cal_type_adm_top { 358 struct audio_cal_type_header cal_hdr; 359 struct audio_cal_data cal_data; 360 struct audio_cal_info_adm_top cal_info; 361 }; 362 struct audio_cal_adm_top { 363 struct audio_cal_header hdr; 364 struct audio_cal_type_adm_top cal_type; 365 }; 366 struct audio_cal_type_metainfo { 367 struct audio_cal_type_header cal_hdr; 368 struct audio_cal_data cal_data; 369 struct audio_cal_info_metainfo cal_info; 370 }; 371 struct audio_core_metainfo { 372 struct audio_cal_header hdr; 373 struct audio_cal_type_metainfo cal_type; 374 }; 375 struct audio_cal_type_audproc { 376 struct audio_cal_type_header cal_hdr; 377 struct audio_cal_data cal_data; 378 struct audio_cal_info_audproc cal_info; 379 }; 380 struct audio_cal_audproc { 381 struct audio_cal_header hdr; 382 struct audio_cal_type_audproc cal_type; 383 }; 384 struct audio_cal_type_audvol { 385 struct audio_cal_type_header cal_hdr; 386 struct audio_cal_data cal_data; 387 struct audio_cal_info_audvol cal_info; 388 }; 389 struct audio_cal_audvol { 390 struct audio_cal_header hdr; 391 struct audio_cal_type_audvol cal_type; 392 }; 393 struct audio_cal_type_asm_top { 394 struct audio_cal_type_header cal_hdr; 395 struct audio_cal_data cal_data; 396 struct audio_cal_info_asm_top cal_info; 397 }; 398 struct audio_cal_asm_top { 399 struct audio_cal_header hdr; 400 struct audio_cal_type_asm_top cal_type; 401 }; 402 struct audio_cal_type_audstrm { 403 struct audio_cal_type_header cal_hdr; 404 struct audio_cal_data cal_data; 405 struct audio_cal_info_audstrm cal_info; 406 }; 407 struct audio_cal_audstrm { 408 struct audio_cal_header hdr; 409 struct audio_cal_type_audstrm cal_type; 410 }; 411 struct audio_cal_type_afe { 412 struct audio_cal_type_header cal_hdr; 413 struct audio_cal_data cal_data; 414 struct audio_cal_info_afe cal_info; 415 }; 416 struct audio_cal_afe { 417 struct audio_cal_header hdr; 418 struct audio_cal_type_afe cal_type; 419 }; 420 struct audio_cal_type_afe_top { 421 struct audio_cal_type_header cal_hdr; 422 struct audio_cal_data cal_data; 423 struct audio_cal_info_afe_top cal_info; 424 }; 425 struct audio_cal_afe_top { 426 struct audio_cal_header hdr; 427 struct audio_cal_type_afe_top cal_type; 428 }; 429 struct audio_cal_type_aanc { 430 struct audio_cal_type_header cal_hdr; 431 struct audio_cal_data cal_data; 432 struct audio_cal_info_aanc cal_info; 433 }; 434 struct audio_cal_aanc { 435 struct audio_cal_header hdr; 436 struct audio_cal_type_aanc cal_type; 437 }; 438 struct audio_cal_type_fb_spk_prot_cfg { 439 struct audio_cal_type_header cal_hdr; 440 struct audio_cal_data cal_data; 441 struct audio_cal_info_spk_prot_cfg cal_info; 442 }; 443 struct audio_cal_fb_spk_prot_cfg { 444 struct audio_cal_header hdr; 445 struct audio_cal_type_fb_spk_prot_cfg cal_type; 446 }; 447 struct audio_cal_type_sp_th_vi_ftm_cfg { 448 struct audio_cal_type_header cal_hdr; 449 struct audio_cal_data cal_data; 450 struct audio_cal_info_sp_th_vi_ftm_cfg cal_info; 451 }; 452 struct audio_cal_sp_th_vi_ftm_cfg { 453 struct audio_cal_header hdr; 454 struct audio_cal_type_sp_th_vi_ftm_cfg cal_type; 455 }; 456 struct audio_cal_type_sp_ex_vi_ftm_cfg { 457 struct audio_cal_type_header cal_hdr; 458 struct audio_cal_data cal_data; 459 struct audio_cal_info_sp_ex_vi_ftm_cfg cal_info; 460 }; 461 struct audio_cal_sp_ex_vi_ftm_cfg { 462 struct audio_cal_header hdr; 463 struct audio_cal_type_sp_ex_vi_ftm_cfg cal_type; 464 }; 465 struct audio_cal_type_hw_delay { 466 struct audio_cal_type_header cal_hdr; 467 struct audio_cal_data cal_data; 468 struct audio_cal_info_hw_delay cal_info; 469 }; 470 struct audio_cal_hw_delay { 471 struct audio_cal_header hdr; 472 struct audio_cal_type_hw_delay cal_type; 473 }; 474 struct audio_cal_type_sidetone { 475 struct audio_cal_type_header cal_hdr; 476 struct audio_cal_data cal_data; 477 struct audio_cal_info_sidetone cal_info; 478 }; 479 struct audio_cal_sidetone { 480 struct audio_cal_header hdr; 481 struct audio_cal_type_sidetone cal_type; 482 }; 483 struct audio_cal_type_sidetone_iir { 484 struct audio_cal_type_header cal_hdr; 485 struct audio_cal_data cal_data; 486 struct audio_cal_info_sidetone_iir cal_info; 487 }; 488 struct audio_cal_sidetone_iir { 489 struct audio_cal_header hdr; 490 struct audio_cal_type_sidetone_iir cal_type; 491 }; 492 struct audio_cal_type_lsm_top { 493 struct audio_cal_type_header cal_hdr; 494 struct audio_cal_data cal_data; 495 struct audio_cal_info_lsm_top cal_info; 496 }; 497 struct audio_cal_lsm_top { 498 struct audio_cal_header hdr; 499 struct audio_cal_type_lsm_top cal_type; 500 }; 501 struct audio_cal_type_lsm { 502 struct audio_cal_type_header cal_hdr; 503 struct audio_cal_data cal_data; 504 struct audio_cal_info_lsm cal_info; 505 }; 506 struct audio_cal_lsm { 507 struct audio_cal_header hdr; 508 struct audio_cal_type_lsm cal_type; 509 }; 510 struct audio_cal_type_voc_top { 511 struct audio_cal_type_header cal_hdr; 512 struct audio_cal_data cal_data; 513 struct audio_cal_info_voc_top cal_info; 514 }; 515 struct audio_cal_voc_top { 516 struct audio_cal_header hdr; 517 struct audio_cal_type_voc_top cal_type; 518 }; 519 struct audio_cal_type_vocproc { 520 struct audio_cal_type_header cal_hdr; 521 struct audio_cal_data cal_data; 522 struct audio_cal_info_vocproc cal_info; 523 }; 524 struct audio_cal_vocproc { 525 struct audio_cal_header hdr; 526 struct audio_cal_type_vocproc cal_type; 527 }; 528 struct audio_cal_type_vocvol { 529 struct audio_cal_type_header cal_hdr; 530 struct audio_cal_data cal_data; 531 struct audio_cal_info_vocvol cal_info; 532 }; 533 struct audio_cal_vocvol { 534 struct audio_cal_header hdr; 535 struct audio_cal_type_vocvol cal_type; 536 }; 537 struct audio_cal_type_vocdev_cfg { 538 struct audio_cal_type_header cal_hdr; 539 struct audio_cal_data cal_data; 540 struct audio_cal_info_vocdev_cfg cal_info; 541 }; 542 struct audio_cal_vocdev_cfg { 543 struct audio_cal_header hdr; 544 struct audio_cal_type_vocdev_cfg cal_type; 545 }; 546 struct audio_cal_type_voc_col { 547 struct audio_cal_type_header cal_hdr; 548 struct audio_cal_data cal_data; 549 struct audio_cal_info_voc_col cal_info; 550 }; 551 struct audio_cal_voc_col { 552 struct audio_cal_header hdr; 553 struct audio_cal_type_voc_col cal_type; 554 }; 555 struct audio_cal_type_fb_spk_prot_status { 556 struct audio_cal_type_header cal_hdr; 557 struct audio_cal_data cal_data; 558 struct audio_cal_info_msm_spk_prot_status cal_info; 559 }; 560 struct audio_cal_fb_spk_prot_status { 561 struct audio_cal_header hdr; 562 struct audio_cal_type_fb_spk_prot_status cal_type; 563 }; 564 struct audio_cal_type_sp_th_vi_param { 565 struct audio_cal_type_header cal_hdr; 566 struct audio_cal_data cal_data; 567 struct audio_cal_info_sp_th_vi_param cal_info; 568 }; 569 struct audio_cal_sp_th_vi_param { 570 struct audio_cal_header hdr; 571 struct audio_cal_type_sp_th_vi_param cal_type; 572 }; 573 struct audio_cal_type_sp_ex_vi_param { 574 struct audio_cal_type_header cal_hdr; 575 struct audio_cal_data cal_data; 576 struct audio_cal_info_sp_ex_vi_param cal_info; 577 }; 578 struct audio_cal_sp_ex_vi_param { 579 struct audio_cal_header hdr; 580 struct audio_cal_type_sp_ex_vi_param cal_type; 581 }; 582 #endif 583 584