122851890Sopenharmony_ci/**************************************************************************** 222851890Sopenharmony_ci **************************************************************************** 322851890Sopenharmony_ci *** 422851890Sopenharmony_ci *** This header was automatically generated from a Linux kernel header 522851890Sopenharmony_ci *** of the same name, to make information necessary for userspace to 622851890Sopenharmony_ci *** call into the kernel available to libc. It contains only constants, 722851890Sopenharmony_ci *** structures, and macros generated from the original header, and thus, 822851890Sopenharmony_ci *** contains no copyrightable information. 922851890Sopenharmony_ci *** 1022851890Sopenharmony_ci *** To edit the content of this header, modify the corresponding 1122851890Sopenharmony_ci *** source file (e.g. under external/kernel-headers/original/) then 1222851890Sopenharmony_ci *** run bionic/libc/kernel/tools/update_all.py 1322851890Sopenharmony_ci *** 1422851890Sopenharmony_ci *** Any manual change here will be lost the next time this script will 1522851890Sopenharmony_ci *** be run. You've been warned! 1622851890Sopenharmony_ci *** 1722851890Sopenharmony_ci **************************************************************************** 1822851890Sopenharmony_ci ****************************************************************************/ 1922851890Sopenharmony_ci#ifndef __SOUND_HDSPM_H 2022851890Sopenharmony_ci#define __SOUND_HDSPM_H 2122851890Sopenharmony_ci#ifdef __linux__ 2222851890Sopenharmony_ci#include <linux/types.h> 2322851890Sopenharmony_ci#endif 2422851890Sopenharmony_ci#define HDSPM_MAX_CHANNELS 64 2522851890Sopenharmony_cienum hdspm_io_type { 2622851890Sopenharmony_ci MADI, 2722851890Sopenharmony_ci MADIface, 2822851890Sopenharmony_ci AIO, 2922851890Sopenharmony_ci AES32, 3022851890Sopenharmony_ci RayDAT 3122851890Sopenharmony_ci}; 3222851890Sopenharmony_cienum hdspm_speed { 3322851890Sopenharmony_ci ss, 3422851890Sopenharmony_ci ds, 3522851890Sopenharmony_ci qs 3622851890Sopenharmony_ci}; 3722851890Sopenharmony_cistruct hdspm_peak_rms { 3822851890Sopenharmony_ci __u32 input_peaks[64]; 3922851890Sopenharmony_ci __u32 playback_peaks[64]; 4022851890Sopenharmony_ci __u32 output_peaks[64]; 4122851890Sopenharmony_ci __u64 input_rms[64]; 4222851890Sopenharmony_ci __u64 playback_rms[64]; 4322851890Sopenharmony_ci __u64 output_rms[64]; 4422851890Sopenharmony_ci __u8 speed; 4522851890Sopenharmony_ci int status2; 4622851890Sopenharmony_ci}; 4722851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x42, struct hdspm_peak_rms) 4822851890Sopenharmony_cistruct hdspm_config { 4922851890Sopenharmony_ci unsigned char pref_sync_ref; 5022851890Sopenharmony_ci unsigned char wordclock_sync_check; 5122851890Sopenharmony_ci unsigned char madi_sync_check; 5222851890Sopenharmony_ci unsigned int system_sample_rate; 5322851890Sopenharmony_ci unsigned int autosync_sample_rate; 5422851890Sopenharmony_ci unsigned char system_clock_mode; 5522851890Sopenharmony_ci unsigned char clock_source; 5622851890Sopenharmony_ci unsigned char autosync_ref; 5722851890Sopenharmony_ci unsigned char line_out; 5822851890Sopenharmony_ci unsigned int passthru; 5922851890Sopenharmony_ci unsigned int analog_out; 6022851890Sopenharmony_ci}; 6122851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_CONFIG _IOR('H', 0x41, struct hdspm_config) 6222851890Sopenharmony_cienum hdspm_ltc_format { 6322851890Sopenharmony_ci format_invalid, 6422851890Sopenharmony_ci fps_24, 6522851890Sopenharmony_ci fps_25, 6622851890Sopenharmony_ci fps_2997, 6722851890Sopenharmony_ci fps_30 6822851890Sopenharmony_ci}; 6922851890Sopenharmony_cienum hdspm_ltc_frame { 7022851890Sopenharmony_ci frame_invalid, 7122851890Sopenharmony_ci drop_frame, 7222851890Sopenharmony_ci full_frame 7322851890Sopenharmony_ci}; 7422851890Sopenharmony_cienum hdspm_ltc_input_format { 7522851890Sopenharmony_ci ntsc, 7622851890Sopenharmony_ci pal, 7722851890Sopenharmony_ci no_video 7822851890Sopenharmony_ci}; 7922851890Sopenharmony_cistruct hdspm_ltc { 8022851890Sopenharmony_ci unsigned int ltc; 8122851890Sopenharmony_ci enum hdspm_ltc_format format; 8222851890Sopenharmony_ci enum hdspm_ltc_frame frame; 8322851890Sopenharmony_ci enum hdspm_ltc_input_format input_format; 8422851890Sopenharmony_ci}; 8522851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_ltc) 8622851890Sopenharmony_cienum hdspm_sync { 8722851890Sopenharmony_ci hdspm_sync_no_lock = 0, 8822851890Sopenharmony_ci hdspm_sync_lock = 1, 8922851890Sopenharmony_ci hdspm_sync_sync = 2 9022851890Sopenharmony_ci}; 9122851890Sopenharmony_cienum hdspm_madi_input { 9222851890Sopenharmony_ci hdspm_input_optical = 0, 9322851890Sopenharmony_ci hdspm_input_coax = 1 9422851890Sopenharmony_ci}; 9522851890Sopenharmony_cienum hdspm_madi_channel_format { 9622851890Sopenharmony_ci hdspm_format_ch_64 = 0, 9722851890Sopenharmony_ci hdspm_format_ch_56 = 1 9822851890Sopenharmony_ci}; 9922851890Sopenharmony_cienum hdspm_madi_frame_format { 10022851890Sopenharmony_ci hdspm_frame_48 = 0, 10122851890Sopenharmony_ci hdspm_frame_96 = 1 10222851890Sopenharmony_ci}; 10322851890Sopenharmony_cienum hdspm_syncsource { 10422851890Sopenharmony_ci syncsource_wc = 0, 10522851890Sopenharmony_ci syncsource_madi = 1, 10622851890Sopenharmony_ci syncsource_tco = 2, 10722851890Sopenharmony_ci syncsource_sync = 3, 10822851890Sopenharmony_ci syncsource_none = 4 10922851890Sopenharmony_ci}; 11022851890Sopenharmony_cistruct hdspm_status { 11122851890Sopenharmony_ci __u8 card_type; 11222851890Sopenharmony_ci enum hdspm_syncsource autosync_source; 11322851890Sopenharmony_ci __u64 card_clock; 11422851890Sopenharmony_ci __u32 master_period; 11522851890Sopenharmony_ci union { 11622851890Sopenharmony_ci struct { 11722851890Sopenharmony_ci __u8 sync_wc; 11822851890Sopenharmony_ci __u8 sync_madi; 11922851890Sopenharmony_ci __u8 sync_tco; 12022851890Sopenharmony_ci __u8 sync_in; 12122851890Sopenharmony_ci __u8 madi_input; 12222851890Sopenharmony_ci __u8 channel_format; 12322851890Sopenharmony_ci __u8 frame_format; 12422851890Sopenharmony_ci } madi; 12522851890Sopenharmony_ci } card_specific; 12622851890Sopenharmony_ci}; 12722851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_STATUS _IOR('H', 0x47, struct hdspm_status) 12822851890Sopenharmony_ci#define HDSPM_ADDON_TCO 1 12922851890Sopenharmony_cistruct hdspm_version { 13022851890Sopenharmony_ci __u8 card_type; 13122851890Sopenharmony_ci char cardname[20]; 13222851890Sopenharmony_ci unsigned int serial; 13322851890Sopenharmony_ci unsigned short firmware_rev; 13422851890Sopenharmony_ci int addons; 13522851890Sopenharmony_ci}; 13622851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version) 13722851890Sopenharmony_ci#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS 13822851890Sopenharmony_cistruct hdspm_channelfader { 13922851890Sopenharmony_ci unsigned int in[HDSPM_MIXER_CHANNELS]; 14022851890Sopenharmony_ci unsigned int pb[HDSPM_MIXER_CHANNELS]; 14122851890Sopenharmony_ci}; 14222851890Sopenharmony_cistruct hdspm_mixer { 14322851890Sopenharmony_ci struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS]; 14422851890Sopenharmony_ci}; 14522851890Sopenharmony_cistruct hdspm_mixer_ioctl { 14622851890Sopenharmony_ci struct hdspm_mixer * mixer; 14722851890Sopenharmony_ci}; 14822851890Sopenharmony_ci#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl) 14922851890Sopenharmony_ci#endif 150