#include <linux/interrupt.h>
#include <linux/slab.h>
#include <sound/asoundef.h>
#include "bcm2835.h"
static const struct snd_pcm_hardware snd_bcm2835_playback_hw = …;
static const struct snd_pcm_hardware snd_bcm2835_playback_spdif_hw = …;
static void snd_bcm2835_playback_free(struct snd_pcm_runtime *runtime)
{ … }
void bcm2835_playback_fifo(struct bcm2835_alsa_stream *alsa_stream,
unsigned int bytes)
{ … }
static int snd_bcm2835_playback_open_generic(struct snd_pcm_substream *substream, int spdif)
{ … }
static int snd_bcm2835_playback_open(struct snd_pcm_substream *substream)
{ … }
static int snd_bcm2835_playback_spdif_open(struct snd_pcm_substream *substream)
{ … }
static int snd_bcm2835_playback_close(struct snd_pcm_substream *substream)
{ … }
static int snd_bcm2835_pcm_prepare(struct snd_pcm_substream *substream)
{ … }
static void snd_bcm2835_pcm_transfer(struct snd_pcm_substream *substream,
struct snd_pcm_indirect *rec, size_t bytes)
{ … }
static int snd_bcm2835_pcm_ack(struct snd_pcm_substream *substream)
{ … }
static int snd_bcm2835_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
{ … }
static snd_pcm_uframes_t
snd_bcm2835_pcm_pointer(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_ops snd_bcm2835_playback_ops = …;
static const struct snd_pcm_ops snd_bcm2835_playback_spdif_ops = …;
int snd_bcm2835_new_pcm(struct bcm2835_chip *chip, const char *name,
int idx, enum snd_bcm2835_route route,
u32 numchannels, bool spdif)
{ … }