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