#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/spinlock.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/time.h>
#include <linux/mm.h>
#include <linux/i2c.h>
#include <linux/mutex.h>
#include <linux/uaccess.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/initval.h>
#include "go7007-priv.h"
static int index[SNDRV_CARDS] = …;
static char *id[SNDRV_CARDS] = …;
static bool enable[SNDRV_CARDS] = …;
module_param_array(…);
module_param_array(…);
module_param_array(…);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
struct go7007_snd { … };
static const struct snd_pcm_hardware go7007_snd_capture_hw = …;
static void parse_audio_stream_data(struct go7007 *go, u8 *buf, int length)
{ … }
static int go7007_snd_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params)
{ … }
static int go7007_snd_hw_free(struct snd_pcm_substream *substream)
{ … }
static int go7007_snd_capture_open(struct snd_pcm_substream *substream)
{ … }
static int go7007_snd_capture_close(struct snd_pcm_substream *substream)
{ … }
static int go7007_snd_pcm_prepare(struct snd_pcm_substream *substream)
{ … }
static int go7007_snd_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
{ … }
static snd_pcm_uframes_t go7007_snd_pcm_pointer(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_ops go7007_snd_capture_ops = …;
static int go7007_snd_free(struct snd_device *device)
{ … }
static const struct snd_device_ops go7007_snd_device_ops = …;
int go7007_snd_init(struct go7007 *go)
{ … }
EXPORT_SYMBOL(…);
int go7007_snd_remove(struct go7007 *go)
{ … }
EXPORT_SYMBOL(…);
MODULE_LICENSE(…) …;