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 __SOUND_HDSPM_H
20 #define __SOUND_HDSPM_H
21 #define HDSPM_MAX_CHANNELS 64
22 enum hdspm_io_type {
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24   MADI,
25   MADIface,
26   AIO,
27   AES32,
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29   RayDAT
30 };
31 enum hdspm_speed {
32   ss,
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34   ds,
35   qs
36 };
37 struct hdspm_peak_rms {
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   uint32_t input_peaks[64];
40   uint32_t playback_peaks[64];
41   uint32_t output_peaks[64];
42   uint64_t input_rms[64];
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44   uint64_t playback_rms[64];
45   uint64_t output_rms[64];
46   uint8_t speed;
47   int status2;
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 };
50 #define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x42, struct hdspm_peak_rms)
51 struct hdspm_config {
52   unsigned char pref_sync_ref;
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54   unsigned char wordclock_sync_check;
55   unsigned char madi_sync_check;
56   unsigned int system_sample_rate;
57   unsigned int autosync_sample_rate;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   unsigned char system_clock_mode;
60   unsigned char clock_source;
61   unsigned char autosync_ref;
62   unsigned char line_out;
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   unsigned int passthru;
65   unsigned int analog_out;
66 };
67 #define SNDRV_HDSPM_IOCTL_GET_CONFIG _IOR('H', 0x41, struct hdspm_config)
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 enum hdspm_ltc_format {
70   format_invalid,
71   fps_24,
72   fps_25,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74   fps_2997,
75   fps_30
76 };
77 enum hdspm_ltc_frame {
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   frame_invalid,
80   drop_frame,
81   full_frame
82 };
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 enum hdspm_ltc_input_format {
85   ntsc,
86   pal,
87   no_video
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 };
90 struct hdspm_ltc {
91   unsigned int ltc;
92   enum hdspm_ltc_format format;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   enum hdspm_ltc_frame frame;
95   enum hdspm_ltc_input_format input_format;
96 };
97 #define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_ltc)
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 enum hdspm_sync {
100   hdspm_sync_no_lock = 0,
101   hdspm_sync_lock = 1,
102   hdspm_sync_sync = 2
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 };
105 enum hdspm_madi_input {
106   hdspm_input_optical = 0,
107   hdspm_input_coax = 1
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 };
110 enum hdspm_madi_channel_format {
111   hdspm_format_ch_64 = 0,
112   hdspm_format_ch_56 = 1
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 };
115 enum hdspm_madi_frame_format {
116   hdspm_frame_48 = 0,
117   hdspm_frame_96 = 1
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 };
120 enum hdspm_syncsource {
121   syncsource_wc = 0,
122   syncsource_madi = 1,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   syncsource_tco = 2,
125   syncsource_sync = 3,
126   syncsource_none = 4
127 };
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 struct hdspm_status {
130   uint8_t card_type;
131   enum hdspm_syncsource autosync_source;
132   uint64_t card_clock;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   uint32_t master_period;
135   union {
136     struct {
137       uint8_t sync_wc;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139       uint8_t sync_madi;
140       uint8_t sync_tco;
141       uint8_t sync_in;
142       uint8_t madi_input;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144       uint8_t channel_format;
145       uint8_t frame_format;
146     } madi;
147   } card_specific;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 };
150 #define SNDRV_HDSPM_IOCTL_GET_STATUS _IOR('H', 0x47, struct hdspm_status)
151 #define HDSPM_ADDON_TCO 1
152 struct hdspm_version {
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   uint8_t card_type;
155   char cardname[20];
156   unsigned int serial;
157   unsigned short firmware_rev;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   int addons;
160 };
161 #define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version)
162 #define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 struct hdspm_channelfader {
165   unsigned int in[HDSPM_MIXER_CHANNELS];
166   unsigned int pb[HDSPM_MIXER_CHANNELS];
167 };
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 struct hdspm_mixer {
170   struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS];
171 };
172 struct hdspm_mixer_ioctl {
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   struct hdspm_mixer * mixer;
175 };
176 #define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
177 typedef struct hdspm_peak_rms hdspm_peak_rms_t;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 typedef struct hdspm_config_info hdspm_config_info_t;
180 typedef struct hdspm_version hdspm_version_t;
181 typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
182 typedef struct hdspm_mixer hdspm_mixer_t;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184 #endif
185