hdspm.h revision 655a7c081f83b8351ed5f11a6c6accd9458293a8
1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __SOUND_HDSPM_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __SOUND_HDSPM_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HDSPM_MAX_CHANNELS 64
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_io_type {
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng MADI,
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng MADIface,
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng AIO,
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng AES32,
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng RayDAT
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_speed {
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ss,
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ds,
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng qs
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_peak_rms {
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint32_t input_peaks[64];
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint32_t playback_peaks[64];
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint32_t output_peaks[64];
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint64_t input_rms[64];
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint64_t playback_rms[64];
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint64_t output_rms[64];
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t speed;
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng int status2;
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS   _IOR('H', 0x42, struct hdspm_peak_rms)
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_config {
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char pref_sync_ref;
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char wordclock_sync_check;
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char madi_sync_check;
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int system_sample_rate;
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int autosync_sample_rate;
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char system_clock_mode;
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char clock_source;
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char autosync_ref;
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned char line_out;
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int passthru;
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int analog_out;
66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_CONFIG   _IOR('H', 0x41, struct hdspm_config)
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_ltc_format {
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng format_invalid,
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng fps_24,
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng fps_25,
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng fps_2997,
75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng fps_30
76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_ltc_frame {
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng frame_invalid,
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng drop_frame,
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng full_frame
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_ltc_input_format {
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ntsc,
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng pal,
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng no_video
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_ltc {
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int ltc;
92655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng enum hdspm_ltc_format format;
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng enum hdspm_ltc_frame frame;
95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng enum hdspm_ltc_input_format input_format;
96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_mixer_ioctl)
98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_sync {
100655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_sync_no_lock = 0,
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_sync_lock = 1,
102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_sync_sync = 2
103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_madi_input {
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_input_optical = 0,
107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_input_coax = 1
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_madi_channel_format {
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_format_ch_64 = 0,
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_format_ch_56 = 1
113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_madi_frame_format {
116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_frame_48 = 0,
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng hdspm_frame_96 = 1
118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum hdspm_syncsource {
121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng syncsource_wc = 0,
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng syncsource_madi = 1,
123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng syncsource_tco = 2,
125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng syncsource_sync = 3,
126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng syncsource_none = 4
127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_status {
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t card_type;
131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng enum hdspm_syncsource autosync_source;
132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint64_t card_clock;
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint32_t master_period;
135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng union {
136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng struct {
137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t sync_wc;
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t sync_madi;
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t sync_tco;
141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t sync_in;
142655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t madi_input;
143655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t channel_format;
145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t frame_format;
146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng } madi;
147655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng } card_specific;
148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_STATUS   _IOR('H', 0x47, struct hdspm_status)
151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HDSPM_ADDON_TCO 1
152655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_version {
153655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng uint8_t card_type;
155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng char cardname[20];
156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int serial;
157655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned short firmware_rev;
158655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng int addons;
160655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
161655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version)
162655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
163655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_channelfader {
165655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int in[HDSPM_MIXER_CHANNELS];
166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng unsigned int pb[HDSPM_MIXER_CHANNELS];
167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_mixer {
170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS];
171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct hdspm_mixer_ioctl {
173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng struct hdspm_mixer *mixer;
175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
177655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct hdspm_peak_rms hdspm_peak_rms_t;
178655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct hdspm_config_info hdspm_config_info_t;
180655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct hdspm_version hdspm_version_t;
181655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct hdspm_channelfader snd_hdspm_channelfader_t;
182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct hdspm_mixer hdspm_mixer_t;
183655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
185