summaryrefslogtreecommitdiffstats
path: root/drivers/staging/easycap
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2011-02-28 19:27:06 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-28 15:24:17 -0800
commitc750665850dfed34d3ff0f73ddf367cc7b729b77 (patch)
treeb08d10bd26a5238ae68dcfa0cc962eb0082569e1 /drivers/staging/easycap
parent6653eb317facd4f020ca0a0378867d6f33f9a921 (diff)
staging/easycap: add first level indentation to easycap_main
Add first level indentation to easayca_main.c This created around 300 lines over 80 characters. Around 100 of straight forward once were fixed in this patch. The another 200 require more code movement and need to be fixed later Cc: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/easycap')
-rw-r--r--drivers/staging/easycap/easycap_main.c4564
1 files changed, 2234 insertions, 2330 deletions
diff --git a/drivers/staging/easycap/easycap_main.c b/drivers/staging/easycap/easycap_main.c
index fc1a1781227e..e33c3cb7b397 100644
--- a/drivers/staging/easycap/easycap_main.c
+++ b/drivers/staging/easycap/easycap_main.c
@@ -125,89 +125,87 @@ const char *strerror(int err)
* THIS ROUTINE DOES NOT DETECT DUPLICATE OCCURRENCES OF POINTER peasycap
*/
/*---------------------------------------------------------------------------*/
-int
-isdongle(struct easycap *peasycap)
+int isdongle(struct easycap *peasycap)
{
-int k;
-if (NULL == peasycap)
- return -2;
-for (k = 0; k < DONGLE_MANY; k++) {
- if (easycapdc60_dongle[k].peasycap == peasycap) {
- peasycap->isdongle = k;
- return k;
+ int k;
+ if (NULL == peasycap)
+ return -2;
+ for (k = 0; k < DONGLE_MANY; k++) {
+ if (easycapdc60_dongle[k].peasycap == peasycap) {
+ peasycap->isdongle = k;
+ return k;
+ }
}
-}
-return -1;
+ return -1;
}
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
static int easycap_open(struct inode *inode, struct file *file)
{
-#ifndef EASYCAP_IS_VIDEODEV_CLIENT
-struct usb_interface *pusb_interface;
-#else
-struct video_device *pvideo_device;
-#endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
-struct easycap *peasycap;
-int rc;
+ #ifndef EASYCAP_IS_VIDEODEV_CLIENT
+ struct usb_interface *pusb_interface;
+ #else
+ struct video_device *pvideo_device;
+ #endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
+ struct easycap *peasycap;
+ int rc;
-JOT(4, "\n");
-SAY("==========OPEN=========\n");
+ JOT(4, "\n");
+ SAY("==========OPEN=========\n");
/*---------------------------------------------------------------------------*/
#ifndef EASYCAP_IS_VIDEODEV_CLIENT
-if (NULL == inode) {
- SAY("ERROR: inode is NULL.\n");
- return -EFAULT;
-}
-pusb_interface = usb_find_interface(&easycap_usb_driver, iminor(inode));
-if (!pusb_interface) {
- SAY("ERROR: pusb_interface is NULL.\n");
- return -EFAULT;
-}
-peasycap = usb_get_intfdata(pusb_interface);
+ if (NULL == inode) {
+ SAY("ERROR: inode is NULL.\n");
+ return -EFAULT;
+ }
+ pusb_interface = usb_find_interface(&easycap_usb_driver, iminor(inode));
+ if (!pusb_interface) {
+ SAY("ERROR: pusb_interface is NULL.\n");
+ return -EFAULT;
+ }
+ peasycap = usb_get_intfdata(pusb_interface);
/*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*/
#else
-pvideo_device = video_devdata(file);
-if (NULL == pvideo_device) {
- SAY("ERROR: pvideo_device is NULL.\n");
- return -EFAULT;
-}
-peasycap = (struct easycap *)video_get_drvdata(pvideo_device);
+ pvideo_device = video_devdata(file);
+ if (NULL == pvideo_device) {
+ SAY("ERROR: pvideo_device is NULL.\n");
+ return -EFAULT;
+ }
+ peasycap = (struct easycap *)video_get_drvdata(pvideo_device);
#endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
-/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- return -EFAULT;
-}
-if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
- SAY("ERROR: bad peasycap: %p\n", peasycap);
- return -EFAULT;
-}
-if (NULL == peasycap->pusb_device) {
- SAM("ERROR: peasycap->pusb_device is NULL\n");
- return -EFAULT;
-} else {
- JOM(16, "peasycap->pusb_device=%p\n", peasycap->pusb_device);
-}
-file->private_data = peasycap;
-rc = wakeup_device(peasycap->pusb_device);
-if (0 == rc)
- JOM(8, "wakeup_device() OK\n");
-else {
- SAM("ERROR: wakeup_device() returned %i\n", rc);
- if (-ENODEV == rc)
- SAM("ERROR: wakeup_device() returned -ENODEV\n");
- else
- SAM("ERROR: wakeup_device() returned %i\n", rc);
- return rc;
-}
-peasycap->input = 0;
-rc = reset(peasycap);
-if (rc) {
- SAM("ERROR: reset() returned %i\n", rc);
- return -EFAULT;
-}
-return 0;
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ return -EFAULT;
+ }
+ if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
+ SAY("ERROR: bad peasycap: %p\n", peasycap);
+ return -EFAULT;
+ }
+ if (NULL == peasycap->pusb_device) {
+ SAM("ERROR: peasycap->pusb_device is NULL\n");
+ return -EFAULT;
+ } else {
+ JOM(16, "peasycap->pusb_device=%p\n", peasycap->pusb_device);
+ }
+ file->private_data = peasycap;
+ rc = wakeup_device(peasycap->pusb_device);
+ if (0 == rc)
+ JOM(8, "wakeup_device() OK\n");
+ else {
+ SAM("ERROR: wakeup_device() rc = %i\n", rc);
+ if (-ENODEV == rc)
+ SAM("ERROR: wakeup_device() returned -ENODEV\n");
+ else
+ SAM("ERROR: wakeup_device() rc = %i\n", rc);
+ return rc;
+ }
+ peasycap->input = 0;
+ rc = reset(peasycap);
+ if (rc) {
+ SAM("ERROR: reset() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ return 0;
}
/*****************************************************************************/
@@ -221,15 +219,16 @@ return 0;
/*---------------------------------------------------------------------------*/
static int reset(struct easycap *peasycap)
{
-struct easycap_standard const *peasycap_standard;
-int i, rc, input, rate;
-bool ntsc, other;
+ struct easycap_standard const *peasycap_standard;
+ int i, rc, input, rate;
+ bool ntsc, other;
+ int fmtidx;
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- return -EFAULT;
-}
-input = peasycap->input;
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ return -EFAULT;
+ }
+ input = peasycap->input;
/*---------------------------------------------------------------------------*/
/*
@@ -242,74 +241,70 @@ input = peasycap->input;
* COMPLETE, SO SHOULD NOT BE INVOKED WITHOUT GOOD REASON.
*/
/*---------------------------------------------------------------------------*/
-other = false;
-if (true == peasycap->ntsc)
- JOM(8, "true=peasycap->ntsc\n");
-else
- JOM(8, "false=peasycap->ntsc\n");
-rate = ready_saa(peasycap->pusb_device);
-if (0 > rate) {
- JOM(8, "not ready to capture after %i ms ...\n", PATIENCE);
- if (true == peasycap->ntsc) {
- JOM(8, "... trying PAL ...\n"); ntsc = false;
- } else {
- JOM(8, "... trying NTSC ...\n"); ntsc = true;
-}
-rc = setup_stk(peasycap->pusb_device, ntsc);
-if (0 == rc)
- JOM(4, "setup_stk() OK\n");
-else {
- SAM("ERROR: setup_stk() returned %i\n", rc);
- return -EFAULT;
-}
-rc = setup_saa(peasycap->pusb_device, ntsc);
-if (0 == rc)
- JOM(4, "setup_saa() OK\n");
-else {
- SAM("ERROR: setup_saa() returned %i\n", rc);
- return -EFAULT;
-}
-rate = ready_saa(peasycap->pusb_device);
-if (0 > rate) {
- JOM(8, "not ready to capture after %i ms ...\n", PATIENCE);
- JOM(8, "... saa register 0x1F has 0x%02X\n",
- read_saa(peasycap->pusb_device, 0x1F));
- ntsc = peasycap->ntsc;
+ other = false;
+ JOM(8, "peasycap->ntsc=%d\n", peasycap->ntsc);
+
+ rate = ready_saa(peasycap->pusb_device);
+ if (0 > rate) {
+ JOM(8, "not ready to capture after %i ms ...\n", PATIENCE);
+ if (true == peasycap->ntsc) {
+ JOM(8, "... trying PAL ...\n"); ntsc = false;
+ } else {
+ JOM(8, "... trying NTSC ...\n"); ntsc = true;
+ }
+ rc = setup_stk(peasycap->pusb_device, ntsc);
+ if (0 == rc)
+ JOM(4, "setup_stk() OK\n");
+ else {
+ SAM("ERROR: setup_stk() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ rc = setup_saa(peasycap->pusb_device, ntsc);
+ if (0 == rc)
+ JOM(4, "setup_saa() OK\n");
+ else {
+ SAM("ERROR: setup_saa() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ rate = ready_saa(peasycap->pusb_device);
+ if (0 > rate) {
+ JOM(8, "not ready to capture after %i ms ...\n", PATIENCE);
+ JOM(8, "... saa register 0x1F has 0x%02X\n",
+ read_saa(peasycap->pusb_device, 0x1F));
+ ntsc = peasycap->ntsc;
+ } else {
+ JOM(8, "... success at second try: %i=rate\n", rate);
+ ntsc = (0 < (rate/2)) ? true : false ;
+ other = true;
+ }
} else {
- JOM(8, "... success at second try: %i=rate\n", rate);
- ntsc = (0 < (rate/2)) ? true : false ;
- other = true;
+ JOM(8, "... success at first try: %i=rate\n", rate);
+ ntsc = (0 < rate/2) ? true : false ;
+ }
+ JOM(8, "ntsc=%d\n", ntsc);
+/*---------------------------------------------------------------------------*/
+
+ rc = setup_stk(peasycap->pusb_device, ntsc);
+ if (0 == rc)
+ JOM(4, "setup_stk() OK\n");
+ else {
+ SAM("ERROR: setup_stk() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ rc = setup_saa(peasycap->pusb_device, ntsc);
+ if (0 == rc)
+ JOM(4, "setup_saa() OK\n");
+ else {
+ SAM("ERROR: setup_saa() rc = %i\n", rc);
+ return -EFAULT;
}
-} else {
- JOM(8, "... success at first try: %i=rate\n", rate);
- ntsc = (0 < rate/2) ? true : false ;
-}
-if (true == ntsc)
- JOM(8, "true=ntsc\n");
-else
- JOM(8, "false=ntsc\n");
-/*---------------------------------------------------------------------------*/
-
-rc = setup_stk(peasycap->pusb_device, ntsc);
-if (0 == rc)
- JOM(4, "setup_stk() OK\n");
-else {
- SAM("ERROR: setup_stk() returned %i\n", rc);
- return -EFAULT;
-}
-rc = setup_saa(peasycap->pusb_device, ntsc);
-if (0 == rc)
- JOM(4, "setup_saa() OK\n");
-else {
- SAM("ERROR: setup_saa() returned %i\n", rc);
- return -EFAULT;
-}
-for (i = 0; i < 180; i++)
- peasycap->merit[i] = 0;
-peasycap->video_eof = 0;
-peasycap->audio_eof = 0;
-do_gettimeofday(&peasycap->timeval7);
+ for (i = 0; i < 180; i++)
+ peasycap->merit[i] = 0;
+
+ peasycap->video_eof = 0;
+ peasycap->audio_eof = 0;
+ do_gettimeofday(&peasycap->timeval7);
/*---------------------------------------------------------------------------*/
/*
* RESTORE INPUT AND FORCE REFRESH OF STANDARD, FORMAT, ETC.
@@ -317,86 +312,75 @@ do_gettimeofday(&peasycap->timeval7);
* WHILE THIS PROCEDURE IS IN PROGRESS, SOME IOCTL COMMANDS WILL RETURN -EBUSY.
*/
/*---------------------------------------------------------------------------*/
-peasycap->input = -8192;
-peasycap->standard_offset = -8192;
-if (true == other) {
- peasycap_standard = &easycap_standard[0];
- while (0xFFFF != peasycap_standard->mask) {
- if (true == ntsc) {
- if (NTSC_M == peasycap_standard->v4l2_standard.index) {
- peasycap->inputset[input].standard_offset =
- peasycap_standard -
- &easycap_standard[0];
- break;
- }
- } else {
- if (PAL_BGHIN ==
- peasycap_standard->v4l2_standard.index) {
+ peasycap->input = -8192;
+ peasycap->standard_offset = -8192;
+ fmtidx = ntsc ? NTSC_M : PAL_BGHIN;
+ if (other) {
+ peasycap_standard = &easycap_standard[0];
+ while (0xFFFF != peasycap_standard->mask) {
+ if (fmtidx == peasycap_standard->v4l2_standard.index) {
peasycap->inputset[input].standard_offset =
- peasycap_standard -
- &easycap_standard[0];
+ peasycap_standard - easycap_standard;
break;
}
+ peasycap_standard++;
}
- peasycap_standard++;
- }
- if (0xFFFF == peasycap_standard->mask) {
- SAM("ERROR: standard not found\n");
- return -EINVAL;
+ if (0xFFFF == peasycap_standard->mask) {
+ SAM("ERROR: standard not found\n");
+ return -EINVAL;
+ }
+ JOM(8, "%i=peasycap->inputset[%i].standard_offset\n",
+ peasycap->inputset[input].standard_offset, input);
}
-JOM(8, "%i=peasycap->inputset[%i].standard_offset\n",
- peasycap->inputset[input].standard_offset, input);
-}
-peasycap->format_offset = -8192;
-peasycap->brightness = -8192;
-peasycap->contrast = -8192;
-peasycap->saturation = -8192;
-peasycap->hue = -8192;
+ peasycap->format_offset = -8192;
+ peasycap->brightness = -8192;
+ peasycap->contrast = -8192;
+ peasycap->saturation = -8192;
+ peasycap->hue = -8192;
-rc = newinput(peasycap, input);
+ rc = newinput(peasycap, input);
-if (0 == rc)
+ if (rc) {
+ SAM("ERROR: newinput(.,%i) rc = %i\n", rc, input);
+ return -EFAULT;
+ }
JOM(4, "restored input, standard and format\n");
-else {
- SAM("ERROR: newinput(.,%i) returned %i\n", rc, input);
- return -EFAULT;
-}
-if (true == peasycap->ntsc)
- JOM(8, "true=peasycap->ntsc\n");
-else
- JOM(8, "false=peasycap->ntsc\n");
-
-if (0 > peasycap->input) {
- SAM("MISTAKE: %i=peasycap->input\n", peasycap->input);
- return -ENOENT;
-}
-if (0 > peasycap->standard_offset) {
- SAM("MISTAKE: %i=peasycap->standard_offset\n",
- peasycap->standard_offset);
- return -ENOENT;
-}
-if (0 > peasycap->format_offset) {
- SAM("MISTAKE: %i=peasycap->format_offset\n",
- peasycap->format_offset);
- return -ENOENT;
-}
-if (0 > peasycap->brightness) {
- SAM("MISTAKE: %i=peasycap->brightness\n", peasycap->brightness);
- return -ENOENT;
-}
-if (0 > peasycap->contrast) {
- SAM("MISTAKE: %i=peasycap->contrast\n", peasycap->contrast);
- return -ENOENT;
-}
-if (0 > peasycap->saturation) {
- SAM("MISTAKE: %i=peasycap->saturation\n", peasycap->saturation);
- return -ENOENT;
-}
-if (0 > peasycap->hue) {
- SAM("MISTAKE: %i=peasycap->hue\n", peasycap->hue);
- return -ENOENT;
-}
-return 0;
+
+ JOM(8, "true=peasycap->ntsc %d\n", peasycap->ntsc);
+
+ if (0 > peasycap->input) {
+ SAM("MISTAKE: %i=peasycap->input\n", peasycap->input);
+ return -ENOENT;
+ }
+ if (0 > peasycap->standard_offset) {
+ SAM("MISTAKE: %i=peasycap->standard_offset\n",
+ peasycap->standard_offset);
+ return -ENOENT;
+ }
+ if (0 > peasycap->format_offset) {
+ SAM("MISTAKE: %i=peasycap->format_offset\n",
+ peasycap->format_offset);
+ return -ENOENT;
+ }
+ if (0 > peasycap->brightness) {
+ SAM("MISTAKE: %i=peasycap->brightness\n",
+ peasycap->brightness);
+ return -ENOENT;
+ }
+ if (0 > peasycap->contrast) {
+ SAM("MISTAKE: %i=peasycap->contrast\n", peasycap->contrast);
+ return -ENOENT;
+ }
+ if (0 > peasycap->saturation) {
+ SAM("MISTAKE: %i=peasycap->saturation\n",
+ peasycap->saturation);
+ return -ENOENT;
+ }
+ if (0 > peasycap->hue) {
+ SAM("MISTAKE: %i=peasycap->hue\n", peasycap->hue);
+ return -ENOENT;
+ }
+ return 0;
}
/*****************************************************************************/
/*---------------------------------------------------------------------------*/
@@ -418,21 +402,21 @@ return 0;
int
newinput(struct easycap *peasycap, int input)
{
-int rc, k, m, mood, off;
-int inputnow, video_idlenow, audio_idlenow;
-bool resubmit;
+ int rc, k, m, mood, off;
+ int inputnow, video_idlenow, audio_idlenow;
+ bool resubmit;
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- return -EFAULT;
-}
-JOM(8, "%i=input sought\n", input);
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ return -EFAULT;
+ }
+ JOM(8, "%i=input sought\n", input);
-if (0 > input && INPUT_MANY <= input)
- return -ENOENT;
-inputnow = peasycap->input;
-if (input == inputnow)
- return 0;
+ if (0 > input && INPUT_MANY <= input)
+ return -ENOENT;
+ inputnow = peasycap->input;
+ if (input == inputnow)
+ return 0;
/*---------------------------------------------------------------------------*/
/*
* IF STREAMING IS IN PROGRESS THE URBS ARE KILLED AT THIS
@@ -441,183 +425,187 @@ if (input == inputnow)
* ROUTINE.
*/
/*---------------------------------------------------------------------------*/
-video_idlenow = peasycap->video_idle;
-audio_idlenow = peasycap->audio_idle;
+ video_idlenow = peasycap->video_idle;
+ audio_idlenow = peasycap->audio_idle;
-peasycap->video_idle = 1;
-peasycap->audio_idle = 1;
-if (peasycap->video_isoc_streaming) {
- resubmit = true;
- kill_video_urbs(peasycap);
-} else
- resubmit = false;
+ peasycap->video_idle = 1;
+ peasycap->audio_idle = 1;
+ if (peasycap->video_isoc_streaming) {
+ resubmit = true;
+ kill_video_urbs(peasycap);
+ } else {
+ resubmit = false;
+ }
/*---------------------------------------------------------------------------*/
-if (NULL == peasycap->pusb_device) {
- SAM("ERROR: peasycap->pusb_device is NULL\n");
- return -ENODEV;
-}
-rc = usb_set_interface(peasycap->pusb_device,
- peasycap->video_interface,
- peasycap->video_altsetting_off);
-if (rc) {
- SAM("ERROR: usb_set_interface() returned %i\n", rc);
- return -EFAULT;
-}
-rc = stop_100(peasycap->pusb_device);
-if (rc) {
- SAM("ERROR: stop_100() returned %i\n", rc);
- return -EFAULT;
-}
-for (k = 0; k < FIELD_BUFFER_MANY; k++) {
- for (m = 0; m < FIELD_BUFFER_SIZE/PAGE_SIZE; m++)
- memset(peasycap->field_buffer[k][m].pgo, 0, PAGE_SIZE);
-}
-for (k = 0; k < FRAME_BUFFER_MANY; k++) {
- for (m = 0; m < FRAME_BUFFER_SIZE/PAGE_SIZE; m++)
- memset(peasycap->frame_buffer[k][m].pgo, 0, PAGE_SIZE);
-}
-peasycap->field_page = 0;
-peasycap->field_read = 0;
-peasycap->field_fill = 0;
-
-peasycap->frame_read = 0;
-peasycap->frame_fill = 0;
-for (k = 0; k < peasycap->input; k++) {
- (peasycap->frame_fill)++;
- if (peasycap->frame_buffer_many <= peasycap->frame_fill)
- peasycap->frame_fill = 0;
-}
-peasycap->input = input;
-select_input(peasycap->pusb_device, peasycap->input, 9);
+ if (NULL == peasycap->pusb_device) {
+ SAM("ERROR: peasycap->pusb_device is NULL\n");
+ return -ENODEV;
+ }
+ rc = usb_set_interface(peasycap->pusb_device,
+ peasycap->video_interface,
+ peasycap->video_altsetting_off);
+ if (rc) {
+ SAM("ERROR: usb_set_interface() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ rc = stop_100(peasycap->pusb_device);
+ if (rc) {
+ SAM("ERROR: stop_100() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ for (k = 0; k < FIELD_BUFFER_MANY; k++) {
+ for (m = 0; m < FIELD_BUFFER_SIZE/PAGE_SIZE; m++)
+ memset(peasycap->field_buffer[k][m].pgo, 0, PAGE_SIZE);
+ }
+ for (k = 0; k < FRAME_BUFFER_MANY; k++) {
+ for (m = 0; m < FRAME_BUFFER_SIZE/PAGE_SIZE; m++)
+ memset(peasycap->frame_buffer[k][m].pgo, 0, PAGE_SIZE);
+ }
+ peasycap->field_page = 0;
+ peasycap->field_read = 0;
+ peasycap->field_fill = 0;
+
+ peasycap->frame_read = 0;
+ peasycap->frame_fill = 0;
+ for (k = 0; k < peasycap->input; k++) {
+ (peasycap->frame_fill)++;
+ if (peasycap->frame_buffer_many <= peasycap->frame_fill)
+ peasycap->frame_fill = 0;
+ }
+ peasycap->input = input;
+ select_input(peasycap->pusb_device, peasycap->input, 9);
/*---------------------------------------------------------------------------*/
-if (input == peasycap->inputset[input].input) {
- off = peasycap->inputset[input].standard_offset;
- if (off != peasycap->standard_offset) {
- rc = adjust_standard(peasycap,
+ if (input == peasycap->inputset[input].input) {
+ off = peasycap->inputset[input].standard_offset;
+ if (off != peasycap->standard_offset) {
+ rc = adjust_standard(peasycap,
easycap_standard[off].v4l2_standard.id);
- if (rc) {
- SAM("ERROR: adjust_standard() returned %i\n", rc);
- return -EFAULT;
- }
- JOM(8, "%i=peasycap->standard_offset\n",
- peasycap->standard_offset);
- } else {
- JOM(8, "%i=peasycap->standard_offset unchanged\n",
+ if (rc) {
+ SAM("ERROR: adjust_standard() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->standard_offset\n",
+ peasycap->standard_offset);
+ } else {
+ JOM(8, "%i=peasycap->standard_offset unchanged\n",
peasycap->standard_offset);
- }
- off = peasycap->inputset[input].format_offset;
- if (off != peasycap->format_offset) {
- rc = adjust_format(peasycap,
- easycap_format[off].v4l2_format.fmt.pix.width,
- easycap_format[off].v4l2_format.fmt.pix.height,
- easycap_format[off].v4l2_format.fmt.pix.pixelformat,
- easycap_format[off].v4l2_format.fmt.pix.field, false);
- if (0 > rc) {
- SAM("ERROR: adjust_format() returned %i\n", rc);
- return -EFAULT;
}
- JOM(8, "%i=peasycap->format_offset\n", peasycap->format_offset);
- } else {
- JOM(8, "%i=peasycap->format_offset unchanged\n",
- peasycap->format_offset);
- }
- mood = peasycap->inputset[input].brightness;
- if (mood != peasycap->brightness) {
- rc = adjust_brightness(peasycap, mood);
- if (rc) {
- SAM("ERROR: adjust_brightness returned %i\n", rc);
- return -EFAULT;
+ off = peasycap->inputset[input].format_offset;
+ if (off != peasycap->format_offset) {
+ struct v4l2_pix_format *pix =
+ &easycap_format[off].v4l2_format.fmt.pix;
+ rc = adjust_format(peasycap,
+ pix->width, pix->height,
+ pix->pixelformat, pix->field, false);
+ if (0 > rc) {
+ SAM("ERROR: adjust_format() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->format_offset\n",
+ peasycap->format_offset);
+ } else {
+ JOM(8, "%i=peasycap->format_offset unchanged\n",
+ peasycap->format_offset);
}
- JOM(8, "%i=peasycap->brightness\n", peasycap->brightness);
- }
- mood = peasycap->inputset[input].contrast;
- if (mood != peasycap->contrast) {
- rc = adjust_contrast(peasycap, mood);
- if (rc) {
- SAM("ERROR: adjust_contrast returned %i\n", rc);
- return -EFAULT;
+ mood = peasycap->inputset[input].brightness;
+ if (mood != peasycap->brightness) {
+ rc = adjust_brightness(peasycap, mood);
+ if (rc) {
+ SAM("ERROR: adjust_brightness rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->brightness\n",
+ peasycap->brightness);
}
- JOM(8, "%i=peasycap->contrast\n", peasycap->contrast);
- }
- mood = peasycap->inputset[input].saturation;
- if (mood != peasycap->saturation) {
- rc = adjust_saturation(peasycap, mood);
- if (rc) {
- SAM("ERROR: adjust_saturation returned %i\n", rc);
- return -EFAULT;
+ mood = peasycap->inputset[input].contrast;
+ if (mood != peasycap->contrast) {
+ rc = adjust_contrast(peasycap, mood);
+ if (rc) {
+ SAM("ERROR: adjust_contrast rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->contrast\n", peasycap->contrast);
}
- JOM(8, "%i=peasycap->saturation\n", peasycap->saturation);
- }
- mood = peasycap->inputset[input].hue;
- if (mood != peasycap->hue) {
- rc = adjust_hue(peasycap, mood);
- if (rc) {
- SAM("ERROR: adjust_hue returned %i\n", rc);
- return -EFAULT;
+ mood = peasycap->inputset[input].saturation;
+ if (mood != peasycap->saturation) {
+ rc = adjust_saturation(peasycap, mood);
+ if (rc) {
+ SAM("ERROR: adjust_saturation rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->saturation\n",
+ peasycap->saturation);
+ }
+ mood = peasycap->inputset[input].hue;
+ if (mood != peasycap->hue) {
+ rc = adjust_hue(peasycap, mood);
+ if (rc) {
+ SAM("ERROR: adjust_hue rc = %i\n", rc);
+ return -EFAULT;
+ }
+ JOM(8, "%i=peasycap->hue\n", peasycap->hue);
}
- JOM(8, "%i=peasycap->hue\n", peasycap->hue);
+ } else {
+ SAM("MISTAKE: easycap.inputset[%i] unpopulated\n", input);
+ return -ENOENT;
}
-} else {
- SAM("MISTAKE: easycap.inputset[%i] unpopulated\n", input);
- return -ENOENT;
-}
/*---------------------------------------------------------------------------*/
-if (NULL == peasycap->pusb_device) {
- SAM("ERROR: peasycap->pusb_device is NULL\n");
- return -ENODEV;
-}
-rc = usb_set_interface(peasycap->pusb_device,
- peasycap->video_interface,
- peasycap->video_altsetting_on);
-if (rc) {
- SAM("ERROR: usb_set_interface() returned %i\n", rc);
- return -EFAULT;
-}
-rc = start_100(peasycap->pusb_device);
-if (rc) {
- SAM("ERROR: start_100() returned %i\n", rc);
- return -EFAULT;
-}
-if (true == resubmit)
- submit_video_urbs(peasycap);
+ if (NULL == peasycap->pusb_device) {
+ SAM("ERROR: peasycap->pusb_device is NULL\n");
+ return -ENODEV;
+ }
+ rc = usb_set_interface(peasycap->pusb_device,
+ peasycap->video_interface,
+ peasycap->video_altsetting_on);
+ if (rc) {
+ SAM("ERROR: usb_set_interface() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ rc = start_100(peasycap->pusb_device);
+ if (rc) {
+ SAM("ERROR: start_100() rc = %i\n", rc);
+ return -EFAULT;
+ }
+ if (true == resubmit)
+ submit_video_urbs(peasycap);
-peasycap->video_isoc_sequence = VIDEO_ISOC_BUFFER_MANY - 1;
-peasycap->video_idle = video_idlenow;
-peasycap->audio_idle = audio_idlenow;
-peasycap->video_junk = 0;
+ peasycap->video_isoc_sequence = VIDEO_ISOC_BUFFER_MANY - 1;
+ peasycap->video_idle = video_idlenow;
+ peasycap->audio_idle = audio_idlenow;
+ peasycap->video_junk = 0;
-return 0;
+ return 0;
}
/*****************************************************************************/
int submit_video_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 (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- return -EFAULT;
-}
+ struct data_urb *pdata_urb;
+ struct urb *purb;
+ struct list_head *plist_head;
+ int j, isbad, nospc, m, rc;
+ int isbuf;
-if (NULL == peasycap->purb_video_head) {
- SAY("ERROR: peasycap->urb_video_head uninitialized\n");
- return -EFAULT;
-}
-if (NULL == peasycap->pusb_device) {
- SAY("ERROR: peasycap->pusb_device is NULL\n");
- return -ENODEV;
-}
-if (!peasycap->video_isoc_streaming) {
- JOM(4, "submission of all video urbs\n");
- isbad = 0; nospc = 0; m = 0;
- list_for_each(plist_head, (peasycap->purb_video_head)) {
- pdata_urb = list_entry(plist_head, struct data_urb, list_head);
- if (NULL != pdata_urb) {
- purb = pdata_urb->purb;
- if (NULL != purb) {
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ return -EFAULT;
+ }
+
+ if (NULL == peasycap->purb_video_head) {
+ SAY("ERROR: peasycap->urb_video_head uninitialized\n");
+ return -EFAULT;
+ }
+ if (NULL == peasycap->pusb_device) {
+ SAY("ERROR: peasycap->pusb_device is NULL\n");
+ return -ENODEV;
+ }
+ if (!peasycap->video_isoc_streaming) {
+ JOM(4, "submission of all video urbs\n");
+ isbad = 0; nospc = 0; m = 0;
+ list_for_each(plist_head, (peasycap->purb_video_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;
@@ -635,22 +623,18 @@ if (!peasycap->video_isoc_streaming) {
purb->number_of_packets =
peasycap->video_isoc_framesperdesc;
- for (j = 0; j < peasycap->
- video_isoc_framesperdesc; j++) {
- purb->iso_frame_desc[j].
- offset = j *
- peasycap->
- video_isoc_maxframesize;
- purb->iso_frame_desc[j].
- length = peasycap->
- video_isoc_maxframesize;
- }
+ for (j = 0; j < peasycap->video_isoc_framesperdesc; j++) {
+ purb->iso_frame_desc[j]. offset =
+ j * peasycap->video_isoc_maxframesize;
+ purb->iso_frame_desc[j]. length =
+ peasycap->video_isoc_maxframesize;
+ }
rc = usb_submit_urb(purb, GFP_KERNEL);
if (rc) {
isbad++;
SAM("ERROR: usb_submit_urb() failed "
- "for urb with rc:-%s\n",
+ "for urb with rc:-%s\n",
strerror(rc));
if (rc == -ENOSPC)
nospc++;
@@ -660,74 +644,68 @@ if (!peasycap->video_isoc_streaming) {
} else {
isbad++;
}
- } else {
- isbad++;
}
- }
- if (nospc) {
- SAM("-ENOSPC=usb_submit_urb() for %i urbs\n", nospc);
- SAM("..... possibly inadequate USB bandwidth\n");
- peasycap->video_eof = 1;
- }
+ if (nospc) {
+ SAM("-ENOSPC=usb_submit_urb() for %i urbs\n", nospc);
+ SAM("..... possibly inadequate USB bandwidth\n");
+ peasycap->video_eof = 1;
+ }
- if (isbad) {
- JOM(4, "attempting cleanup instead of submitting\n");
- list_for_each(plist_head, (peasycap->purb_video_head)) {
- pdata_urb = list_entry(plist_head, struct data_urb,
- list_head);
- if (NULL != pdata_urb) {
- purb = pdata_urb->purb;
- if (NULL != purb)
- usb_kill_urb(purb);
+ if (isbad) {
+ JOM(4, "attempting cleanup instead of submitting\n");
+ list_for_each(plist_head, (peasycap->purb_video_head)) {
+ pdata_urb = list_entry(plist_head,
+ struct data_urb, list_head);
+ if (NULL != pdata_urb) {
+ purb = pdata_urb->purb;
+ if (NULL != purb)
+ usb_kill_urb(purb);
+ }
}
+ peasycap->video_isoc_streaming = 0;
+ } else {
+ peasycap->video_isoc_streaming = 1;
+ JOM(4, "submitted %i video urbs\n", m);
}
- peasycap->video_isoc_streaming = 0;
} else {
- peasycap->video_isoc_streaming = 1;
- JOM(4, "submitted %i video urbs\n", m);
+ JOM(4, "already streaming video urbs\n");
}
-} else {
- JOM(4, "already streaming video urbs\n");
-}
-return 0;
+ return 0;
}
/*****************************************************************************/
-int
-kill_video_urbs(struct easycap *peasycap)
+int kill_video_urbs(struct easycap *peasycap)
{
-int m;
-struct list_head *plist_head;
-struct data_urb *pdata_urb;
+ int m;
+ struct list_head *plist_head;
+ struct data_urb *pdata_urb;
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- return -EFAULT;
-}
-if (peasycap->video_isoc_streaming) {
- if (NULL != peasycap->purb_video_head) {
- peasycap->video_isoc_streaming = 0;
- JOM(4, "killing video urbs\n");
- m = 0;
- list_for_each(plist_head, (peasycap->purb_video_head)) {
- pdata_urb = list_entry(plist_head, struct data_urb,
- list_head);
- if (NULL != pdata_urb) {
- if (NULL != pdata_urb->purb) {
- usb_kill_urb(pdata_urb->purb);
- m++;
- }
- }
- }
- JOM(4, "%i video urbs killed\n", m);
- } else {
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ return -EFAULT;
+ }
+ if (!peasycap->video_isoc_streaming) {
+ JOM(8, "%i=video_isoc_streaming, no video urbs killed\n",
+ peasycap->video_isoc_streaming);
+ return 0;
+ }
+ if (!peasycap->purb_video_head) {
SAM("ERROR: peasycap->purb_video_head is NULL\n");
return -EFAULT;
}
-} else {
- JOM(8, "%i=video_isoc_streaming, no video urbs killed\n",
- peasycap->video_isoc_streaming);
-}
-return 0;
+
+ peasycap->video_isoc_streaming = 0;
+ JOM(4, "killing video urbs\n");
+ m = 0;
+ list_for_each(plist_head, (peasycap->purb_video_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 video urbs killed\n", m);
+
+ return 0;
}
/****************************************************************************/
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
@@ -735,32 +713,27 @@ return 0;
static int easycap_release(struct inode *inode, struct file *file)
{
#ifndef EASYCAP_IS_VIDEODEV_CLIENT
-struct easycap *peasycap;
+ struct easycap *peasycap;
-JOT(4, "\n");
-peasycap = file->private_data;
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL.\n");
- SAY("ending unsuccessfully\n");
- return -EFAULT;
-}
-if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
- SAY("ERROR: bad peasycap: %p\n", peasycap);
- return -EFAULT;
-}
-if (0 != kill_video_urbs(peasycap)) {
- SAM("ERROR: kill_video_urbs() failed\n");
- return -EFAULT;
-}
-JOM(4, "ending successfully\n");
-/*vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv*/
-#else
-#
-/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
+ peasycap = file->private_data;
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL.\n");
+ SAY("ending unsuccessfully\n");
+ return -EFAULT;
+ }
+ if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
+ SAY("ERROR: bad peasycap: %p\n", peasycap);
+ return -EFAULT;
+ }
+ if (0 != kill_video_urbs(peasycap)) {
+ SAM("ERROR: kill_video_urbs() failed\n");
+ return -EFAULT;
+ }
+ JOM(4, "ending successfully\n");
#endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
-return 0;
+ return 0;
}
#ifdef EASYCAP_IS_VIDEODEV_CLIENT
static int easycap_open_noinode(struct file *file)
@@ -774,26 +747,24 @@ static int easycap_release_noinode(struct file *file)
}
static int videodev_release(struct video_device *pvideo_device)
{
-struct easycap *peasycap;
-
-JOT(4, "\n");
+ struct easycap *peasycap;
-peasycap = video_get_drvdata(pvideo_device);
-if (NULL == peasycap) {
- SAY("ERROR: peasycap is NULL\n");
- SAY("ending unsuccessfully\n");
- return -EFAULT;
-}
-if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
- SAY("ERROR: bad peasycap: %p\n", peasycap);
- return -EFAULT;
-}
-if (0 != kill_video_urbs(peasycap)) {
- SAM("ERROR: kill_video_urbs() failed\n");
- return -EFAULT;
-}
-JOM(4, "ending successfully\n");
-return 0;
+ peasycap = video_get_drvdata(pvideo_device);
+ if (NULL == peasycap) {
+ SAY("ERROR: peasycap is NULL\n");
+ SAY("ending unsuccessfully\n");
+ return -EFAULT;
+ }
+ if (memcmp(&peasycap->telltale[0], TELLTALE, strlen(TELLTALE))) {
+ SAY("ERROR: bad peasycap: %p\n", peasycap);
+ return -EFAULT;
+ }
+ if (0 != kill_video_urbs(peasycap)) {
+ SAM("ERROR: kill_video_urbs() failed\n");
+ return -EFAULT;
+ }
+ JOM(4, "ending successfully\n");
+ return 0;
}
#endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
@@ -809,325 +780,329 @@ return 0;
/*---------------------------------------------------------------------------*/
static void easycap_delete(struct kref *pkref)
{
-int k, m, gone, kd;
-int allocation_video_urb, allocation_video_page, allocation_video_struct;
-int allocation_audio_urb, allocation_audio_page, allocation_audio_struct;
-int registered_video, registered_audio;
-struct easycap *peasycap;
-struct data_urb *pdata_urb;
-struct list_head *plist_head, *plist_next;
-