]> Pileus Git - ~andy/linux/commitdiff
[media] easycap: cleanup function usage
authorTomas Winkler <tomas.winkler@intel.com>
Wed, 9 Nov 2011 11:26:32 +0000 (08:26 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 24 Nov 2011 21:09:08 +0000 (19:09 -0200)
1. Remove declarations of none global functions from easycap.h
and make them static in the c-files.
2. Reorder static functions to reduce number of forward declarations.
3. Remove unused functions.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/staging/media/easycap/easycap.h
drivers/staging/media/easycap/easycap_ioctl.c
drivers/staging/media/easycap/easycap_low.c
drivers/staging/media/easycap/easycap_main.c
drivers/staging/media/easycap/easycap_sound.c

index 7b256a948c2758246d9983bab460c754d1c971b4..899e5720546bb9184bd66387d049c6daaf6e457e 100644 (file)
@@ -470,71 +470,49 @@ struct easycap {
  */
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 long easycap_unlocked_ioctl(struct file *, unsigned int, unsigned long);
-int              easycap_dqbuf(struct easycap *, int);
-int              submit_video_urbs(struct easycap *);
-int              kill_video_urbs(struct easycap *);
-int              field2frame(struct easycap *);
-int              redaub(struct easycap *, void *, void *,
-                                               int, int, u8, u8, bool);
-void             easycap_testcard(struct easycap *, int);
-int              fillin_formats(void);
-int              newinput(struct easycap *, int);
-int              adjust_standard(struct easycap *, v4l2_std_id);
-int              adjust_format(struct easycap *, u32, u32, u32,
-                                                               int, bool);
-int              adjust_brightness(struct easycap *, int);
-int              adjust_contrast(struct easycap *, int);
-int              adjust_saturation(struct easycap *, int);
-int              adjust_hue(struct easycap *, int);
-int              adjust_volume(struct easycap *, int);
+int easycap_dqbuf(struct easycap *, int);
+int submit_video_urbs(struct easycap *);
+int kill_video_urbs(struct easycap *);
+void easycap_testcard(struct easycap *, int);
+int fillin_formats(void);
+int newinput(struct easycap *, int);
+
+int adjust_standard(struct easycap *, v4l2_std_id);
+int adjust_format(struct easycap *, u32, u32, u32, int, bool);
+int adjust_brightness(struct easycap *, int);
+int adjust_contrast(struct easycap *, int);
+int adjust_saturation(struct easycap *, int);
+int adjust_hue(struct easycap *, int);
 /*---------------------------------------------------------------------------*/
 /*
  *  AUDIO FUNCTION PROTOTYPES
  */
 /*---------------------------------------------------------------------------*/
-int            easycap_alsa_probe(struct easycap *);
-void            easycap_alsa_complete(struct urb *);
-
-int              easycap_sound_setup(struct easycap *);
-int              submit_audio_urbs(struct easycap *);
-int              kill_audio_urbs(struct easycap *);
-void             easyoss_testtone(struct easycap *, int);
-int              audio_setup(struct easycap *);
+int easycap_alsa_probe(struct easycap *);
+void easycap_alsa_complete(struct urb *);
+int audio_setup(struct easycap *);
 /*---------------------------------------------------------------------------*/
 /*
  *  LOW-LEVEL FUNCTION PROTOTYPES
  */
 /*---------------------------------------------------------------------------*/
-int              audio_gainget(struct usb_device *);
-int              audio_gainset(struct usb_device *, s8);
-
-int              set_interface(struct usb_device *, u16);
-int              wakeup_device(struct usb_device *);
-int              confirm_resolution(struct usb_device *);
-int              confirm_stream(struct usb_device *);
-
-int              setup_stk(struct usb_device *, bool);
-int              setup_saa(struct usb_device *, bool);
-int              setup_vt(struct usb_device *);
-int              check_stk(struct usb_device *, bool);
-int              check_saa(struct usb_device *, bool);
-int              ready_saa(struct usb_device *);
-int              merit_saa(struct usb_device *);
-int              check_vt(struct usb_device *);
-int              select_input(struct usb_device *, int, int);
-int              set_resolution(struct usb_device *,
-                                               u16, u16, u16, u16);
-
-int              read_saa(struct usb_device *, u16);
-int              read_stk(struct usb_device *, u32);
-int              write_saa(struct usb_device *, u16, u16);
-int              write_000(struct usb_device *, u16, u16);
-int              start_100(struct usb_device *);
-int              stop_100(struct usb_device *);
-int              write_300(struct usb_device *);
-int              read_vt(struct usb_device *, u16);
-int              write_vt(struct usb_device *, u16, u16);
-int            isdongle(struct easycap *);
+int audio_gainset(struct usb_device *, s8);
+
+int wakeup_device(struct usb_device *);
+
+int setup_stk(struct usb_device *, bool);
+int setup_saa(struct usb_device *, bool);
+int ready_saa(struct usb_device *);
+int merit_saa(struct usb_device *);
+int check_vt(struct usb_device *);
+int select_input(struct usb_device *, int, int);
+int set_resolution(struct usb_device *, u16, u16, u16, u16);
+
+int read_saa(struct usb_device *, u16);
+int write_saa(struct usb_device *, u16, u16);
+int start_100(struct usb_device *);
+int stop_100(struct usb_device *);
+int isdongle(struct easycap *);
 /*---------------------------------------------------------------------------*/
 
 
index c99addfb62428888bd089de3a96b43b6e20a8500..f5bc741fc4c7067f0d506bbc951497875f13ee40 100644 (file)
@@ -854,7 +854,7 @@ int adjust_hue(struct easycap *peasycap, int value)
        return -ENOENT;
 }
 /*****************************************************************************/
-int adjust_volume(struct easycap *peasycap, int value)
+static int adjust_volume(struct easycap *peasycap, int value)
 {
        s8 mood;
        int i1;
index 0385735ac6df8a56d0a0a7f306941afdce47f6fb..02bb2e5c85a66be2e312b76508079eaaee78c4c8 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "easycap.h"
 
+
 #define GET(X, Y, Z) do { \
        int __rc; \
        *(Z) = (u16)0; \
@@ -354,101 +355,6 @@ static int wait_i2c(struct usb_device *p)
        return -1;
 }
 
-/****************************************************************************/
-int confirm_resolution(struct usb_device *p)
-{
-       u8 get0, get1, get2, get3, get4, get5, get6, get7;
-
-       if (!p)
-               return -ENODEV;
-       GET(p, 0x0110, &get0);
-       GET(p, 0x0111, &get1);
-       GET(p, 0x0112, &get2);
-       GET(p, 0x0113, &get3);
-       GET(p, 0x0114, &get4);
-       GET(p, 0x0115, &get5);
-       GET(p, 0x0116, &get6);
-       GET(p, 0x0117, &get7);
-       JOT(8,  "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X\n",
-               get0, get1, get2, get3, get4, get5, get6, get7);
-       JOT(8,  "....cf PAL_720x526: "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X\n",
-               0x000, 0x000, 0x001, 0x000, 0x5A0, 0x005, 0x121, 0x001);
-       JOT(8,  "....cf PAL_704x526: "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X\n",
-               0x004, 0x000, 0x001, 0x000, 0x584, 0x005, 0x121, 0x001);
-       JOT(8,  "....cf VGA_640x480: "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X, "
-               "0x%03X, 0x%03X\n",
-               0x008, 0x000, 0x020, 0x000, 0x508, 0x005, 0x110, 0x001);
-       return 0;
-}
-/****************************************************************************/
-int confirm_stream(struct usb_device *p)
-{
-       u16 get2;
-       u8 igot;
-
-       if (!p)
-               return -ENODEV;
-       GET(p, 0x0100, &igot);  get2 = 0x80 & igot;
-       if (0x80 == get2)
-               JOT(8, "confirm_stream:  OK\n");
-       else
-               JOT(8, "confirm_stream:  STUCK\n");
-       return 0;
-}
-/****************************************************************************/
-int setup_stk(struct usb_device *p, bool ntsc)
-{
-       int i;
-       const struct stk1160config *cfg;
-       if (!p)
-               return -ENODEV;
-       cfg = (ntsc) ? stk1160configNTSC : stk1160configPAL;
-       for (i = 0; cfg[i].reg != 0xFFF; i++)
-               SET(p, cfg[i].reg, cfg[i].set);
-
-       write_300(p);
-
-       return 0;
-}
-/****************************************************************************/
-int setup_saa(struct usb_device *p, bool ntsc)
-{
-       int i, ir;
-       const struct saa7113config *cfg;
-       if (!p)
-               return -ENODEV;
-       cfg = (ntsc) ?  saa7113configNTSC : saa7113configPAL;
-       for (i = 0; cfg[i].reg != 0xFF; i++)
-               ir = write_saa(p, cfg[i].reg, cfg[i].set);
-       return 0;
-}
-/****************************************************************************/
-int write_000(struct usb_device *p, u16 set2, u16 set0)
-{
-       u8 igot0, igot2;
-
-       if (!p)
-               return -ENODEV;
-       GET(p, 0x0002, &igot2);
-       GET(p, 0x0000, &igot0);
-       SET(p, 0x0002, set2);
-       SET(p, 0x0000, set0);
-       return 0;
-}
 /****************************************************************************/
 int write_saa(struct usb_device *p, u16 reg0, u16 set0)
 {
@@ -470,8 +376,7 @@ int write_saa(struct usb_device *p, u16 reg0, u16 set0)
  *  REGISTER 504:  TARGET ADDRESS ON VT1612A
  */
 /*--------------------------------------------------------------------------*/
-int
-write_vt(struct usb_device *p, u16 reg0, u16 set0)
+static int write_vt(struct usb_device *p, u16 reg0, u16 set0)
 {
        u8 igot;
        u16 got502, got503;
@@ -508,7 +413,7 @@ write_vt(struct usb_device *p, u16 reg0, u16 set0)
  *  REGISTER 504:  TARGET ADDRESS ON VT1612A
  */
 /*--------------------------------------------------------------------------*/
-int read_vt(struct usb_device *p, u16 reg0)
+static int read_vt(struct usb_device *p, u16 reg0)
 {
        u8 igot;
        u16 got502, got503;
@@ -532,7 +437,7 @@ int read_vt(struct usb_device *p, u16 reg0)
  *  THESE APPEAR TO HAVE NO EFFECT ON EITHER VIDEO OR AUDIO.
  */
 /*--------------------------------------------------------------------------*/
-int write_300(struct usb_device *p)
+static int write_300(struct usb_device *p)
 {
        if (!p)
                return -ENODEV;
@@ -545,32 +450,32 @@ int write_300(struct usb_device *p)
        return 0;
 }
 /****************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- *  NOTE: THE FOLLOWING IS NOT CHECKED:
- *  REGISTER 0x0F, WHICH IS INVOLVED IN CHROMINANCE AUTOMATIC GAIN CONTROL.
- */
-/*--------------------------------------------------------------------------*/
-int check_saa(struct usb_device *p, bool ntsc)
+/****************************************************************************/
+int setup_stk(struct usb_device *p, bool ntsc)
 {
-       int i, ir, rc = 0;
-       struct saa7113config const *cfg;
+       int i;
+       const struct stk1160config *cfg;
        if (!p)
                return -ENODEV;
+       cfg = (ntsc) ? stk1160configNTSC : stk1160configPAL;
+       for (i = 0; cfg[i].reg != 0xFFF; i++)
+               SET(p, cfg[i].reg, cfg[i].set);
 
-       cfg = (ntsc) ? saa7113configNTSC : saa7113configPAL;
-       for (i = 0; cfg[i].reg != 0xFF; i++) {
-               if (0x0F == cfg[i].reg)
-                       continue;
-               ir = read_saa(p, cfg[i].reg);
-               if (ir != cfg[i].set) {
-                       SAY("SAA register 0x%02X has 0x%02X, expected 0x%02X\n",
-                               cfg[i].reg, ir, cfg[i].set);
-                               rc--;
-               }
-       }
+       write_300(p);
 
-       return (rc < -8) ? rc : 0;
+       return 0;
+}
+/****************************************************************************/
+int setup_saa(struct usb_device *p, bool ntsc)
+{
+       int i, ir;
+       const struct saa7113config *cfg;
+       if (!p)
+               return -ENODEV;
+       cfg = (ntsc) ?  saa7113configNTSC : saa7113configPAL;
+       for (i = 0; cfg[i].reg != 0xFF; i++)
+               ir = write_saa(p, cfg[i].reg, cfg[i].set);
+       return 0;
 }
 /****************************************************************************/
 int merit_saa(struct usb_device *p)
@@ -629,44 +534,6 @@ int ready_saa(struct usb_device *p)
        return 0;
 }
 /****************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- *  NOTE: THE FOLLOWING ARE NOT CHECKED:
- *  REGISTERS 0x000, 0x002:  FUNCTIONALITY IS NOT KNOWN
- *  REGISTER  0x100:  ACCEPT ALSO (0x80 | stk1160config....[.].set)
- */
-/*--------------------------------------------------------------------------*/
-int check_stk(struct usb_device *p, bool ntsc)
-{
-       int i, ir;
-       const struct stk1160config *cfg;
-
-       if (!p)
-               return -ENODEV;
-       cfg = (ntsc) ? stk1160configNTSC : stk1160configPAL;
-
-       for (i = 0; 0xFFF != cfg[i].reg; i++) {
-               if (0x000 == cfg[i].reg || 0x002 == cfg[i].reg)
-                       continue;
-
-
-               ir = read_stk(p, cfg[i].reg);
-               if (0x100 == cfg[i].reg) {
-                       if ((ir != (0xFF & cfg[i].set)) &&
-                           (ir != (0x80 | (0xFF & cfg[i].set))) &&
-                           (0xFFFF != cfg[i].set)) {
-                               SAY("STK reg[0x%03X]=0x%02X expected 0x%02X\n",
-                                       cfg[i].reg, ir, cfg[i].set);
-                       }
-                       continue;
-               }
-               if ((ir != (0xFF & cfg[i].set)) && (0xFFFF != cfg[i].set))
-                       SAY("STK register 0x%03X has 0x%02X,expected 0x%02X\n",
-                               cfg[i].reg, ir, cfg[i].set);
-       }
-       return 0;
-}
-/****************************************************************************/
 int read_saa(struct usb_device *p, u16 reg0)
 {
        u8 igot;
@@ -682,7 +549,7 @@ int read_saa(struct usb_device *p, u16 reg0)
        return igot;
 }
 /****************************************************************************/
-int read_stk(struct usb_device *p, u32 reg0)
+static int read_stk(struct usb_device *p, u32 reg0)
 {
        u8 igot;
 
@@ -692,27 +559,7 @@ int read_stk(struct usb_device *p, u32 reg0)
        GET(p, reg0, &igot);
        return igot;
 }
-/****************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- *    HARDWARE    USERSPACE INPUT NUMBER   PHYSICAL INPUT   DRIVER input VALUE
- *
- *  CVBS+S-VIDEO           0 or 1              CVBS                 1
- *   FOUR-CVBS             0 or 1              CVBS1                1
- *   FOUR-CVBS                2                CVBS2                2
- *   FOUR-CVBS                3                CVBS3                3
- *   FOUR-CVBS                4                CVBS4                4
- *  CVBS+S-VIDEO              5               S-VIDEO               5
- *
- *  WHEN 5==input THE ARGUMENT mode MUST ALSO BE SUPPLIED:
- *
- *     mode  7   => GAIN TO BE SET EXPLICITLY USING REGISTER 0x05 (UNTESTED)
- *     mode  9   => USE AUTOMATIC GAIN CONTROL (DEFAULT)
- *
-*/
-/*---------------------------------------------------------------------------*/
-int
-select_input(struct usb_device *p, int input, int mode)
+int select_input(struct usb_device *p, int input, int mode)
 {
        int ir;
 
@@ -1115,15 +962,3 @@ int audio_gainset(struct usb_device *pusb_device, s8 loud)
        return 0;
 }
 /*****************************************************************************/
-int audio_gainget(struct usb_device *pusb_device)
-{
-       int igot;
-
-       if (!pusb_device)
-               return -ENODEV;
-       igot = read_vt(pusb_device, 0x001C);
-       if (0 > igot)
-               SAY("ERROR: failed to read VT1612A register 0x1C\n");
-       return igot;
-}
-/*****************************************************************************/
index a45c0b5070678785196fa1c9e2fd04ed77f964dd..94fd1167d4a8a5ccb403bb774d49c849e9c4d5a4 100644 (file)
@@ -66,6 +66,10 @@ struct easycap_dongle easycapdc60_dongle[DONGLE_MANY];
 static struct mutex mutex_dongle;
 static void easycap_complete(struct urb *purb);
 static int reset(struct easycap *peasycap);
+static int field2frame(struct easycap *peasycap);
+static int redaub(struct easycap *peasycap,
+               void *pad, void *pex, int much, int more,
+               u8 mask, u8 margin, bool isuy);
 
 const char *strerror(int err)
 {
@@ -1211,8 +1215,7 @@ int easycap_dqbuf(struct easycap *peasycap, int mode)
  *  CHOOSES THE OPTION V4L2_FIELD_INTERLACED.
  */
 /*---------------------------------------------------------------------------*/
-int
-field2frame(struct easycap *peasycap)
+static int field2frame(struct easycap *peasycap)
 {
 
        void *pex, *pad;
@@ -1601,9 +1604,9 @@ field2frame(struct easycap *peasycap)
  *  REDUCE CODE LENGTH WILL GENERALLY IMPAIR RUNTIME PERFORMANCE.  BEWARE.
  */
 /*---------------------------------------------------------------------------*/
-int
-redaub(struct easycap *peasycap, void *pad, void *pex, int much, int more,
-                                       u8 mask, u8 margin, bool isuy)
+static int redaub(struct easycap *peasycap,
+               void *pad, void *pex, int much, int more,
+               u8 mask, u8 margin, bool isuy)
 {
        static s32 ay[256], bu[256], rv[256], gu[256], gv[256];
        u8 *pcache;
index b22bb39b5f69294882cdb82ca4b8f6c2b65f63c2..70813a5ef5fe6ca17e4ce53e866dfee030f61103 100644 (file)
@@ -56,6 +56,152 @@ static const struct snd_pcm_hardware alsa_hardware = {
 };
 
 
+/*---------------------------------------------------------------------------*/
+/*
+ *  SUBMIT ALL AUDIO URBS.
+ */
+/*---------------------------------------------------------------------------*/
+static int submit_audio_urbs(struct easycap *peasycap)
+{
+       struct data_urb *pdata_urb;
+       struct urb *purb;
+       struct list_head *plist_head;
+       int j, isbad, nospc, m, rc;
+       int isbuf;
+
+       if (!peasycap) {
+               SAY("ERROR: peasycap is NULL\n");
+               return -EFAULT;
+       }
+       if (!peasycap->purb_audio_head) {
+               SAM("ERROR: peasycap->urb_audio_head uninitialized\n");
+               return -EFAULT;
+       }
+       if (!peasycap->pusb_device) {
+               SAM("ERROR: peasycap->pusb_device is NULL\n");
+               return -EFAULT;
+       }
+
+       if (peasycap->audio_isoc_streaming) {
+               JOM(4, "already streaming audio urbs\n");
+               return 0;
+       }
+
+       JOM(4, "initial submission of all audio urbs\n");
+       rc = usb_set_interface(peasycap->pusb_device,
+                              peasycap->audio_interface,
+                              peasycap->audio_altsetting_on);
+       JOM(8, "usb_set_interface(.,%i,%i) returned %i\n",
+           peasycap->audio_interface,
+           peasycap->audio_altsetting_on, rc);
+
+       isbad = 0;
+       nospc = 0;
+       m = 0;
+       list_for_each(plist_head, peasycap->purb_audio_head) {
+               pdata_urb = list_entry(plist_head, struct data_urb, list_head);
+               if (pdata_urb && pdata_urb->purb) {
+                       purb = pdata_urb->purb;
+                       isbuf = pdata_urb->isbuf;
+
+                       purb->interval = 1;
+                       purb->dev = peasycap->pusb_device;
+                       purb->pipe = usb_rcvisocpipe(peasycap->pusb_device,
+                                       peasycap->audio_endpointnumber);
+                       purb->transfer_flags = URB_ISO_ASAP;
+                       purb->transfer_buffer = peasycap->audio_isoc_buffer[isbuf].pgo;
+                       purb->transfer_buffer_length = peasycap->audio_isoc_buffer_size;
+                       purb->complete = easycap_alsa_complete;
+                       purb->context = peasycap;
+                       purb->start_frame = 0;
+                       purb->number_of_packets = peasycap->audio_isoc_framesperdesc;
+                       for (j = 0;  j < peasycap->audio_isoc_framesperdesc; j++) {
+                               purb->iso_frame_desc[j].offset = j * peasycap->audio_isoc_maxframesize;
+                               purb->iso_frame_desc[j].length = peasycap->audio_isoc_maxframesize;
+                       }
+
+                       rc = usb_submit_urb(purb, GFP_KERNEL);
+                       if (rc) {
+                               isbad++;
+                               SAM("ERROR: usb_submit_urb() failed"
+                                   " for urb with rc: -%s: %d\n",
+                                   strerror(rc), rc);
+                       } else {
+                               m++;
+                       }
+               } else {
+                       isbad++;
+               }
+       }
+       if (nospc) {
+               SAM("-ENOSPC=usb_submit_urb() for %i urbs\n", nospc);
+               SAM(".....  possibly inadequate USB bandwidth\n");
+               peasycap->audio_eof = 1;
+       }
+       if (isbad) {
+               JOM(4, "attempting cleanup instead of submitting\n");
+               list_for_each(plist_head, (peasycap->purb_audio_head)) {
+                       pdata_urb = list_entry(plist_head, struct data_urb, list_head);
+                       if (pdata_urb && pdata_urb->purb)
+                               usb_kill_urb(pdata_urb->purb);
+               }
+               peasycap->audio_isoc_streaming = 0;
+       } else {
+               peasycap->audio_isoc_streaming = m;
+               JOM(4, "submitted %i audio urbs\n", m);
+       }
+
+       return 0;
+}
+/*---------------------------------------------------------------------------*/
+/*
+ *  COMMON AUDIO INITIALIZATION
+ */
+/*---------------------------------------------------------------------------*/
+static int easycap_sound_setup(struct easycap *peasycap)
+{
+       int rc;
+
+       JOM(4, "starting initialization\n");
+
+       if (!peasycap) {
+               SAY("ERROR:  peasycap is NULL.\n");
+               return -EFAULT;
+       }
+       if (!peasycap->pusb_device) {
+               SAM("ERROR: peasycap->pusb_device is NULL\n");
+               return -ENODEV;
+       }
+       JOM(16, "0x%08lX=peasycap->pusb_device\n", (long int)peasycap->pusb_device);
+
+       rc = audio_setup(peasycap);
+       JOM(8, "audio_setup() returned %i\n", rc);
+
+       if (!peasycap->pusb_device) {
+               SAM("ERROR: peasycap->pusb_device has become NULL\n");
+               return -ENODEV;
+       }
+/*---------------------------------------------------------------------------*/
+       if (!peasycap->pusb_device) {
+               SAM("ERROR: peasycap->pusb_device has become NULL\n");
+               return -ENODEV;
+       }
+       rc = usb_set_interface(peasycap->pusb_device, peasycap->audio_interface,
+                              peasycap->audio_altsetting_on);
+       JOM(8, "usb_set_interface(.,%i,%i) returned %i\n", peasycap->audio_interface,
+           peasycap->audio_altsetting_on, rc);
+
+       rc = wakeup_device(peasycap->pusb_device);
+       JOM(8, "wakeup_device() returned %i\n", rc);
+
+       peasycap->audio_eof = 0;
+       peasycap->audio_idle = 0;
+
+       submit_audio_urbs(peasycap);
+
+       JOM(4, "finished initialization\n");
+       return 0;
+}
 /*****************************************************************************/
 /*---------------------------------------------------------------------------*/
 /*
@@ -615,202 +761,3 @@ int easycap_alsa_probe(struct easycap *peasycap)
        return 0;
 }
 
-/*****************************************************************************/
-/*****************************************************************************/
-/*****************************************************************************/
-/*****************************************************************************/
-/*****************************************************************************/
-/*****************************************************************************/
-/*---------------------------------------------------------------------------*/
-/*
- *  COMMON AUDIO INITIALIZATION
- */
-/*---------------------------------------------------------------------------*/
-int
-easycap_sound_setup(struct easycap *peasycap)
-{
-       int rc;
-
-       JOM(4, "starting initialization\n");
-
-       if (!peasycap) {
-               SAY("ERROR:  peasycap is NULL.\n");
-               return -EFAULT;
-       }
-       if (!peasycap->pusb_device) {
-               SAM("ERROR: peasycap->pusb_device is NULL\n");
-               return -ENODEV;
-       }
-       JOM(16, "0x%08lX=peasycap->pusb_device\n", (long int)peasycap->pusb_device);
-
-       rc = audio_setup(peasycap);
-       JOM(8, "audio_setup() returned %i\n", rc);
-
-       if (!peasycap->pusb_device) {
-               SAM("ERROR: peasycap->pusb_device has become NULL\n");
-               return -ENODEV;
-       }
-/*---------------------------------------------------------------------------*/
-       if (!peasycap->pusb_device) {
-               SAM("ERROR: peasycap->pusb_device has become NULL\n");
-               return -ENODEV;
-       }
-       rc = usb_set_interface(peasycap->pusb_device, peasycap->audio_interface,
-                              peasycap->audio_altsetting_on);
-       JOM(8, "usb_set_interface(.,%i,%i) returned %i\n", peasycap->audio_interface,
-           peasycap->audio_altsetting_on, rc);
-
-       rc = wakeup_device(peasycap->pusb_device);
-       JOM(8, "wakeup_device() returned %i\n", rc);
-
-       peasycap->audio_eof = 0;
-       peasycap->audio_idle = 0;
-
-       submit_audio_urbs(peasycap);
-
-       JOM(4, "finished initialization\n");
-       return 0;
-}
-/*****************************************************************************/
-/*---------------------------------------------------------------------------*/
-/*
- *  SUBMIT ALL AUDIO URBS.
- */
-/*---------------------------------------------------------------------------*/
-int
-submit_audio_urbs(struct easycap *peasycap)
-{
-       struct data_urb *pdata_urb;
-       struct urb *purb;
-       struct list_head *plist_head;
-       int j, isbad, nospc, m, rc;
-       int isbuf;
-
-       if (!peasycap) {
-               SAY("ERROR: peasycap is NULL\n");
-               return -EFAULT;
-       }
-       if (!peasycap->purb_audio_head) {
-               SAM("ERROR: peasycap->urb_audio_head uninitialized\n");
-               return -EFAULT;
-       }
-       if (!peasycap->pusb_device) {
-               SAM("ERROR: peasycap->pusb_device is NULL\n");
-               return -EFAULT;
-       }
-
-       if (peasycap->audio_isoc_streaming) {
-               JOM(4, "already streaming audio urbs\n");
-               return 0;
-       }
-
-       JOM(4, "initial submission of all audio urbs\n");
-       rc = usb_set_interface(peasycap->pusb_device,
-                              peasycap->audio_interface,
-                              peasycap->audio_altsetting_on);
-       JOM(8, "usb_set_interface(.,%i,%i) returned %i\n",
-           peasycap->audio_interface,
-           peasycap->audio_altsetting_on, rc);
-
-       isbad = 0;
-       nospc = 0;
-       m = 0;
-       list_for_each(plist_head, peasycap->purb_audio_head) {
-               pdata_urb = list_entry(plist_head, struct data_urb, list_head);
-               if (pdata_urb && pdata_urb->purb) {
-                       purb = pdata_urb->purb;
-                       isbuf = pdata_urb->isbuf;
-
-                       purb->interval = 1;
-                       purb->dev = peasycap->pusb_device;
-                       purb->pipe = usb_rcvisocpipe(peasycap->pusb_device,
-                                       peasycap->audio_endpointnumber);
-                       purb->transfer_flags = URB_ISO_ASAP;
-                       purb->transfer_buffer = peasycap->audio_isoc_buffer[isbuf].pgo;
-                       purb->transfer_buffer_length = peasycap->audio_isoc_buffer_size;
-                       purb->complete = easycap_alsa_complete;
-                       purb->context = peasycap;
-                       purb->start_frame = 0;
-                       purb->number_of_packets = peasycap->audio_isoc_framesperdesc;
-                       for (j = 0;  j < peasycap->audio_isoc_framesperdesc; j++) {
-                               purb->iso_frame_desc[j].offset = j * peasycap->audio_isoc_maxframesize;
-                               purb->iso_frame_desc[j].length = peasycap->audio_isoc_maxframesize;
-                       }
-
-                       rc = usb_submit_urb(purb, GFP_KERNEL);
-                       if (rc) {
-                               isbad++;
-                               SAM("ERROR: usb_submit_urb() failed"
-                                   " for urb with rc: -%s: %d\n",
-                                   strerror(rc), rc);
-                       } else {
-                               m++;
-                       }
-               } else {
-                       isbad++;
-               }
-       }
-       if (nospc) {
-               SAM("-ENOSPC=usb_submit_urb() for %i urbs\n", nospc);
-               SAM(".....  possibly inadequate USB bandwidth\n");
-               peasycap->audio_eof = 1;
-       }
-       if (isbad) {
-               JOM(4, "attempting cleanup instead of submitting\n");
-               list_for_each(plist_head, (peasycap->purb_audio_head)) {
-                       pdata_urb = list_entry(plist_head, struct data_urb, list_head);
-                       if (pdata_urb && pdata_urb->purb)
-                               usb_kill_urb(pdata_urb->purb);
-               }
-               peasycap->audio_isoc_streaming = 0;
-       } else {
-               peasycap->audio_isoc_streaming = m;
-               JOM(4, "submitted %i audio urbs\n", m);
-       }
-
-       return 0;
-}
-/*****************************************************************************/
-/*---------------------------------------------------------------------------*/
-/*
- *  KILL ALL AUDIO URBS.
- */
-/*---------------------------------------------------------------------------*/
-int
-kill_audio_urbs(struct easycap *peasycap)
-{
-       int m;
-       struct list_head *plist_head;
-       struct data_urb *pdata_urb;
-
-       if (!peasycap) {
-               SAY("ERROR: peasycap is NULL\n");
-               return -EFAULT;
-       }
-
-       if (!peasycap->audio_isoc_streaming) {
-               JOM(8, "%i=audio_isoc_streaming, no audio urbs killed\n",
-                   peasycap->audio_isoc_streaming);
-               return 0;
-       }
-
-       if (!peasycap->purb_audio_head) {
-               SAM("ERROR: peasycap->purb_audio_head is NULL\n");
-               return -EFAULT;
-       }
-
-       peasycap->audio_isoc_streaming = 0;
-       JOM(4, "killing audio urbs\n");
-       m = 0;
-       list_for_each(plist_head, (peasycap->purb_audio_head)) {
-               pdata_urb = list_entry(plist_head, struct data_urb, list_head);
-               if (pdata_urb && pdata_urb->purb) {
-                       usb_kill_urb(pdata_urb->purb);
-                       m++;
-               }
-       }
-       JOM(4, "%i audio urbs killed\n", m);
-
-       return 0;
-}
-/*****************************************************************************/