• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _UAPI_MSM_AUDIO_ACDB_H
2 #define _UAPI_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_SET_HW_DELAY_RX	_IOW(AUDIO_IOCTL_MAGIC, \
67 			(AUDIO_MAX_COMMON_IOCTL_NUM+30), struct hw_delay)
68 #define AUDIO_SET_HW_DELAY_TX	_IOW(AUDIO_IOCTL_MAGIC, \
69 			(AUDIO_MAX_COMMON_IOCTL_NUM+31), struct hw_delay)
70 
71 #define AUDIO_LISTEN_SET_ULP_LSM_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
72 			(AUDIO_MAX_COMMON_IOCTL_NUM+32), void *)
73 
74 #define AUDIO_LISTEN_SET_ULP_AFE_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
75 			(AUDIO_MAX_COMMON_IOCTL_NUM+33), void *)
76 #define	AUDIO_MAX_ACDB_IOCTL	(AUDIO_MAX_COMMON_IOCTL_NUM+40)
77 
78 /* ACDB structures */
79 struct cal_block {
80 	uint32_t	cal_size;	/* Size of Cal Data */
81 	uint32_t	cal_offset;	/* offset pointer to Cal Data */
82 };
83 
84 struct sidetone_cal {
85 	uint16_t	enable;
86 	uint16_t	gain;
87 };
88 
89 enum msm_spkr_prot_states {
90 	MSM_SPKR_PROT_CALIBRATED,
91 	MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
92 	MSM_SPKR_PROT_DISABLED,
93 	MSM_SPKR_PROT_NOT_CALIBRATED
94 };
95 
96 struct msm_spk_prot_cfg {
97 	int r0;
98 	int t0;
99 	uint32_t mode; /*0 - Start spk prot
100 	1 - Start calib
101 	2 - Disable spk prot*/
102 };
103 
104 struct msm_spk_prot_status {
105 	int r0;
106 	int status;
107 };
108 
109 struct hw_delay {
110 	uint32_t num_entries;
111 	void *delay_info;
112 };
113 
114 /* For Real-Time Audio Calibration */
115 #define AUDIO_GET_RTAC_ADM_INFO		_IOR(AUDIO_IOCTL_MAGIC, \
116 			(AUDIO_MAX_ACDB_IOCTL+1), unsigned)
117 #define AUDIO_GET_RTAC_VOICE_INFO	_IOR(AUDIO_IOCTL_MAGIC, \
118 			(AUDIO_MAX_ACDB_IOCTL+2), unsigned)
119 #define AUDIO_GET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
120 			(AUDIO_MAX_ACDB_IOCTL+3), unsigned)
121 #define AUDIO_SET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
122 			(AUDIO_MAX_ACDB_IOCTL+4), unsigned)
123 #define AUDIO_GET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
124 			(AUDIO_MAX_ACDB_IOCTL+5), unsigned)
125 #define AUDIO_SET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
126 			(AUDIO_MAX_ACDB_IOCTL+6), unsigned)
127 #define AUDIO_GET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
128 			(AUDIO_MAX_ACDB_IOCTL+7), unsigned)
129 #define AUDIO_SET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
130 			(AUDIO_MAX_ACDB_IOCTL+8), unsigned)
131 #define AUDIO_GET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
132 			(AUDIO_MAX_ACDB_IOCTL+9), unsigned)
133 #define AUDIO_SET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
134 			(AUDIO_MAX_ACDB_IOCTL+10), unsigned)
135 #define AUDIO_GET_RTAC_ADM_INFO_V2	_IOWR(AUDIO_IOCTL_MAGIC, \
136 			(AUDIO_MAX_ACDB_IOCTL+11), unsigned)
137 
138 #define	AUDIO_MAX_RTAC_IOCTL	(AUDIO_MAX_ACDB_IOCTL+20)
139 
140 #endif /* _UAPI_MSM_AUDIO_ACDB_H */
141