#include "em28xx.h"
#include <linux/kernel.h>
#include <linux/usb.h>
#include <linux/init.h>
#include <linux/sound.h>
#include <linux/spinlock.h>
#include <linux/soundcard.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/info.h>
#include <sound/initval.h>
#include <sound/control.h>
#include <sound/tlv.h>
#include <sound/ac97_codec.h>
#include <media/v4l2-common.h>
static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define EM28XX_MAX_AUDIO_BUFS …
#define EM28XX_MIN_AUDIO_PACKETS …
#define dprintk(fmt, arg...) …
static int index[SNDRV_CARDS] = …;
static int em28xx_deinit_isoc_audio(struct em28xx *dev)
{ … }
static void em28xx_audio_isocirq(struct urb *urb)
{ … }
static int em28xx_init_audio_isoc(struct em28xx *dev)
{ … }
static const struct snd_pcm_hardware snd_em28xx_hw_capture = …;
static int snd_em28xx_capture_open(struct snd_pcm_substream *substream)
{ … }
static int snd_em28xx_pcm_close(struct snd_pcm_substream *substream)
{ … }
static int snd_em28xx_prepare(struct snd_pcm_substream *substream)
{ … }
static void audio_trigger(struct work_struct *work)
{ … }
static int snd_em28xx_capture_trigger(struct snd_pcm_substream *substream,
int cmd)
{ … }
static snd_pcm_uframes_t snd_em28xx_capture_pointer(struct snd_pcm_substream
*substream)
{ … }
static int em28xx_vol_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *info)
{ … }
static int em28xx_vol_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *value)
{ … }
static int em28xx_vol_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *value)
{ … }
static int em28xx_vol_put_mute(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *value)
{ … }
static int em28xx_vol_get_mute(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *value)
{ … }
static const DECLARE_TLV_DB_SCALE(em28xx_db_scale, -3450, 150, 0);
static int em28xx_cvol_new(struct snd_card *card, struct em28xx *dev,
char *name, int id)
{ … }
static const struct snd_pcm_ops snd_em28xx_pcm_capture = …;
static void em28xx_audio_free_urb(struct em28xx *dev)
{ … }
static int em28xx_audio_ep_packet_size(struct usb_device *udev,
struct usb_endpoint_descriptor *e)
{ … }
static int em28xx_audio_urb_init(struct em28xx *dev)
{ … }
static int em28xx_audio_init(struct em28xx *dev)
{ … }
static int em28xx_audio_fini(struct em28xx *dev)
{ … }
static int em28xx_audio_suspend(struct em28xx *dev)
{ … }
static int em28xx_audio_resume(struct em28xx *dev)
{ … }
static struct em28xx_ops audio_ops = …;
static int __init em28xx_alsa_register(void)
{ … }
static void __exit em28xx_alsa_unregister(void)
{ … }
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_VERSION(…);
module_init(…) …;
module_exit(em28xx_alsa_unregister);