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