#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kmod.h>
#include <linux/mutex.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <sound/core.h>
#include <sound/initval.h>
#include <sound/pcm.h>
#include <sound/control.h>
#include "tw686x.h"
#include "tw686x-regs.h"
#define AUDIO_CHANNEL_OFFSET …
void tw686x_audio_irq(struct tw686x_dev *dev, unsigned long requests,
unsigned int pb_status)
{ … }
static const struct snd_pcm_hardware tw686x_capture_hw = …;
static int tw686x_pcm_open(struct snd_pcm_substream *ss)
{ … }
static int tw686x_pcm_close(struct snd_pcm_substream *ss)
{ … }
static int tw686x_pcm_prepare(struct snd_pcm_substream *ss)
{ … }
static int tw686x_pcm_trigger(struct snd_pcm_substream *ss, int cmd)
{ … }
static snd_pcm_uframes_t tw686x_pcm_pointer(struct snd_pcm_substream *ss)
{ … }
static const struct snd_pcm_ops tw686x_pcm_ops = …;
static int tw686x_snd_pcm_init(struct tw686x_dev *dev)
{ … }
static void tw686x_audio_dma_free(struct tw686x_dev *dev,
struct tw686x_audio_channel *ac)
{ … }
static int tw686x_audio_dma_alloc(struct tw686x_dev *dev,
struct tw686x_audio_channel *ac)
{ … }
void tw686x_audio_free(struct tw686x_dev *dev)
{ … }
int tw686x_audio_init(struct tw686x_dev *dev)
{ … }