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