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