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 ADM_AUDPROC_PERSISTENT_CAL_TYPE, 108 AFE_FB_SPKR_PROT_V4_EX_VI_CAL_TYPE, 109 MAX_CAL_TYPES, 110 }; 111 112 #define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE 113 #define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE 114 #define AFE_FB_SPKR_PROT_V4_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_V4_EX_VI_CAL_TYPE 115 116 #define AFE_SIDETONE_IIR_CAL_TYPE AFE_SIDETONE_IIR_CAL_TYPE 117 118 #define AFE_LSM_TOPOLOGY_CAL_TYPE AFE_LSM_TOPOLOGY_CAL_TYPE 119 #define AFE_LSM_TX_CAL_TYPE AFE_LSM_TX_CAL_TYPE 120 #define ADM_LSM_TOPOLOGY_CAL_TYPE ADM_LSM_TOPOLOGY_CAL_TYPE 121 #define ADM_LSM_AUDPROC_CAL_TYPE ADM_LSM_AUDPROC_CAL_TYPE 122 #define ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE 123 #define ADM_AUDPROC_PERSISTENT_CAL_TYPE ADM_AUDPROC_PERSISTENT_CAL_TYPE 124 #define LSM_CAL_TYPES 125 126 #define TOPOLOGY_SPECIFIC_CHANNEL_INFO 127 #define MSM_SPKR_PROT_SPV3 128 #define MSM_SPKR_PROT_SPV4 129 130 enum { 131 VERSION_0_0, 132 }; 133 134 enum { 135 PER_VOCODER_CAL_BIT_MASK = 0x10000, 136 }; 137 138 #define MAX_IOCTL_CMD_SIZE 512 139 140 /* common structures */ 141 142 struct audio_cal_header { 143 int32_t data_size; 144 int32_t version; 145 int32_t cal_type; 146 int32_t cal_type_size; 147 }; 148 149 struct audio_cal_type_header { 150 int32_t version; 151 int32_t buffer_number; 152 }; 153 154 struct audio_cal_data { 155 /* Size of cal data at mem_handle allocation or at vaddr */ 156 int32_t cal_size; 157 /* If mem_handle if shared memory is used*/ 158 int32_t mem_handle; 159 /* size of virtual memory if shared memory not used */ 160 }; 161 162 163 /* AUDIO_ALLOCATE_CALIBRATION */ 164 struct audio_cal_type_alloc { 165 struct audio_cal_type_header cal_hdr; 166 struct audio_cal_data cal_data; 167 }; 168 169 struct audio_cal_alloc { 170 struct audio_cal_header hdr; 171 struct audio_cal_type_alloc cal_type; 172 }; 173 174 175 /* AUDIO_DEALLOCATE_CALIBRATION */ 176 struct audio_cal_type_dealloc { 177 struct audio_cal_type_header cal_hdr; 178 struct audio_cal_data cal_data; 179 }; 180 181 struct audio_cal_dealloc { 182 struct audio_cal_header hdr; 183 struct audio_cal_type_dealloc cal_type; 184 }; 185 186 187 /* AUDIO_PREPARE_CALIBRATION */ 188 struct audio_cal_type_prepare { 189 struct audio_cal_type_header cal_hdr; 190 struct audio_cal_data cal_data; 191 }; 192 193 struct audio_cal_prepare { 194 struct audio_cal_header hdr; 195 struct audio_cal_type_prepare cal_type; 196 }; 197 198 199 /* AUDIO_POST_CALIBRATION */ 200 struct audio_cal_type_post { 201 struct audio_cal_type_header cal_hdr; 202 struct audio_cal_data cal_data; 203 }; 204 205 struct audio_cal_post { 206 struct audio_cal_header hdr; 207 struct audio_cal_type_post cal_type; 208 }; 209 210 /*AUDIO_CORE_META_INFO */ 211 212 struct audio_cal_info_metainfo { 213 uint32_t nKey; 214 }; 215 216 /* Cal info types */ 217 enum { 218 RX_DEVICE, 219 TX_DEVICE, 220 MAX_PATH_TYPE 221 }; 222 223 struct audio_cal_info_adm_top { 224 int32_t topology; 225 int32_t acdb_id; 226 /* RX_DEVICE or TX_DEVICE */ 227 int32_t path; 228 int32_t app_type; 229 int32_t sample_rate; 230 }; 231 232 struct audio_cal_info_audproc { 233 int32_t acdb_id; 234 /* RX_DEVICE or TX_DEVICE */ 235 int32_t path; 236 int32_t app_type; 237 int32_t sample_rate; 238 }; 239 240 struct audio_cal_info_audvol { 241 int32_t acdb_id; 242 /* RX_DEVICE or TX_DEVICE */ 243 int32_t path; 244 int32_t app_type; 245 int32_t vol_index; 246 }; 247 248 struct audio_cal_info_afe { 249 int32_t acdb_id; 250 /* RX_DEVICE or TX_DEVICE */ 251 int32_t path; 252 int32_t sample_rate; 253 }; 254 255 struct audio_cal_info_afe_top { 256 int32_t topology; 257 int32_t acdb_id; 258 /* RX_DEVICE or TX_DEVICE */ 259 int32_t path; 260 int32_t sample_rate; 261 }; 262 263 struct audio_cal_info_asm_top { 264 int32_t topology; 265 int32_t app_type; 266 }; 267 268 struct audio_cal_info_audstrm { 269 int32_t app_type; 270 }; 271 272 struct audio_cal_info_aanc { 273 int32_t acdb_id; 274 }; 275 276 #define MAX_HW_DELAY_ENTRIES 25 277 278 struct audio_cal_hw_delay_entry { 279 uint32_t sample_rate; 280 uint32_t delay_usec; 281 }; 282 283 struct audio_cal_hw_delay_data { 284 uint32_t num_entries; 285 struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES]; 286 }; 287 288 struct audio_cal_info_hw_delay { 289 int32_t acdb_id; 290 /* RX_DEVICE or TX_DEVICE */ 291 int32_t path; 292 int32_t property_type; 293 struct audio_cal_hw_delay_data data; 294 }; 295 296 enum msm_spkr_prot_states { 297 MSM_SPKR_PROT_CALIBRATED, 298 MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS, 299 MSM_SPKR_PROT_DISABLED, 300 MSM_SPKR_PROT_NOT_CALIBRATED, 301 MSM_SPKR_PROT_PRE_CALIBRATED, 302 MSM_SPKR_PROT_IN_FTM_MODE, 303 MSM_SPKR_PROT_IN_V_VALI_MODE 304 }; 305 #define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE 306 #define MSM_SPKR_PROT_IN_V_VALI_MODE MSM_SPKR_PROT_IN_V_VALI_MODE 307 308 enum msm_spkr_count { 309 SP_V2_SPKR_1, 310 SP_V2_SPKR_2, 311 SP_V2_NUM_MAX_SPKRS 312 }; 313 314 struct audio_cal_info_spk_prot_cfg { 315 int32_t r0[SP_V2_NUM_MAX_SPKRS]; 316 int32_t t0[SP_V2_NUM_MAX_SPKRS]; 317 uint32_t quick_calib_flag; 318 uint32_t mode; 319 /* 320 * 0 - Start spk prot 321 * 1 - Start calib 322 * 2 - Disable spk prot 323 */ 324 #ifdef MSM_SPKR_PROT_SPV3 325 uint32_t sp_version; 326 int32_t limiter_th[SP_V2_NUM_MAX_SPKRS]; 327 #endif 328 }; 329 330 struct audio_cal_info_sp_th_vi_ftm_cfg { 331 /* 332 * mode should be first param, add new params later to this. 333 * we use this mode(first 4 bytes) to differentiate 334 * whether it is TH_VI FTM or v-validation. 335 */ 336 uint32_t mode; 337 /* 338 * 0 - normal running mode 339 * 1 - Calibration 340 * 2 - FTM mode 341 */ 342 uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 343 uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 344 }; 345 346 struct audio_cal_info_sp_th_vi_v_vali_cfg { 347 /* 348 * mode should be first param, add new params later to this. 349 * we use this mode(first 4 bytes) to differentiate 350 * whether it is TH_VI FTM or v-validation. 351 */ 352 uint32_t mode; 353 /* 354 * 0 - normal running mode 355 * 1 - Calibration 356 * 2 - FTM mode 357 * 3 - V-Validation mode 358 */ 359 uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 360 uint32_t vali_time[SP_V2_NUM_MAX_SPKRS]; 361 362 }; 363 364 struct audio_cal_info_sp_ex_vi_ftm_cfg { 365 uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 366 uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 367 uint32_t mode; 368 /* 369 * 0 - normal running mode 370 * 2 - FTM mode 371 */ 372 }; 373 374 struct audio_cal_info_sp_ex_vi_param { 375 int32_t freq_q20[SP_V2_NUM_MAX_SPKRS]; 376 int32_t resis_q24[SP_V2_NUM_MAX_SPKRS]; 377 int32_t qmct_q24[SP_V2_NUM_MAX_SPKRS]; 378 int32_t status[SP_V2_NUM_MAX_SPKRS]; 379 }; 380 381 struct audio_cal_info_sp_v4_ex_vi_param { 382 int32_t ftm_re_q24[SP_V2_NUM_MAX_SPKRS]; 383 int32_t ftm_Bl_q24[SP_V2_NUM_MAX_SPKRS]; 384 int32_t ftm_Rms_q24[SP_V2_NUM_MAX_SPKRS]; 385 int32_t ftm_Kms_q24[SP_V2_NUM_MAX_SPKRS]; 386 int32_t ftm_freq_q20[SP_V2_NUM_MAX_SPKRS]; 387 int32_t ftm_Qms_q24[SP_V2_NUM_MAX_SPKRS]; 388 uint32_t status[SP_V2_NUM_MAX_SPKRS]; 389 }; 390 391 struct audio_cal_info_sp_th_vi_param { 392 /* 393 * mode should be first param, add new params later to this. 394 * we use this mode(first 4 bytes) to differentiate 395 * whether it is TH_VI FTM or v-validation. 396 */ 397 uint32_t mode; 398 int32_t r_dc_q24[SP_V2_NUM_MAX_SPKRS]; 399 int32_t temp_q22[SP_V2_NUM_MAX_SPKRS]; 400 int32_t status[SP_V2_NUM_MAX_SPKRS]; 401 }; 402 403 struct audio_cal_info_sp_th_vi_v_vali_param { 404 /* 405 * mode should be first param, add new params later to this. 406 * we use this mode(first 4 bytes) to differentiate 407 * whether it is TH_VI FTM or v-validation. 408 */ 409 uint32_t mode; 410 uint32_t vrms_q24[SP_V2_NUM_MAX_SPKRS]; 411 int32_t status[SP_V2_NUM_MAX_SPKRS]; 412 }; 413 414 struct audio_cal_info_msm_spk_prot_status { 415 int32_t r0[SP_V2_NUM_MAX_SPKRS]; 416 int32_t status; 417 }; 418 419 struct audio_cal_info_sidetone { 420 uint16_t enable; 421 uint16_t gain; 422 int32_t tx_acdb_id; 423 int32_t rx_acdb_id; 424 int32_t mid; 425 int32_t pid; 426 }; 427 428 #define MAX_SIDETONE_IIR_DATA_SIZE 224 429 #define MAX_NO_IIR_FILTER_STAGE 10 430 431 struct audio_cal_info_sidetone_iir { 432 uint16_t iir_enable; 433 uint16_t num_biquad_stages; 434 uint16_t pregain; 435 int32_t tx_acdb_id; 436 int32_t rx_acdb_id; 437 int32_t mid; 438 int32_t pid; 439 uint8_t iir_config[MAX_SIDETONE_IIR_DATA_SIZE]; 440 }; 441 struct audio_cal_info_lsm_top { 442 int32_t topology; 443 int32_t acdb_id; 444 int32_t app_type; 445 }; 446 447 448 struct audio_cal_info_lsm { 449 int32_t acdb_id; 450 /* RX_DEVICE or TX_DEVICE */ 451 int32_t path; 452 int32_t app_type; 453 }; 454 455 #define VSS_NUM_CHANNELS_MAX 32 456 457 struct audio_cal_info_voc_top { 458 int32_t topology; 459 int32_t acdb_id; 460 #ifdef TOPOLOGY_SPECIFIC_CHANNEL_INFO 461 uint32_t num_channels; 462 uint8_t channel_mapping[VSS_NUM_CHANNELS_MAX]; 463 #endif 464 }; 465 466 struct audio_cal_info_vocproc { 467 int32_t tx_acdb_id; 468 int32_t rx_acdb_id; 469 int32_t tx_sample_rate; 470 int32_t rx_sample_rate; 471 }; 472 473 enum { 474 DEFAULT_FEATURE_SET, 475 VOL_BOOST_FEATURE_SET, 476 }; 477 478 struct audio_cal_info_vocvol { 479 int32_t tx_acdb_id; 480 int32_t rx_acdb_id; 481 /* DEFAULT_ or VOL_BOOST_FEATURE_SET */ 482 int32_t feature_set; 483 }; 484 485 struct audio_cal_info_vocdev_cfg { 486 int32_t tx_acdb_id; 487 int32_t rx_acdb_id; 488 }; 489 490 #define MAX_VOICE_COLUMNS 20 491 492 union audio_cal_col_na { 493 uint8_t val8; 494 uint16_t val16; 495 uint32_t val32; 496 uint64_t val64; 497 } __attribute__((packed)); 498 499 struct audio_cal_col { 500 uint32_t id; 501 uint32_t type; 502 union audio_cal_col_na na_value; 503 } __attribute__((packed)); 504 505 struct audio_cal_col_data { 506 uint32_t num_columns; 507 struct audio_cal_col column[MAX_VOICE_COLUMNS]; 508 } __attribute__((packed)); 509 510 struct audio_cal_info_voc_col { 511 int32_t table_id; 512 int32_t tx_acdb_id; 513 int32_t rx_acdb_id; 514 struct audio_cal_col_data data; 515 }; 516 517 /* AUDIO_SET_CALIBRATION & */ 518 struct audio_cal_type_basic { 519 struct audio_cal_type_header cal_hdr; 520 struct audio_cal_data cal_data; 521 }; 522 523 struct audio_cal_basic { 524 struct audio_cal_header hdr; 525 struct audio_cal_type_basic cal_type; 526 }; 527 528 struct audio_cal_type_adm_top { 529 struct audio_cal_type_header cal_hdr; 530 struct audio_cal_data cal_data; 531 struct audio_cal_info_adm_top cal_info; 532 }; 533 534 struct audio_cal_adm_top { 535 struct audio_cal_header hdr; 536 struct audio_cal_type_adm_top cal_type; 537 }; 538 539 struct audio_cal_type_metainfo { 540 struct audio_cal_type_header cal_hdr; 541 struct audio_cal_data cal_data; 542 struct audio_cal_info_metainfo cal_info; 543 }; 544 545 struct audio_core_metainfo { 546 struct audio_cal_header hdr; 547 struct audio_cal_type_metainfo cal_type; 548 }; 549 550 struct audio_cal_type_audproc { 551 struct audio_cal_type_header cal_hdr; 552 struct audio_cal_data cal_data; 553 struct audio_cal_info_audproc cal_info; 554 }; 555 556 struct audio_cal_audproc { 557 struct audio_cal_header hdr; 558 struct audio_cal_type_audproc cal_type; 559 }; 560 561 struct audio_cal_type_audvol { 562 struct audio_cal_type_header cal_hdr; 563 struct audio_cal_data cal_data; 564 struct audio_cal_info_audvol cal_info; 565 }; 566 567 struct audio_cal_audvol { 568 struct audio_cal_header hdr; 569 struct audio_cal_type_audvol cal_type; 570 }; 571 572 struct audio_cal_type_asm_top { 573 struct audio_cal_type_header cal_hdr; 574 struct audio_cal_data cal_data; 575 struct audio_cal_info_asm_top cal_info; 576 }; 577 578 struct audio_cal_asm_top { 579 struct audio_cal_header hdr; 580 struct audio_cal_type_asm_top cal_type; 581 }; 582 583 struct audio_cal_type_audstrm { 584 struct audio_cal_type_header cal_hdr; 585 struct audio_cal_data cal_data; 586 struct audio_cal_info_audstrm cal_info; 587 }; 588 589 struct audio_cal_audstrm { 590 struct audio_cal_header hdr; 591 struct audio_cal_type_audstrm cal_type; 592 }; 593 594 struct audio_cal_type_afe { 595 struct audio_cal_type_header cal_hdr; 596 struct audio_cal_data cal_data; 597 struct audio_cal_info_afe cal_info; 598 }; 599 600 struct audio_cal_afe { 601 struct audio_cal_header hdr; 602 struct audio_cal_type_afe cal_type; 603 }; 604 605 struct audio_cal_type_afe_top { 606 struct audio_cal_type_header cal_hdr; 607 struct audio_cal_data cal_data; 608 struct audio_cal_info_afe_top cal_info; 609 }; 610 611 struct audio_cal_afe_top { 612 struct audio_cal_header hdr; 613 struct audio_cal_type_afe_top cal_type; 614 }; 615 616 struct audio_cal_type_aanc { 617 struct audio_cal_type_header cal_hdr; 618 struct audio_cal_data cal_data; 619 struct audio_cal_info_aanc cal_info; 620 }; 621 622 struct audio_cal_aanc { 623 struct audio_cal_header hdr; 624 struct audio_cal_type_aanc cal_type; 625 }; 626 627 struct audio_cal_type_fb_spk_prot_cfg { 628 struct audio_cal_type_header cal_hdr; 629 struct audio_cal_data cal_data; 630 struct audio_cal_info_spk_prot_cfg cal_info; 631 }; 632 633 struct audio_cal_fb_spk_prot_cfg { 634 struct audio_cal_header hdr; 635 struct audio_cal_type_fb_spk_prot_cfg cal_type; 636 }; 637 638 struct audio_cal_type_sp_th_vi_ftm_cfg { 639 struct audio_cal_type_header cal_hdr; 640 struct audio_cal_data cal_data; 641 struct audio_cal_info_sp_th_vi_ftm_cfg cal_info; 642 }; 643 644 struct audio_cal_sp_th_vi_ftm_cfg { 645 struct audio_cal_header hdr; 646 struct audio_cal_type_sp_th_vi_ftm_cfg cal_type; 647 }; 648 649 struct audio_cal_type_sp_th_vi_v_vali_cfg { 650 struct audio_cal_type_header cal_hdr; 651 struct audio_cal_data cal_data; 652 struct audio_cal_info_sp_th_vi_v_vali_cfg cal_info; 653 }; 654 655 struct audio_cal_sp_th_vi_v_vali_cfg { 656 struct audio_cal_header hdr; 657 struct audio_cal_type_sp_th_vi_v_vali_cfg cal_type; 658 }; 659 660 struct audio_cal_type_sp_ex_vi_ftm_cfg { 661 struct audio_cal_type_header cal_hdr; 662 struct audio_cal_data cal_data; 663 struct audio_cal_info_sp_ex_vi_ftm_cfg cal_info; 664 }; 665 666 struct audio_cal_sp_ex_vi_ftm_cfg { 667 struct audio_cal_header hdr; 668 struct audio_cal_type_sp_ex_vi_ftm_cfg cal_type; 669 }; 670 struct audio_cal_type_hw_delay { 671 struct audio_cal_type_header cal_hdr; 672 struct audio_cal_data cal_data; 673 struct audio_cal_info_hw_delay cal_info; 674 }; 675 676 struct audio_cal_hw_delay { 677 struct audio_cal_header hdr; 678 struct audio_cal_type_hw_delay cal_type; 679 }; 680 681 struct audio_cal_type_sidetone { 682 struct audio_cal_type_header cal_hdr; 683 struct audio_cal_data cal_data; 684 struct audio_cal_info_sidetone cal_info; 685 }; 686 687 struct audio_cal_sidetone { 688 struct audio_cal_header hdr; 689 struct audio_cal_type_sidetone cal_type; 690 }; 691 692 struct audio_cal_type_sidetone_iir { 693 struct audio_cal_type_header cal_hdr; 694 struct audio_cal_data cal_data; 695 struct audio_cal_info_sidetone_iir cal_info; 696 }; 697 698 struct audio_cal_sidetone_iir { 699 struct audio_cal_header hdr; 700 struct audio_cal_type_sidetone_iir cal_type; 701 }; 702 703 struct audio_cal_type_lsm_top { 704 struct audio_cal_type_header cal_hdr; 705 struct audio_cal_data cal_data; 706 struct audio_cal_info_lsm_top cal_info; 707 }; 708 709 struct audio_cal_lsm_top { 710 struct audio_cal_header hdr; 711 struct audio_cal_type_lsm_top cal_type; 712 }; 713 714 struct audio_cal_type_lsm { 715 struct audio_cal_type_header cal_hdr; 716 struct audio_cal_data cal_data; 717 struct audio_cal_info_lsm cal_info; 718 }; 719 720 struct audio_cal_lsm { 721 struct audio_cal_header hdr; 722 struct audio_cal_type_lsm cal_type; 723 }; 724 725 struct audio_cal_type_voc_top { 726 struct audio_cal_type_header cal_hdr; 727 struct audio_cal_data cal_data; 728 struct audio_cal_info_voc_top cal_info; 729 }; 730 731 struct audio_cal_voc_top { 732 struct audio_cal_header hdr; 733 struct audio_cal_type_voc_top cal_type; 734 }; 735 736 struct audio_cal_type_vocproc { 737 struct audio_cal_type_header cal_hdr; 738 struct audio_cal_data cal_data; 739 struct audio_cal_info_vocproc cal_info; 740 }; 741 742 struct audio_cal_vocproc { 743 struct audio_cal_header hdr; 744 struct audio_cal_type_vocproc cal_type; 745 }; 746 747 struct audio_cal_type_vocvol { 748 struct audio_cal_type_header cal_hdr; 749 struct audio_cal_data cal_data; 750 struct audio_cal_info_vocvol cal_info; 751 }; 752 753 struct audio_cal_vocvol { 754 struct audio_cal_header hdr; 755 struct audio_cal_type_vocvol cal_type; 756 }; 757 758 struct audio_cal_type_vocdev_cfg { 759 struct audio_cal_type_header cal_hdr; 760 struct audio_cal_data cal_data; 761 struct audio_cal_info_vocdev_cfg cal_info; 762 }; 763 764 struct audio_cal_vocdev_cfg { 765 struct audio_cal_header hdr; 766 struct audio_cal_type_vocdev_cfg cal_type; 767 }; 768 769 struct audio_cal_type_voc_col { 770 struct audio_cal_type_header cal_hdr; 771 struct audio_cal_data cal_data; 772 struct audio_cal_info_voc_col cal_info; 773 }; 774 775 struct audio_cal_voc_col { 776 struct audio_cal_header hdr; 777 struct audio_cal_type_voc_col cal_type; 778 }; 779 780 /* AUDIO_GET_CALIBRATION */ 781 struct audio_cal_type_fb_spk_prot_status { 782 struct audio_cal_type_header cal_hdr; 783 struct audio_cal_data cal_data; 784 struct audio_cal_info_msm_spk_prot_status cal_info; 785 }; 786 787 struct audio_cal_fb_spk_prot_status { 788 struct audio_cal_header hdr; 789 struct audio_cal_type_fb_spk_prot_status cal_type; 790 }; 791 792 struct audio_cal_type_sp_th_vi_param { 793 struct audio_cal_type_header cal_hdr; 794 struct audio_cal_data cal_data; 795 struct audio_cal_info_sp_th_vi_param cal_info; 796 }; 797 798 struct audio_cal_sp_th_vi_param { 799 struct audio_cal_header hdr; 800 struct audio_cal_type_sp_th_vi_param cal_type; 801 }; 802 803 struct audio_cal_type_sp_th_vi_v_vali_param { 804 struct audio_cal_type_header cal_hdr; 805 struct audio_cal_data cal_data; 806 struct audio_cal_info_sp_th_vi_v_vali_param cal_info; 807 }; 808 809 struct audio_cal_sp_th_vi_v_vali_param { 810 struct audio_cal_header hdr; 811 struct audio_cal_type_sp_th_vi_v_vali_param cal_type; 812 }; 813 814 struct audio_cal_type_sp_ex_vi_param { 815 struct audio_cal_type_header cal_hdr; 816 struct audio_cal_data cal_data; 817 struct audio_cal_info_sp_ex_vi_param cal_info; 818 }; 819 820 struct audio_cal_sp_ex_vi_param { 821 struct audio_cal_header hdr; 822 struct audio_cal_type_sp_ex_vi_param cal_type; 823 }; 824 825 struct audio_cal_type_sp_v4_ex_vi_param { 826 struct audio_cal_type_header cal_hdr; 827 struct audio_cal_data cal_data; 828 struct audio_cal_info_sp_v4_ex_vi_param cal_info; 829 }; 830 831 struct audio_cal_sp_v4_ex_vi_param { 832 struct audio_cal_header hdr; 833 struct audio_cal_type_sp_v4_ex_vi_param cal_type; 834 }; 835 836 #endif /* _MSM_AUDIO_CALIBRATION_H */ 837