From 525562f4cd1ad9abbd39b0b41f41713b397b4ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ezequiel=20Garc=C3=ADa?= Date: Fri, 24 Feb 2012 11:24:18 -0300 Subject: [PATCH] --- yaml --- r: 306431 b: refs/heads/master c: 217d55f2ba0511a18f7427c4a0c10ea21c2eb7d0 h: refs/heads/master i: 306429: f99839a8f9875577567269fc3b8e6b818ac98799 306427: 2ea6bd1d0629a2be33957bce8bcab72aecbc836e 306423: 1bb03bd23aedbb78f2dc5ce6539dc7243ba991e3 306415: c33f3f8b501390ccc1619f05fab66e680032c447 306399: 1f415d4a094ee39e325285b20cb86434193aa115 306367: 6143910ed862471d9477ffbe8ebd3eee58a40415 306303: dc42619954f1b4c4a52cfee97fb15a8ac980b99c 306175: d01b6ffa1670d46c708de2bb720a81176b2fda59 v: v3 --- [refs] | 2 +- .../staging/media/easycap/easycap_main.c | 58 +++++++++++-------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/[refs] b/[refs] index c4780c7c6c4c..86ee91ddadaa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 751869e6ef489e33c66a254fa004c92e76ef1a43 +refs/heads/master: 217d55f2ba0511a18f7427c4a0c10ea21c2eb7d0 diff --git a/trunk/drivers/staging/media/easycap/easycap_main.c b/trunk/drivers/staging/media/easycap/easycap_main.c index 480164d8698c..68af1a2297be 100644 --- a/trunk/drivers/staging/media/easycap/easycap_main.c +++ b/trunk/drivers/staging/media/easycap/easycap_main.c @@ -3291,6 +3291,37 @@ static const struct v4l2_file_operations v4l2_fops = { .mmap = easycap_mmap, }; +static int easycap_register_video(struct easycap *peasycap) +{ + /* + * FIXME: This is believed to be harmless, + * but may well be unnecessary or wrong. + */ + peasycap->video_device.v4l2_dev = NULL; + + strcpy(&peasycap->video_device.name[0], "easycapdc60"); + peasycap->video_device.fops = &v4l2_fops; + peasycap->video_device.minor = -1; + peasycap->video_device.release = (void *)(&videodev_release); + + video_set_drvdata(&(peasycap->video_device), (void *)peasycap); + + if (0 != (video_register_device(&(peasycap->video_device), + VFL_TYPE_GRABBER, -1))) { + err("Not able to register with videodev"); + videodev_release(&(peasycap->video_device)); + return -ENODEV; + } + + peasycap->registered_video++; + + SAM("registered with videodev: %i=minor\n", + peasycap->video_device.minor); + peasycap->minor = peasycap->video_device.minor; + + return 0; +} + /* * When the device is plugged, this function is called three times, * one for each interface. @@ -3667,32 +3698,9 @@ static int easycap_usb_probe(struct usb_interface *intf, JOM(4, "registered device instance: %s\n", peasycap->v4l2_device.name); - /* - * FIXME: This is believed to be harmless, - * but may well be unnecessary or wrong. - */ - peasycap->video_device.v4l2_dev = NULL; - - - strcpy(&peasycap->video_device.name[0], "easycapdc60"); - peasycap->video_device.fops = &v4l2_fops; - peasycap->video_device.minor = -1; - peasycap->video_device.release = (void *)(&videodev_release); - - video_set_drvdata(&(peasycap->video_device), (void *)peasycap); - - if (0 != (video_register_device(&(peasycap->video_device), - VFL_TYPE_GRABBER, -1))) { - err("Not able to register with videodev"); - videodev_release(&(peasycap->video_device)); + rc = easycap_register_video(peasycap); + if (rc < 0) return -ENODEV; - } - - peasycap->registered_video++; - SAM("registered with videodev: %i=minor\n", - peasycap->video_device.minor); - peasycap->minor = peasycap->video_device.minor; - break; } /* 1: Audio control */