• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _MSM_AUDIO_CALIBRATION_H
20 #define _MSM_AUDIO_CALIBRATION_H
21 #include <linux/types.h>
22 #include <linux/ioctl.h>
23 #define CAL_IOCTL_MAGIC 'a'
24 #define AUDIO_ALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 200, void *)
25 #define AUDIO_DEALLOCATE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 201, void *)
26 #define AUDIO_PREPARE_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 202, void *)
27 #define AUDIO_SET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 203, void *)
28 #define AUDIO_GET_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 204, void *)
29 #define AUDIO_POST_CALIBRATION _IOWR(CAL_IOCTL_MAGIC, 205, void *)
30 #define AUDIO_GET_RTAC_ADM_INFO _IOR(CAL_IOCTL_MAGIC, 207, void *)
31 #define AUDIO_GET_RTAC_VOICE_INFO _IOR(CAL_IOCTL_MAGIC, 208, void *)
32 #define AUDIO_GET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 209, void *)
33 #define AUDIO_SET_RTAC_ADM_CAL _IOWR(CAL_IOCTL_MAGIC, 210, void *)
34 #define AUDIO_GET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 211, void *)
35 #define AUDIO_SET_RTAC_ASM_CAL _IOWR(CAL_IOCTL_MAGIC, 212, void *)
36 #define AUDIO_GET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 213, void *)
37 #define AUDIO_SET_RTAC_CVS_CAL _IOWR(CAL_IOCTL_MAGIC, 214, void *)
38 #define AUDIO_GET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 215, void *)
39 #define AUDIO_SET_RTAC_CVP_CAL _IOWR(CAL_IOCTL_MAGIC, 216, void *)
40 #define AUDIO_GET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 217, void *)
41 #define AUDIO_SET_RTAC_AFE_CAL _IOWR(CAL_IOCTL_MAGIC, 218, void *)
42 enum {
43   CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
44   CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
45   CVP_VOCPROC_STATIC_CAL_TYPE,
46   CVP_VOCPROC_DYNAMIC_CAL_TYPE,
47   CVS_VOCSTRM_STATIC_CAL_TYPE,
48   CVP_VOCDEV_CFG_CAL_TYPE,
49   CVP_VOCPROC_STATIC_COL_CAL_TYPE,
50   CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
51   CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
52   ADM_TOPOLOGY_CAL_TYPE,
53   ADM_CUST_TOPOLOGY_CAL_TYPE,
54   ADM_AUDPROC_CAL_TYPE,
55   ADM_AUDVOL_CAL_TYPE,
56   ASM_TOPOLOGY_CAL_TYPE,
57   ASM_CUST_TOPOLOGY_CAL_TYPE,
58   ASM_AUDSTRM_CAL_TYPE,
59   AFE_COMMON_RX_CAL_TYPE,
60   AFE_COMMON_TX_CAL_TYPE,
61   AFE_ANC_CAL_TYPE,
62   AFE_AANC_CAL_TYPE,
63   AFE_FB_SPKR_PROT_CAL_TYPE,
64   AFE_HW_DELAY_CAL_TYPE,
65   AFE_SIDETONE_CAL_TYPE,
66   AFE_TOPOLOGY_CAL_TYPE,
67   AFE_CUST_TOPOLOGY_CAL_TYPE,
68   LSM_CUST_TOPOLOGY_CAL_TYPE,
69   LSM_TOPOLOGY_CAL_TYPE,
70   LSM_CAL_TYPE,
71   ADM_RTAC_INFO_CAL_TYPE,
72   VOICE_RTAC_INFO_CAL_TYPE,
73   ADM_RTAC_APR_CAL_TYPE,
74   ASM_RTAC_APR_CAL_TYPE,
75   VOICE_RTAC_APR_CAL_TYPE,
76   MAD_CAL_TYPE,
77   ULP_AFE_CAL_TYPE,
78   ULP_LSM_CAL_TYPE,
79   DTS_EAGLE_CAL_TYPE,
80   AUDIO_CORE_METAINFO_CAL_TYPE,
81   SRS_TRUMEDIA_CAL_TYPE,
82   CORE_CUSTOM_TOPOLOGIES_CAL_TYPE,
83   ADM_RTAC_AUDVOL_CAL_TYPE,
84   ULP_LSM_TOPOLOGY_ID_CAL_TYPE,
85   AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE,
86   AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE,
87   AFE_SIDETONE_IIR_CAL_TYPE,
88   AFE_LSM_TOPOLOGY_CAL_TYPE,
89   AFE_LSM_TX_CAL_TYPE,
90   ADM_LSM_TOPOLOGY_CAL_TYPE,
91   ADM_LSM_AUDPROC_CAL_TYPE,
92   ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE,
93   MAX_CAL_TYPES,
94 };
95 #define AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE AFE_FB_SPKR_PROT_TH_VI_CAL_TYPE
96 #define AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE AFE_FB_SPKR_PROT_EX_VI_CAL_TYPE
97 #define AFE_SIDETONE_IIR_CAL_TYPE AFE_SIDETONE_IIR_CAL_TYPE
98 #define AFE_LSM_TOPOLOGY_CAL_TYPE AFE_LSM_TOPOLOGY_CAL_TYPE
99 #define AFE_LSM_TX_CAL_TYPE AFE_LSM_TX_CAL_TYPE
100 #define ADM_LSM_TOPOLOGY_CAL_TYPE ADM_LSM_TOPOLOGY_CAL_TYPE
101 #define ADM_LSM_AUDPROC_CAL_TYPE ADM_LSM_AUDPROC_CAL_TYPE
102 #define ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE ADM_LSM_AUDPROC_PERSISTENT_CAL_TYPE
103 #define LSM_CAL_TYPES
104 #define TOPOLOGY_SPECIFIC_CHANNEL_INFO
105 #define MSM_SPKR_PROT_SPV3
106 enum {
107   VERSION_0_0,
108 };
109 enum {
110   PER_VOCODER_CAL_BIT_MASK = 0x10000,
111 };
112 #define MAX_IOCTL_CMD_SIZE 512
113 struct audio_cal_header {
114   int32_t data_size;
115   int32_t version;
116   int32_t cal_type;
117   int32_t cal_type_size;
118 };
119 struct audio_cal_type_header {
120   int32_t version;
121   int32_t buffer_number;
122 };
123 struct audio_cal_data {
124   int32_t cal_size;
125   int32_t mem_handle;
126 };
127 struct audio_cal_type_alloc {
128   struct audio_cal_type_header cal_hdr;
129   struct audio_cal_data cal_data;
130 };
131 struct audio_cal_alloc {
132   struct audio_cal_header hdr;
133   struct audio_cal_type_alloc cal_type;
134 };
135 struct audio_cal_type_dealloc {
136   struct audio_cal_type_header cal_hdr;
137   struct audio_cal_data cal_data;
138 };
139 struct audio_cal_dealloc {
140   struct audio_cal_header hdr;
141   struct audio_cal_type_dealloc cal_type;
142 };
143 struct audio_cal_type_prepare {
144   struct audio_cal_type_header cal_hdr;
145   struct audio_cal_data cal_data;
146 };
147 struct audio_cal_prepare {
148   struct audio_cal_header hdr;
149   struct audio_cal_type_prepare cal_type;
150 };
151 struct audio_cal_type_post {
152   struct audio_cal_type_header cal_hdr;
153   struct audio_cal_data cal_data;
154 };
155 struct audio_cal_post {
156   struct audio_cal_header hdr;
157   struct audio_cal_type_post cal_type;
158 };
159 struct audio_cal_info_metainfo {
160   uint32_t nKey;
161 };
162 enum {
163   RX_DEVICE,
164   TX_DEVICE,
165   MAX_PATH_TYPE
166 };
167 struct audio_cal_info_adm_top {
168   int32_t topology;
169   int32_t acdb_id;
170   int32_t path;
171   int32_t app_type;
172   int32_t sample_rate;
173 };
174 struct audio_cal_info_audproc {
175   int32_t acdb_id;
176   int32_t path;
177   int32_t app_type;
178   int32_t sample_rate;
179 };
180 struct audio_cal_info_audvol {
181   int32_t acdb_id;
182   int32_t path;
183   int32_t app_type;
184   int32_t vol_index;
185 };
186 struct audio_cal_info_afe {
187   int32_t acdb_id;
188   int32_t path;
189   int32_t sample_rate;
190 };
191 struct audio_cal_info_afe_top {
192   int32_t topology;
193   int32_t acdb_id;
194   int32_t path;
195   int32_t sample_rate;
196 };
197 struct audio_cal_info_asm_top {
198   int32_t topology;
199   int32_t app_type;
200 };
201 struct audio_cal_info_audstrm {
202   int32_t app_type;
203 };
204 struct audio_cal_info_aanc {
205   int32_t acdb_id;
206 };
207 #define MAX_HW_DELAY_ENTRIES 25
208 struct audio_cal_hw_delay_entry {
209   uint32_t sample_rate;
210   uint32_t delay_usec;
211 };
212 struct audio_cal_hw_delay_data {
213   uint32_t num_entries;
214   struct audio_cal_hw_delay_entry entry[MAX_HW_DELAY_ENTRIES];
215 };
216 struct audio_cal_info_hw_delay {
217   int32_t acdb_id;
218   int32_t path;
219   int32_t property_type;
220   struct audio_cal_hw_delay_data data;
221 };
222 enum msm_spkr_prot_states {
223   MSM_SPKR_PROT_CALIBRATED,
224   MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
225   MSM_SPKR_PROT_DISABLED,
226   MSM_SPKR_PROT_NOT_CALIBRATED,
227   MSM_SPKR_PROT_PRE_CALIBRATED,
228   MSM_SPKR_PROT_IN_FTM_MODE,
229   MSM_SPKR_PROT_IN_V_VALI_MODE
230 };
231 #define MSM_SPKR_PROT_IN_FTM_MODE MSM_SPKR_PROT_IN_FTM_MODE
232 #define MSM_SPKR_PROT_IN_V_VALI_MODE MSM_SPKR_PROT_IN_V_VALI_MODE
233 enum msm_spkr_count {
234   SP_V2_SPKR_1,
235   SP_V2_SPKR_2,
236   SP_V2_NUM_MAX_SPKRS
237 };
238 struct audio_cal_info_spk_prot_cfg {
239   int32_t r0[SP_V2_NUM_MAX_SPKRS];
240   int32_t t0[SP_V2_NUM_MAX_SPKRS];
241   uint32_t quick_calib_flag;
242   uint32_t mode;
243 #ifdef MSM_SPKR_PROT_SPV3
244   uint32_t sp_version;
245   int32_t limiter_th[SP_V2_NUM_MAX_SPKRS];
246 #endif
247 };
248 struct audio_cal_info_sp_th_vi_ftm_cfg {
249   uint32_t mode;
250   uint32_t wait_time[SP_V2_NUM_MAX_SPKRS];
251   uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS];
252 };
253 struct audio_cal_info_sp_th_vi_v_vali_cfg {
254   uint32_t mode;
255   uint32_t wait_time[SP_V2_NUM_MAX_SPKRS];
256   uint32_t vali_time[SP_V2_NUM_MAX_SPKRS];
257 };
258 struct audio_cal_info_sp_ex_vi_ftm_cfg {
259   uint32_t wait_time[SP_V2_NUM_MAX_SPKRS];
260   uint32_t ftm_time[SP_V2_NUM_MAX_SPKRS];
261   uint32_t mode;
262 };
263 struct audio_cal_info_sp_ex_vi_param {
264   int32_t freq_q20[SP_V2_NUM_MAX_SPKRS];
265   int32_t resis_q24[SP_V2_NUM_MAX_SPKRS];
266   int32_t qmct_q24[SP_V2_NUM_MAX_SPKRS];
267   int32_t status[SP_V2_NUM_MAX_SPKRS];
268 };
269 struct audio_cal_info_sp_th_vi_param {
270   uint32_t mode;
271   int32_t r_dc_q24[SP_V2_NUM_MAX_SPKRS];
272   int32_t temp_q22[SP_V2_NUM_MAX_SPKRS];
273   int32_t status[SP_V2_NUM_MAX_SPKRS];
274 };
275 struct audio_cal_info_sp_th_vi_v_vali_param {
276   uint32_t mode;
277   uint32_t vrms_q24[SP_V2_NUM_MAX_SPKRS];
278   int32_t status[SP_V2_NUM_MAX_SPKRS];
279 };
280 struct audio_cal_info_msm_spk_prot_status {
281   int32_t r0[SP_V2_NUM_MAX_SPKRS];
282   int32_t status;
283 };
284 struct audio_cal_info_sidetone {
285   uint16_t enable;
286   uint16_t gain;
287   int32_t tx_acdb_id;
288   int32_t rx_acdb_id;
289   int32_t mid;
290   int32_t pid;
291 };
292 #define MAX_SIDETONE_IIR_DATA_SIZE 224
293 #define MAX_NO_IIR_FILTER_STAGE 10
294 struct audio_cal_info_sidetone_iir {
295   uint16_t iir_enable;
296   uint16_t num_biquad_stages;
297   uint16_t pregain;
298   int32_t tx_acdb_id;
299   int32_t rx_acdb_id;
300   int32_t mid;
301   int32_t pid;
302   uint8_t iir_config[MAX_SIDETONE_IIR_DATA_SIZE];
303 };
304 struct audio_cal_info_lsm_top {
305   int32_t topology;
306   int32_t acdb_id;
307   int32_t app_type;
308 };
309 struct audio_cal_info_lsm {
310   int32_t acdb_id;
311   int32_t path;
312   int32_t app_type;
313 };
314 #define VSS_NUM_CHANNELS_MAX 32
315 struct audio_cal_info_voc_top {
316   int32_t topology;
317   int32_t acdb_id;
318 #ifdef TOPOLOGY_SPECIFIC_CHANNEL_INFO
319   uint32_t num_channels;
320   uint8_t channel_mapping[VSS_NUM_CHANNELS_MAX];
321 #endif
322 };
323 struct audio_cal_info_vocproc {
324   int32_t tx_acdb_id;
325   int32_t rx_acdb_id;
326   int32_t tx_sample_rate;
327   int32_t rx_sample_rate;
328 };
329 enum {
330   DEFAULT_FEATURE_SET,
331   VOL_BOOST_FEATURE_SET,
332 };
333 struct audio_cal_info_vocvol {
334   int32_t tx_acdb_id;
335   int32_t rx_acdb_id;
336   int32_t feature_set;
337 };
338 struct audio_cal_info_vocdev_cfg {
339   int32_t tx_acdb_id;
340   int32_t rx_acdb_id;
341 };
342 #define MAX_VOICE_COLUMNS 20
343 union audio_cal_col_na {
344   uint8_t val8;
345   uint16_t val16;
346   uint32_t val32;
347   uint64_t val64;
348 } __attribute__((packed));
349 struct audio_cal_col {
350   uint32_t id;
351   uint32_t type;
352   union audio_cal_col_na na_value;
353 } __attribute__((packed));
354 struct audio_cal_col_data {
355   uint32_t num_columns;
356   struct audio_cal_col column[MAX_VOICE_COLUMNS];
357 } __attribute__((packed));
358 struct audio_cal_info_voc_col {
359   int32_t table_id;
360   int32_t tx_acdb_id;
361   int32_t rx_acdb_id;
362   struct audio_cal_col_data data;
363 };
364 struct audio_cal_type_basic {
365   struct audio_cal_type_header cal_hdr;
366   struct audio_cal_data cal_data;
367 };
368 struct audio_cal_basic {
369   struct audio_cal_header hdr;
370   struct audio_cal_type_basic cal_type;
371 };
372 struct audio_cal_type_adm_top {
373   struct audio_cal_type_header cal_hdr;
374   struct audio_cal_data cal_data;
375   struct audio_cal_info_adm_top cal_info;
376 };
377 struct audio_cal_adm_top {
378   struct audio_cal_header hdr;
379   struct audio_cal_type_adm_top cal_type;
380 };
381 struct audio_cal_type_metainfo {
382   struct audio_cal_type_header cal_hdr;
383   struct audio_cal_data cal_data;
384   struct audio_cal_info_metainfo cal_info;
385 };
386 struct audio_core_metainfo {
387   struct audio_cal_header hdr;
388   struct audio_cal_type_metainfo cal_type;
389 };
390 struct audio_cal_type_audproc {
391   struct audio_cal_type_header cal_hdr;
392   struct audio_cal_data cal_data;
393   struct audio_cal_info_audproc cal_info;
394 };
395 struct audio_cal_audproc {
396   struct audio_cal_header hdr;
397   struct audio_cal_type_audproc cal_type;
398 };
399 struct audio_cal_type_audvol {
400   struct audio_cal_type_header cal_hdr;
401   struct audio_cal_data cal_data;
402   struct audio_cal_info_audvol cal_info;
403 };
404 struct audio_cal_audvol {
405   struct audio_cal_header hdr;
406   struct audio_cal_type_audvol cal_type;
407 };
408 struct audio_cal_type_asm_top {
409   struct audio_cal_type_header cal_hdr;
410   struct audio_cal_data cal_data;
411   struct audio_cal_info_asm_top cal_info;
412 };
413 struct audio_cal_asm_top {
414   struct audio_cal_header hdr;
415   struct audio_cal_type_asm_top cal_type;
416 };
417 struct audio_cal_type_audstrm {
418   struct audio_cal_type_header cal_hdr;
419   struct audio_cal_data cal_data;
420   struct audio_cal_info_audstrm cal_info;
421 };
422 struct audio_cal_audstrm {
423   struct audio_cal_header hdr;
424   struct audio_cal_type_audstrm cal_type;
425 };
426 struct audio_cal_type_afe {
427   struct audio_cal_type_header cal_hdr;
428   struct audio_cal_data cal_data;
429   struct audio_cal_info_afe cal_info;
430 };
431 struct audio_cal_afe {
432   struct audio_cal_header hdr;
433   struct audio_cal_type_afe cal_type;
434 };
435 struct audio_cal_type_afe_top {
436   struct audio_cal_type_header cal_hdr;
437   struct audio_cal_data cal_data;
438   struct audio_cal_info_afe_top cal_info;
439 };
440 struct audio_cal_afe_top {
441   struct audio_cal_header hdr;
442   struct audio_cal_type_afe_top cal_type;
443 };
444 struct audio_cal_type_aanc {
445   struct audio_cal_type_header cal_hdr;
446   struct audio_cal_data cal_data;
447   struct audio_cal_info_aanc cal_info;
448 };
449 struct audio_cal_aanc {
450   struct audio_cal_header hdr;
451   struct audio_cal_type_aanc cal_type;
452 };
453 struct audio_cal_type_fb_spk_prot_cfg {
454   struct audio_cal_type_header cal_hdr;
455   struct audio_cal_data cal_data;
456   struct audio_cal_info_spk_prot_cfg cal_info;
457 };
458 struct audio_cal_fb_spk_prot_cfg {
459   struct audio_cal_header hdr;
460   struct audio_cal_type_fb_spk_prot_cfg cal_type;
461 };
462 struct audio_cal_type_sp_th_vi_ftm_cfg {
463   struct audio_cal_type_header cal_hdr;
464   struct audio_cal_data cal_data;
465   struct audio_cal_info_sp_th_vi_ftm_cfg cal_info;
466 };
467 struct audio_cal_sp_th_vi_ftm_cfg {
468   struct audio_cal_header hdr;
469   struct audio_cal_type_sp_th_vi_ftm_cfg cal_type;
470 };
471 struct audio_cal_type_sp_th_vi_v_vali_cfg {
472   struct audio_cal_type_header cal_hdr;
473   struct audio_cal_data cal_data;
474   struct audio_cal_info_sp_th_vi_v_vali_cfg cal_info;
475 };
476 struct audio_cal_sp_th_vi_v_vali_cfg {
477   struct audio_cal_header hdr;
478   struct audio_cal_type_sp_th_vi_v_vali_cfg cal_type;
479 };
480 struct audio_cal_type_sp_ex_vi_ftm_cfg {
481   struct audio_cal_type_header cal_hdr;
482   struct audio_cal_data cal_data;
483   struct audio_cal_info_sp_ex_vi_ftm_cfg cal_info;
484 };
485 struct audio_cal_sp_ex_vi_ftm_cfg {
486   struct audio_cal_header hdr;
487   struct audio_cal_type_sp_ex_vi_ftm_cfg cal_type;
488 };
489 struct audio_cal_type_hw_delay {
490   struct audio_cal_type_header cal_hdr;
491   struct audio_cal_data cal_data;
492   struct audio_cal_info_hw_delay cal_info;
493 };
494 struct audio_cal_hw_delay {
495   struct audio_cal_header hdr;
496   struct audio_cal_type_hw_delay cal_type;
497 };
498 struct audio_cal_type_sidetone {
499   struct audio_cal_type_header cal_hdr;
500   struct audio_cal_data cal_data;
501   struct audio_cal_info_sidetone cal_info;
502 };
503 struct audio_cal_sidetone {
504   struct audio_cal_header hdr;
505   struct audio_cal_type_sidetone cal_type;
506 };
507 struct audio_cal_type_sidetone_iir {
508   struct audio_cal_type_header cal_hdr;
509   struct audio_cal_data cal_data;
510   struct audio_cal_info_sidetone_iir cal_info;
511 };
512 struct audio_cal_sidetone_iir {
513   struct audio_cal_header hdr;
514   struct audio_cal_type_sidetone_iir cal_type;
515 };
516 struct audio_cal_type_lsm_top {
517   struct audio_cal_type_header cal_hdr;
518   struct audio_cal_data cal_data;
519   struct audio_cal_info_lsm_top cal_info;
520 };
521 struct audio_cal_lsm_top {
522   struct audio_cal_header hdr;
523   struct audio_cal_type_lsm_top cal_type;
524 };
525 struct audio_cal_type_lsm {
526   struct audio_cal_type_header cal_hdr;
527   struct audio_cal_data cal_data;
528   struct audio_cal_info_lsm cal_info;
529 };
530 struct audio_cal_lsm {
531   struct audio_cal_header hdr;
532   struct audio_cal_type_lsm cal_type;
533 };
534 struct audio_cal_type_voc_top {
535   struct audio_cal_type_header cal_hdr;
536   struct audio_cal_data cal_data;
537   struct audio_cal_info_voc_top cal_info;
538 };
539 struct audio_cal_voc_top {
540   struct audio_cal_header hdr;
541   struct audio_cal_type_voc_top cal_type;
542 };
543 struct audio_cal_type_vocproc {
544   struct audio_cal_type_header cal_hdr;
545   struct audio_cal_data cal_data;
546   struct audio_cal_info_vocproc cal_info;
547 };
548 struct audio_cal_vocproc {
549   struct audio_cal_header hdr;
550   struct audio_cal_type_vocproc cal_type;
551 };
552 struct audio_cal_type_vocvol {
553   struct audio_cal_type_header cal_hdr;
554   struct audio_cal_data cal_data;
555   struct audio_cal_info_vocvol cal_info;
556 };
557 struct audio_cal_vocvol {
558   struct audio_cal_header hdr;
559   struct audio_cal_type_vocvol cal_type;
560 };
561 struct audio_cal_type_vocdev_cfg {
562   struct audio_cal_type_header cal_hdr;
563   struct audio_cal_data cal_data;
564   struct audio_cal_info_vocdev_cfg cal_info;
565 };
566 struct audio_cal_vocdev_cfg {
567   struct audio_cal_header hdr;
568   struct audio_cal_type_vocdev_cfg cal_type;
569 };
570 struct audio_cal_type_voc_col {
571   struct audio_cal_type_header cal_hdr;
572   struct audio_cal_data cal_data;
573   struct audio_cal_info_voc_col cal_info;
574 };
575 struct audio_cal_voc_col {
576   struct audio_cal_header hdr;
577   struct audio_cal_type_voc_col cal_type;
578 };
579 struct audio_cal_type_fb_spk_prot_status {
580   struct audio_cal_type_header cal_hdr;
581   struct audio_cal_data cal_data;
582   struct audio_cal_info_msm_spk_prot_status cal_info;
583 };
584 struct audio_cal_fb_spk_prot_status {
585   struct audio_cal_header hdr;
586   struct audio_cal_type_fb_spk_prot_status cal_type;
587 };
588 struct audio_cal_type_sp_th_vi_param {
589   struct audio_cal_type_header cal_hdr;
590   struct audio_cal_data cal_data;
591   struct audio_cal_info_sp_th_vi_param cal_info;
592 };
593 struct audio_cal_sp_th_vi_param {
594   struct audio_cal_header hdr;
595   struct audio_cal_type_sp_th_vi_param cal_type;
596 };
597 struct audio_cal_type_sp_th_vi_v_vali_param {
598   struct audio_cal_type_header cal_hdr;
599   struct audio_cal_data cal_data;
600   struct audio_cal_info_sp_th_vi_v_vali_param cal_info;
601 };
602 struct audio_cal_sp_th_vi_v_vali_param {
603   struct audio_cal_header hdr;
604   struct audio_cal_type_sp_th_vi_v_vali_param cal_type;
605 };
606 struct audio_cal_type_sp_ex_vi_param {
607   struct audio_cal_type_header cal_hdr;
608   struct audio_cal_data cal_data;
609   struct audio_cal_info_sp_ex_vi_param cal_info;
610 };
611 struct audio_cal_sp_ex_vi_param {
612   struct audio_cal_header hdr;
613   struct audio_cal_type_sp_ex_vi_param cal_type;
614 };
615 #endif
616