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