#include <linux/delay.h>
#include <linux/gfp.h>
#include "usbusx2yaudio.c"
#if defined(USX2Y_NRPACKS_VARIABLE) || USX2Y_NRPACKS == 1
#include <sound/hwdep.h>
static int usx2y_usbpcm_urb_capt_retire(struct snd_usx2y_substream *subs)
{ … }
static int usx2y_iso_frames_per_buffer(struct snd_pcm_runtime *runtime,
struct usx2ydev *usx2y)
{ … }
static int usx2y_hwdep_urb_play_prepare(struct snd_usx2y_substream *subs,
struct urb *urb)
{ … }
static void usx2y_usbpcm_urb_capt_iso_advance(struct snd_usx2y_substream *subs,
struct urb *urb)
{ … }
static int usx2y_usbpcm_usbframe_complete(struct snd_usx2y_substream *capsubs,
struct snd_usx2y_substream *capsubs2,
struct snd_usx2y_substream *playbacksubs,
int frame)
{ … }
static void i_usx2y_usbpcm_urb_complete(struct urb *urb)
{ … }
static void usx2y_hwdep_urb_release(struct urb **urb)
{ … }
static void usx2y_usbpcm_urbs_release(struct snd_usx2y_substream *subs)
{ … }
static void usx2y_usbpcm_subs_startup_finish(struct usx2ydev *usx2y)
{ … }
static void i_usx2y_usbpcm_subs_startup(struct urb *urb)
{ … }
static int usx2y_usbpcm_urbs_allocate(struct snd_usx2y_substream *subs)
{ … }
static int snd_usx2y_usbpcm_hw_free(struct snd_pcm_substream *substream)
{ … }
static void usx2y_usbpcm_subs_startup(struct snd_usx2y_substream *subs)
{ … }
static int usx2y_usbpcm_urbs_start(struct snd_usx2y_substream *subs)
{ … }
#define USX2Y_HWDEP_PCM_PAGES …
static int snd_usx2y_usbpcm_prepare(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_hardware snd_usx2y_4c = …;
static int snd_usx2y_usbpcm_open(struct snd_pcm_substream *substream)
{ … }
static int snd_usx2y_usbpcm_close(struct snd_pcm_substream *substream)
{ … }
static const struct snd_pcm_ops snd_usx2y_usbpcm_ops = …;
static int usx2y_pcms_busy_check(struct snd_card *card)
{ … }
static int snd_usx2y_hwdep_pcm_open(struct snd_hwdep *hw, struct file *file)
{ … }
static int snd_usx2y_hwdep_pcm_release(struct snd_hwdep *hw, struct file *file)
{ … }
static void snd_usx2y_hwdep_pcm_vm_open(struct vm_area_struct *area)
{ … }
static void snd_usx2y_hwdep_pcm_vm_close(struct vm_area_struct *area)
{ … }
static vm_fault_t snd_usx2y_hwdep_pcm_vm_fault(struct vm_fault *vmf)
{ … }
static const struct vm_operations_struct snd_usx2y_hwdep_pcm_vm_ops = …;
static int snd_usx2y_hwdep_pcm_mmap(struct snd_hwdep *hw, struct file *filp, struct vm_area_struct *area)
{ … }
static void snd_usx2y_hwdep_pcm_private_free(struct snd_hwdep *hwdep)
{ … }
int usx2y_hwdep_pcm_new(struct snd_card *card)
{ … }
#else
int usx2y_hwdep_pcm_new(struct snd_card *card)
{
return 0;
}
#endif