1d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#ifndef _UAPI_MSM_AUDIO_CALIBRATION_H 2d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define _UAPI_MSM_AUDIO_CALIBRATION_H 35d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 45d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/types.h> 55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/ioctl.h> 65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CAL_IOCTL_MAGIC 'a' 85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 200, void *) 115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 201, void *) 135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 202, void *) 155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 203, void *) 175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 204, void *) 195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, \ 205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 205, void *) 215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* For Real-Time Audio Calibration */ 235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC, \ 245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 207, void *) 255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC, \ 265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 208, void *) 275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, \ 285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 209, void *) 295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, \ 305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 210, void *) 315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, \ 325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 211, void *) 335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, \ 345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 212, void *) 355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, \ 365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 213, void *) 375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, \ 385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 214, void *) 395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, \ 405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 215, void *) 415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, \ 425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 216, void *) 435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, \ 445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 217, void *) 455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, \ 465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 218, void *) 475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum { 485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0, 495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOC_TX_TOPOLOGY_CAL_TYPE, 505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOCPROC_STATIC_CAL_TYPE, 515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOCPROC_DYNAMIC_CAL_TYPE, 525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVS_VOCSTRM_STATIC_CAL_TYPE, 535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOCDEV_CFG_CAL_TYPE, 545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOCPROC_STATIC_COL_CAL_TYPE, 555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE, 565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CVS_VOCSTRM_STATIC_COL_CAL_TYPE, 575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_TOPOLOGY_CAL_TYPE, 595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_CUST_TOPOLOGY_CAL_TYPE, 605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_AUDPROC_CAL_TYPE, 615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_AUDVOL_CAL_TYPE, 625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ASM_TOPOLOGY_CAL_TYPE, 645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ASM_CUST_TOPOLOGY_CAL_TYPE, 655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ASM_AUDSTRM_CAL_TYPE, 665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_COMMON_RX_CAL_TYPE, 685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_COMMON_TX_CAL_TYPE, 695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_ANC_CAL_TYPE, 705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_AANC_CAL_TYPE, 715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_FB_SPKR_PROT_CAL_TYPE, 725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_HW_DELAY_CAL_TYPE, 735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_SIDETONE_CAL_TYPE, 745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_TOPOLOGY_CAL_TYPE, 755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AFE_CUST_TOPOLOGY_CAL_TYPE, 765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin LSM_CUST_TOPOLOGY_CAL_TYPE, 785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin LSM_TOPOLOGY_CAL_TYPE, 795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin LSM_CAL_TYPE, 805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_RTAC_INFO_CAL_TYPE, 825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin VOICE_RTAC_INFO_CAL_TYPE, 835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_RTAC_APR_CAL_TYPE, 845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ASM_RTAC_APR_CAL_TYPE, 855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin VOICE_RTAC_APR_CAL_TYPE, 865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MAD_CAL_TYPE, 885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ULP_AFE_CAL_TYPE, 895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ULP_LSM_CAL_TYPE, 905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin DTS_EAGLE_CAL_TYPE, 925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AUDIO_CORE_METAINFO_CAL_TYPE, 935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SRS_TRUMEDIA_CAL_TYPE, 945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CORE_CUSTOM_TOPOLOGIES_CAL_TYPE, 965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ADM_RTAC_AUDVOL_CAL_TYPE, 975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ULP_LSM_TOPOLOGY_ID_CAL_TYPE, 99d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE, 100d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE, 1015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MAX_CAL_TYPES, 1025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 104d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE 105d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE 106d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 1075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum { 1085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin VERSION_0_0, 1095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum { 1125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin PER_VOCODER_CAL_BIT_MASK = 0x10000, 1135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_IOCTL_CMD_SIZE 512 1165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* common structures */ 1185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_header { 1205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t data_size; 1215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t version; 1225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t cal_type; 1235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t cal_type_size; 1245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_header { 1275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t version; 1285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t buffer_number; 1295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_data { 1325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* Size of cal data at mem_handle allocation or at vaddr */ 1335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t cal_size; 1345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* If mem_handle if shared memory is used*/ 1355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t mem_handle; 1365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* size of virtual memory if shared memory not used */ 1375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_ALLOCATE_CALIBRATION */ 1415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_alloc { 1425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 1435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 1445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_alloc { 1475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 1485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_alloc cal_type; 1495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_DEALLOCATE_CALIBRATION */ 1535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_dealloc { 1545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 1555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 1565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_dealloc { 1595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 1605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_dealloc cal_type; 1615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_PREPARE_CALIBRATION */ 1655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_prepare { 1665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 1675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 1685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_prepare { 1715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 1725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_prepare cal_type; 1735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_POST_CALIBRATION */ 1775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_post { 1785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 1795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 1805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_post { 1835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 1845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_post cal_type; 1855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*AUDIO_CORE_META_INFO */ 1885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_metainfo { 1905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t nKey; 1915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* Cal info types */ 1945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum { 1955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin RX_DEVICE, 1965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin TX_DEVICE, 1975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MAX_PATH_TYPE 1985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_adm_top { 2015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t topology; 2025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 2065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t sample_rate; 2075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_audproc { 2105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 2145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t sample_rate; 2155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_audvol { 2185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 2225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t vol_index; 2235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_afe { 2265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t sample_rate; 2305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_afe_top { 2335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t topology; 2345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t sample_rate; 2385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_asm_top { 2415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t topology; 2425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 2435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_audstrm { 2465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 2475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_aanc { 2505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_HW_DELAY_ENTRIES 25 2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_hw_delay_entry { 2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t sample_rate; 2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t delay_usec; 2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_hw_delay_data { 2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t num_entries; 2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES]; 2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_hw_delay { 2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t property_type; 2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_hw_delay_data data; 2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_spkr_prot_states { 2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SPKR_PROT_CALIBRATED, 2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS, 2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SPKR_PROT_DISABLED, 2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SPKR_PROT_NOT_CALIBRATED, 2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SPKR_PROT_PRE_CALIBRATED, 279d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin MSM_SPKR_PROT_IN_FTM_MODE 2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 281d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE 2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_spkr_count { 2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SP_V2_SPKR_1, 2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SP_V2_SPKR_2, 2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SP_V2_NUM_MAX_SPKRS 2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_spk_prot_cfg { 2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t r0[SP_V2_NUM_MAX_SPKRS]; 2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t t0[SP_V2_NUM_MAX_SPKRS]; 2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t quick_calib_flag; 293d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t mode; 294d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin /* 295d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 0 - Start spk prot 296d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 1 - Start calib 297d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 2 - Disable spk prot 298d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin */ 299d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 300d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 301d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_info_sp_th_vi_ftm_cfg { 302d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 303d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 304d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t mode; 305d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin /* 306d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 0 - normal running mode 307d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 1 - Calibration 308d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 2 - FTM mode 309d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin */ 310d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 311d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 312d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_info_sp_ex_vi_ftm_cfg { 313d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t wait_time[SP_V2_NUM_MAX_SPKRS]; 314d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS]; 315d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin uint32_t mode; 316d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin /* 317d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 0 - normal running mode 318d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 2 - FTM mode 319d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin */ 320d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 321d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 322d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_info_sp_ex_vi_param { 323d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t freq_q20[SP_V2_NUM_MAX_SPKRS]; 324d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t resis_q24[SP_V2_NUM_MAX_SPKRS]; 325d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t qmct_q24[SP_V2_NUM_MAX_SPKRS]; 326d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t status[SP_V2_NUM_MAX_SPKRS]; 327d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 328d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 329d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_info_sp_th_vi_param { 330d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t r_dc_q24[SP_V2_NUM_MAX_SPKRS]; 331d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t temp_q22[SP_V2_NUM_MAX_SPKRS]; 332d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin int32_t status[SP_V2_NUM_MAX_SPKRS]; 3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_msm_spk_prot_status { 3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t r0[SP_V2_NUM_MAX_SPKRS]; 3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t status; 3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_sidetone { 3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t enable; 3425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t gain; 3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_acdb_id; 3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_acdb_id; 3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t mid; 3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t pid; 3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_lsm_top { 3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t topology; 3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_lsm { 3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* RX_DEVICE or TX_DEVICE */ 3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t path; 3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t app_type; 3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_voc_top { 3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t topology; 3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t acdb_id; 3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_vocproc { 3695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_acdb_id; 3705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_acdb_id; 3715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_sample_rate; 3725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_sample_rate; 3735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum { 3765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin DEFAULT_FEATURE_SET, 3775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin VOL_BOOST_FEATURE_SET, 3785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_vocvol { 3815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_acdb_id; 3825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_acdb_id; 3835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* DEFUALT_ or VOL_BOOST_FEATURE_SET */ 3845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t feature_set; 3855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_vocdev_cfg { 3885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_acdb_id; 3895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_acdb_id; 3905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_VOICE_COLUMNS 20 3935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinunion audio_cal_col_na { 3955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint8_t val8; 3965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t val16; 3975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t val32; 3985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint64_t val64; 399d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __packed; 4005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_col { 4025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t id; 4035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t type; 4045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin union audio_cal_col_na na_value; 405d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __packed; 4065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_col_data { 4085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t num_columns; 4095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_col column[MAX_VOICE_COLUMNS]; 410d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __packed; 4115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_info_voc_col { 4135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t table_id; 4145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t tx_acdb_id; 4155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int32_t rx_acdb_id; 4165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_col_data data; 4175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_SET_CALIBRATION & */ 4205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_basic { 4215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_basic { 4265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_basic cal_type; 4285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_adm_top { 4315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_adm_top cal_info; 4345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_adm_top { 4375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_adm_top cal_type; 4395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_metainfo { 4425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_metainfo cal_info; 4455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_core_metainfo { 4485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_metainfo cal_type; 4505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_audproc { 4535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_audproc cal_info; 4565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_audproc { 4595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_audproc cal_type; 4615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_audvol { 4645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_audvol cal_info; 4675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_audvol { 4705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_audvol cal_type; 4725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_asm_top { 4755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_asm_top cal_info; 4785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_asm_top { 4815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_asm_top cal_type; 4835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_audstrm { 4865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_audstrm cal_info; 4895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_audstrm { 4925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 4935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_audstrm cal_type; 4945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 4955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 4965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_afe { 4975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 4985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 4995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_afe cal_info; 5005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_afe { 5035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_afe cal_type; 5055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_afe_top { 5085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_afe_top cal_info; 5115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_afe_top { 5145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_afe_top cal_type; 5165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_aanc { 5195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_aanc cal_info; 5225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_aanc { 5255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_aanc cal_type; 5275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_fb_spk_prot_cfg { 5305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_spk_prot_cfg cal_info; 5335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_fb_spk_prot_cfg { 5365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_fb_spk_prot_cfg cal_type; 5385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 540d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_type_sp_th_vi_ftm_cfg { 541d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_header cal_hdr; 542d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_data cal_data; 543d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_info_sp_th_vi_ftm_cfg cal_info; 544d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 545d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 546d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_sp_th_vi_ftm_cfg { 547d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_header hdr; 548d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_sp_th_vi_ftm_cfg cal_type; 549d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 550d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 551d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_type_sp_ex_vi_ftm_cfg { 552d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_header cal_hdr; 553d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_data cal_data; 554d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_info_sp_ex_vi_ftm_cfg cal_info; 555d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 556d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 557d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_sp_ex_vi_ftm_cfg { 558d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_header hdr; 559d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_sp_ex_vi_ftm_cfg cal_type; 560d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 5615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_hw_delay { 5625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_hw_delay cal_info; 5655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_hw_delay { 5685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_hw_delay cal_type; 5705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_sidetone { 5735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_sidetone cal_info; 5765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_sidetone { 5795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_sidetone cal_type; 5815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_lsm_top { 5845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_lsm_top cal_info; 5875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_lsm_top { 5905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 5915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_lsm_top cal_type; 5925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 5945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_lsm { 5955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 5965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 5975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_lsm cal_info; 5985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 5995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_lsm { 6015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_lsm cal_type; 6035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_voc_top { 6065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_voc_top cal_info; 6095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_voc_top { 6125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_voc_top cal_type; 6145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_vocproc { 6175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_vocproc cal_info; 6205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_vocproc { 6235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_vocproc cal_type; 6255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_vocvol { 6285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_vocvol cal_info; 6315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_vocvol { 6345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_vocvol cal_type; 6365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_vocdev_cfg { 6395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_vocdev_cfg cal_info; 6425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_vocdev_cfg { 6455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_vocdev_cfg cal_type; 6475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_voc_col { 6505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_voc_col cal_info; 6535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_voc_col { 6565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_voc_col cal_type; 6585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/* AUDIO_GET_CALIBRATION */ 6615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_type_fb_spk_prot_status { 6625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_header cal_hdr; 6635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_data cal_data; 6645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_info_msm_spk_prot_status cal_info; 6655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 6675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct audio_cal_fb_spk_prot_status { 6685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_header hdr; 6695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct audio_cal_type_fb_spk_prot_status cal_type; 6705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 6715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 672d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_type_sp_th_vi_param { 673d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_header cal_hdr; 674d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_data cal_data; 675d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_info_sp_th_vi_param cal_info; 676d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 677d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 678d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_sp_th_vi_param { 679d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_header hdr; 680d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_sp_th_vi_param cal_type; 681d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 682d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_type_sp_ex_vi_param { 683d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_header cal_hdr; 684d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_data cal_data; 685d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_info_sp_ex_vi_param cal_info; 686d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 687d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin 688d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct audio_cal_sp_ex_vi_param { 689d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_header hdr; 690d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin struct audio_cal_type_sp_ex_vi_param cal_type; 691d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin}; 692d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#endif /* _UAPI_MSM_AUDIO_CALIBRATION_H */ 693