diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2013-03-19 09:34:58 -0300 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2013-10-26 21:06:01 +0100 |
commit | 559a2e36f047ac7e1ab27c489322cfd1409dd842 (patch) | |
tree | c2aa0fc4d1935130f42494eb998c29c253a9df57 /drivers/media | |
parent | 9417815157557d273325641f7ad2b6dd147276f4 (diff) | |
download | kernel_samsung_smdk4412-559a2e36f047ac7e1ab27c489322cfd1409dd842.zip kernel_samsung_smdk4412-559a2e36f047ac7e1ab27c489322cfd1409dd842.tar.gz kernel_samsung_smdk4412-559a2e36f047ac7e1ab27c489322cfd1409dd842.tar.bz2 |
hdpvr: register the video node at the end of probe
commit 280847b532433ffe7a22795f926327805a127162 upstream.
Video nodes can be used at once after registration, so make sure the full
initialization is done before registering them.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
[bwh: Backported to 3.2: adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/hdpvr/hdpvr-core.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c index 441dacf..6eba006 100644 --- a/drivers/media/video/hdpvr/hdpvr-core.c +++ b/drivers/media/video/hdpvr/hdpvr-core.c @@ -373,12 +373,6 @@ static int hdpvr_probe(struct usb_interface *interface, } mutex_unlock(&dev->io_mutex); - if (hdpvr_register_videodev(dev, &interface->dev, - video_nr[atomic_inc_return(&dev_nr)])) { - v4l2_err(&dev->v4l2_dev, "registering videodev failed\n"); - goto error; - } - #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) retval = hdpvr_register_i2c_adapter(dev); if (retval < 0) { @@ -399,6 +393,13 @@ static int hdpvr_probe(struct usb_interface *interface, } #endif + retval = hdpvr_register_videodev(dev, &interface->dev, + video_nr[atomic_inc_return(&dev_nr)]); + if (retval < 0) { + v4l2_err(&dev->v4l2_dev, "registering videodev failed\n"); + goto error; + } + /* let the user know what node this device is now attached to */ v4l2_info(&dev->v4l2_dev, "device now attached to %s\n", video_device_node_name(dev->video_dev)); |