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