• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _LINUX_MSM_AUDIO_ACDB_H
2 #define _LINUX_MSM_AUDIO_ACDB_H
3 
4 #include <linux/msm_audio.h>
5 
6 #define AUDIO_SET_VOCPROC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
7 			(AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
8 #define AUDIO_SET_VOCPROC_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
9 			(AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
10 #define AUDIO_SET_VOCPROC_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
11 			(AUDIO_MAX_COMMON_IOCTL_NUM+2), unsigned)
12 #define AUDIO_SET_AUDPROC_RX_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
13 			(AUDIO_MAX_COMMON_IOCTL_NUM+3), unsigned)
14 #define AUDIO_SET_AUDPROC_RX_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
15 			(AUDIO_MAX_COMMON_IOCTL_NUM+4), unsigned)
16 #define AUDIO_SET_AUDPROC_RX_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
17 			(AUDIO_MAX_COMMON_IOCTL_NUM+5), unsigned)
18 #define AUDIO_SET_AUDPROC_TX_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
19 			(AUDIO_MAX_COMMON_IOCTL_NUM+6), unsigned)
20 #define AUDIO_SET_AUDPROC_TX_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
21 			(AUDIO_MAX_COMMON_IOCTL_NUM+7), unsigned)
22 #define AUDIO_SET_AUDPROC_TX_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
23 			(AUDIO_MAX_COMMON_IOCTL_NUM+8), unsigned)
24 #define AUDIO_SET_SIDETONE_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
25 			(AUDIO_MAX_COMMON_IOCTL_NUM+9), unsigned)
26 #define AUDIO_SET_ANC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
27 			(AUDIO_MAX_COMMON_IOCTL_NUM+10), unsigned)
28 #define AUDIO_SET_VOICE_RX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
29 			(AUDIO_MAX_COMMON_IOCTL_NUM+11), unsigned)
30 #define AUDIO_SET_VOICE_TX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
31 			(AUDIO_MAX_COMMON_IOCTL_NUM+12), unsigned)
32 #define AUDIO_SET_ADM_RX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
33 			(AUDIO_MAX_COMMON_IOCTL_NUM+13), unsigned)
34 #define AUDIO_SET_ADM_TX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
35 			(AUDIO_MAX_COMMON_IOCTL_NUM+14), unsigned)
36 #define AUDIO_SET_ASM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
37 			(AUDIO_MAX_COMMON_IOCTL_NUM+15), unsigned)
38 #define AUDIO_SET_AFE_TX_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
39 			(AUDIO_MAX_COMMON_IOCTL_NUM+16), unsigned)
40 #define AUDIO_SET_AFE_RX_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
41 			(AUDIO_MAX_COMMON_IOCTL_NUM+17), unsigned)
42 #define AUDIO_SET_VOCPROC_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
43 			(AUDIO_MAX_COMMON_IOCTL_NUM+18), unsigned)
44 #define AUDIO_SET_VOCSTRM_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
45 			(AUDIO_MAX_COMMON_IOCTL_NUM+19), unsigned)
46 #define AUDIO_SET_VOCVOL_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
47 			(AUDIO_MAX_COMMON_IOCTL_NUM+20), unsigned)
48 #define AUDIO_SET_VOCPROC_DEV_CFG_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
49 			(AUDIO_MAX_COMMON_IOCTL_NUM+21), unsigned)
50 #define AUDIO_SET_LSM_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
51 			(AUDIO_MAX_COMMON_IOCTL_NUM+22), unsigned)
52 #define AUDIO_SET_ADM_CUSTOM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
53 			(AUDIO_MAX_COMMON_IOCTL_NUM+23), unsigned)
54 #define AUDIO_SET_ASM_CUSTOM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
55 			(AUDIO_MAX_COMMON_IOCTL_NUM+24), unsigned)
56 #define AUDIO_SET_SPEAKER_PROT _IOW(AUDIO_IOCTL_MAGIC, 25, \
57 			struct msm_spk_prot_cfg)
58 #define AUDIO_GET_SPEAKER_PROT _IOR(AUDIO_IOCTL_MAGIC, 26, \
59 			struct msm_spk_prot_status)
60 #define AUDIO_SET_AANC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
61 			(AUDIO_MAX_COMMON_IOCTL_NUM+27), unsigned)
62 #define AUDIO_REGISTER_VOCPROC_VOL_TABLE	_IOW(AUDIO_IOCTL_MAGIC, \
63 			(AUDIO_MAX_COMMON_IOCTL_NUM+28), unsigned)
64 #define AUDIO_DEREGISTER_VOCPROC_VOL_TABLE	_IOW(AUDIO_IOCTL_MAGIC, \
65 			(AUDIO_MAX_COMMON_IOCTL_NUM+29), unsigned)
66 #define	AUDIO_MAX_ACDB_IOCTL	(AUDIO_MAX_COMMON_IOCTL_NUM+40)
67 
68 /* ACDB structures */
69 struct cal_block {
70 	uint32_t	cal_size;	/* Size of Cal Data */
71 	uint32_t	cal_offset;	/* offset pointer to Cal Data */
72 };
73 
74 struct sidetone_cal {
75 	uint16_t	enable;
76 	uint16_t	gain;
77 };
78 
79 enum msm_spkr_prot_states {
80 	MSM_SPKR_PROT_CALIBRATED,
81 	MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
82 	MSM_SPKR_PROT_DISABLED,
83 	MSM_SPKR_PROT_NOT_CALIBRATED
84 };
85 
86 struct msm_spk_prot_cfg {
87 	int r0;
88 	int t0;
89 	uint32_t mode; /*0 - Start spk prot
90 	1 - Start calib
91 	2 - Disable spk prot*/
92 };
93 
94 struct msm_spk_prot_status {
95 	int r0;
96 	int status;
97 };
98 
99 /* For Real-Time Audio Calibration */
100 #define AUDIO_GET_RTAC_ADM_INFO		_IOR(AUDIO_IOCTL_MAGIC, \
101 			(AUDIO_MAX_ACDB_IOCTL+1), unsigned)
102 #define AUDIO_GET_RTAC_VOICE_INFO	_IOR(AUDIO_IOCTL_MAGIC, \
103 			(AUDIO_MAX_ACDB_IOCTL+2), unsigned)
104 #define AUDIO_GET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
105 			(AUDIO_MAX_ACDB_IOCTL+3), unsigned)
106 #define AUDIO_SET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
107 			(AUDIO_MAX_ACDB_IOCTL+4), unsigned)
108 #define AUDIO_GET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
109 			(AUDIO_MAX_ACDB_IOCTL+5), unsigned)
110 #define AUDIO_SET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
111 			(AUDIO_MAX_ACDB_IOCTL+6), unsigned)
112 #define AUDIO_GET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
113 			(AUDIO_MAX_ACDB_IOCTL+7), unsigned)
114 #define AUDIO_SET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
115 			(AUDIO_MAX_ACDB_IOCTL+8), unsigned)
116 #define AUDIO_GET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
117 			(AUDIO_MAX_ACDB_IOCTL+9), unsigned)
118 #define AUDIO_SET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
119 			(AUDIO_MAX_ACDB_IOCTL+10), unsigned)
120 
121 #define	AUDIO_MAX_RTAC_IOCTL	(AUDIO_MAX_ACDB_IOCTL+20)
122 
123 #endif /* _LINUX_MSM_AUDIO_ACDB_H */
124