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