• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_MVS_H
8 #define _MSM_AUDIO_MVS_H
9 #include <linux/msm_audio.h>
10 #define AUDIO_GET_MVS_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 0), unsigned int)
11 #define AUDIO_SET_MVS_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 1), unsigned int)
12 #define MVS_MODE_IS733 0x1
13 #define MVS_MODE_IS127 0x2
14 #define MVS_MODE_4GV_NB 0x3
15 #define MVS_MODE_4GV_WB 0x4
16 #define MVS_MODE_AMR 0x5
17 #define MVS_MODE_EFR 0x6
18 #define MVS_MODE_FR 0x7
19 #define MVS_MODE_HR 0x8
20 #define MVS_MODE_LINEAR_PCM 0x9
21 #define MVS_MODE_G711 0xA
22 #define MVS_MODE_PCM 0xC
23 #define MVS_MODE_AMR_WB 0xD
24 #define MVS_MODE_G729A 0xE
25 #define MVS_MODE_G711A 0xF
26 #define MVS_MODE_G722 0x10
27 #define MVS_MODE_PCM_WB 0x12
28 enum msm_audio_amr_mode {
29   MVS_AMR_MODE_0475,
30   MVS_AMR_MODE_0515,
31   MVS_AMR_MODE_0590,
32   MVS_AMR_MODE_0670,
33   MVS_AMR_MODE_0740,
34   MVS_AMR_MODE_0795,
35   MVS_AMR_MODE_1020,
36   MVS_AMR_MODE_1220,
37   MVS_AMR_MODE_0660,
38   MVS_AMR_MODE_0885,
39   MVS_AMR_MODE_1265,
40   MVS_AMR_MODE_1425,
41   MVS_AMR_MODE_1585,
42   MVS_AMR_MODE_1825,
43   MVS_AMR_MODE_1985,
44   MVS_AMR_MODE_2305,
45   MVS_AMR_MODE_2385,
46   MVS_AMR_MODE_UNDEF
47 };
48 enum msm_audio_voc_rate {
49   MVS_VOC_0_RATE,
50   MVS_VOC_8_RATE,
51   MVS_VOC_4_RATE,
52   MVS_VOC_2_RATE,
53   MVS_VOC_1_RATE,
54   MVS_VOC_ERASURE,
55   MVS_VOC_RATE_MAX,
56   MVS_VOC_RATE_UNDEF = MVS_VOC_RATE_MAX
57 };
58 enum msm_audio_amr_frame_type {
59   MVS_AMR_SPEECH_GOOD,
60   MVS_AMR_SPEECH_DEGRADED,
61   MVS_AMR_ONSET,
62   MVS_AMR_SPEECH_BAD,
63   MVS_AMR_SID_FIRST,
64   MVS_AMR_SID_UPDATE,
65   MVS_AMR_SID_BAD,
66   MVS_AMR_NO_DATA,
67   MVS_AMR_SPEECH_LOST
68 };
69 enum msm_audio_g711a_mode {
70   MVS_G711A_MODE_MULAW,
71   MVS_G711A_MODE_ALAW
72 };
73 enum msm_audio_g711_mode {
74   MVS_G711_MODE_MULAW,
75   MVS_G711_MODE_ALAW
76 };
77 enum mvs_g722_mode_type {
78   MVS_G722_MODE_01,
79   MVS_G722_MODE_02,
80   MVS_G722_MODE_03,
81   MVS_G722_MODE_MAX,
82   MVS_G722_MODE_UNDEF
83 };
84 enum msm_audio_g711a_frame_type {
85   MVS_G711A_SPEECH_GOOD,
86   MVS_G711A_SID,
87   MVS_G711A_NO_DATA,
88   MVS_G711A_ERASURE
89 };
90 enum msm_audio_g729a_frame_type {
91   MVS_G729A_NO_DATA,
92   MVS_G729A_SPEECH_GOOD,
93   MVS_G729A_SID,
94   MVS_G729A_ERASURE
95 };
96 struct min_max_rate {
97   uint32_t min_rate;
98   uint32_t max_rate;
99 };
100 struct msm_audio_mvs_config {
101   uint32_t mvs_mode;
102   uint32_t rate_type;
103   struct min_max_rate min_max_rate;
104   uint32_t dtx_mode;
105 };
106 #define MVS_MAX_VOC_PKT_SIZE 640
107 struct gsm_header {
108   uint8_t bfi;
109   uint8_t sid;
110   uint8_t taf;
111   uint8_t ufi;
112 };
113 struct q6_msm_audio_mvs_frame {
114   union {
115     uint32_t frame_type;
116     uint32_t packet_rate;
117     struct gsm_header gsm_frame_type;
118   } header;
119   uint32_t len;
120   uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE];
121 };
122 struct msm_audio_mvs_frame {
123   uint32_t frame_type;
124   uint32_t len;
125   uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE];
126 };
127 #define Q5V2_MVS_MAX_VOC_PKT_SIZE 320
128 struct q5v2_msm_audio_mvs_frame {
129   uint32_t frame_type;
130   uint32_t len;
131   uint8_t voc_pkt[Q5V2_MVS_MAX_VOC_PKT_SIZE];
132 };
133 #endif
134