#include <linux/delay.h>
#include "motu.h"
#define V3_CLOCK_STATUS_OFFSET …
#define V3_FETCH_PCM_FRAMES …
#define V3_CLOCK_RATE_MASK …
#define V3_CLOCK_RATE_SHIFT …
#define V3_CLOCK_SOURCE_MASK …
#define V3_CLOCK_SRC_INTERNAL …
#define V3_CLOCK_SRC_WORD_ON_BNC …
#define V3_CLOCK_SRC_SPH …
#define V3_CLOCK_SRC_AESEBU_ON_XLR …
#define V3_CLOCK_SRC_SPDIF_ON_COAX …
#define V3_CLOCK_SRC_OPT_IFACE_A …
#define V3_CLOCK_SRC_OPT_IFACE_B …
#define V3_OPT_IFACE_MODE_OFFSET …
#define V3_ENABLE_OPT_IN_IFACE_A …
#define V3_ENABLE_OPT_IN_IFACE_B …
#define V3_ENABLE_OPT_OUT_IFACE_A …
#define V3_ENABLE_OPT_OUT_IFACE_B …
#define V3_NO_ADAT_OPT_IN_IFACE_A …
#define V3_NO_ADAT_OPT_IN_IFACE_B …
#define V3_NO_ADAT_OPT_OUT_IFACE_A …
#define V3_NO_ADAT_OPT_OUT_IFACE_B …
#define V3_MSG_FLAG_CLK_CHANGED …
#define V3_CLK_WAIT_MSEC …
int snd_motu_protocol_v3_get_clock_rate(struct snd_motu *motu,
unsigned int *rate)
{ … }
int snd_motu_protocol_v3_set_clock_rate(struct snd_motu *motu,
unsigned int rate)
{ … }
int snd_motu_protocol_v3_get_clock_source(struct snd_motu *motu,
enum snd_motu_clock_source *src)
{ … }
int snd_motu_protocol_v3_switch_fetching_mode(struct snd_motu *motu,
bool enable)
{ … }
static int detect_packet_formats_with_opt_ifaces(struct snd_motu *motu, u32 data)
{ … }
int snd_motu_protocol_v3_cache_packet_formats(struct snd_motu *motu)
{ … }
const struct snd_motu_spec snd_motu_spec_828mk3_fw = …;
const struct snd_motu_spec snd_motu_spec_828mk3_hybrid = …;
const struct snd_motu_spec snd_motu_spec_896mk3 = …;
const struct snd_motu_spec snd_motu_spec_traveler_mk3 = …;
const struct snd_motu_spec snd_motu_spec_ultralite_mk3 = …;
const struct snd_motu_spec snd_motu_spec_audio_express = …;
const struct snd_motu_spec snd_motu_spec_track16 = …;
const struct snd_motu_spec snd_motu_spec_4pre = …;