#include <linux/delay.h>
#include "ff.h"
#define FORMER_REG_SYNC_STATUS …
#define FORMER_REG_FETCH_PCM_FRAMES …
#define FORMER_REG_CLOCK_CONFIG …
static int parse_clock_bits(u32 data, unsigned int *rate,
enum snd_ff_clock_src *src)
{ … }
static int former_get_clock(struct snd_ff *ff, unsigned int *rate,
enum snd_ff_clock_src *src)
{ … }
static int former_switch_fetching_mode(struct snd_ff *ff, bool enable)
{ … }
static void dump_clock_config(struct snd_ff *ff, struct snd_info_buffer *buffer)
{ … }
static void dump_sync_status(struct snd_ff *ff, struct snd_info_buffer *buffer)
{ … }
static void former_dump_status(struct snd_ff *ff,
struct snd_info_buffer *buffer)
{ … }
static int former_fill_midi_msg(struct snd_ff *ff,
struct snd_rawmidi_substream *substream,
unsigned int port)
{ … }
#define FF800_STF …
#define FF800_RX_PACKET_FORMAT …
#define FF800_ALLOC_TX_STREAM …
#define FF800_ISOC_COMM_START …
#define FF800_TX_S800_FLAG …
#define FF800_ISOC_COMM_STOP …
#define FF800_TX_PACKET_ISOC_CH …
static int allocate_tx_resources(struct snd_ff *ff)
{ … }
static int ff800_allocate_resources(struct snd_ff *ff, unsigned int rate)
{ … }
static int ff800_begin_session(struct snd_ff *ff, unsigned int rate)
{ … }
static void ff800_finish_session(struct snd_ff *ff)
{ … }
static void ff800_handle_midi_msg(struct snd_ff *ff, unsigned int offset, const __le32 *buf,
size_t length, u32 tstamp)
{ … }
const struct snd_ff_protocol snd_ff_protocol_ff800 = …;
#define FF400_STF …
#define FF400_RX_PACKET_FORMAT …
#define FF400_ISOC_COMM_START …
#define FF400_TX_PACKET_FORMAT …
#define FF400_ISOC_COMM_STOP …
static int ff400_allocate_resources(struct snd_ff *ff, unsigned int rate)
{ … }
static int ff400_begin_session(struct snd_ff *ff, unsigned int rate)
{ … }
static void ff400_finish_session(struct snd_ff *ff)
{ … }
static void parse_midi_msg(struct snd_ff *ff, u32 quad, unsigned int port)
{ … }
#define FF400_QUEUE_SIZE …
struct ff400_msg_parser { … };
static bool ff400_has_msg(struct snd_ff *ff)
{ … }
#define FF400_MSG_FLAG_IS_SIGNAL_LEVEL …
#define FF400_MSG_FLAG_IS_RIGHT_CHANNEL …
#define FF400_MSG_FLAG_IS_STEREO_PAIRED …
#define FF400_MSG_MASK_STEREO_PAIR …
#define FF400_MSG_MASK_SIGNAL_LEVEL …
#define FF400_MSG_FLAG_IS_MIDI_PORT_0 …
#define FF400_MSG_MASK_MIDI_PORT_0 …
#define FF400_MSG_FLAG_IS_MIDI_PORT_1 …
#define FF400_MSG_MASK_MIDI_PORT_1 …
static void ff400_handle_msg(struct snd_ff *ff, unsigned int offset, const __le32 *buf,
size_t length, u32 tstamp)
{ … }
static long ff400_copy_msg_to_user(struct snd_ff *ff, char __user *buf, long count)
{ … }
const struct snd_ff_protocol snd_ff_protocol_ff400 = …;