summaryrefslogtreecommitdiffstats
path: root/drivers/staging/tm6000/tm6000-cards.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2010-02-12 03:51:43 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-18 00:43:59 -0300
commit762e17eb520cf31daa46061818f13b0665e38d7f (patch)
tree09ae73c916418051517b78f5749fd72fe7f9c0c3 /drivers/staging/tm6000/tm6000-cards.c
parentf8960ee7a44d58d79aae063e46f3316e1d5748e0 (diff)
downloadop-kernel-dev-762e17eb520cf31daa46061818f13b0665e38d7f.zip
op-kernel-dev-762e17eb520cf31daa46061818f13b0665e38d7f.tar.gz
V4L/DVB: tm6000: only register after initialized
Udev calls an utility when it senses a v4l device. So, register needs to be delayed, otherwise it may cause block conditions. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/tm6000/tm6000-cards.c')
-rw-r--r--drivers/staging/tm6000/tm6000-cards.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index e09d757..43620a3 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -453,11 +453,6 @@ static int tm6000_init_dev(struct tm6000_core *dev)
if (rc<0)
goto err;
- /* register and initialize V4L2 */
- rc=tm6000_v4l2_register(dev);
- if (rc<0)
- goto err;
-
/* Default values for STD and resolutions */
dev->width = 720;
dev->height = 480;
@@ -480,12 +475,18 @@ static int tm6000_init_dev(struct tm6000_core *dev)
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
"tvaudio", "tvaudio", I2C_ADDR_TDA9874, NULL);
+ /* register and initialize V4L2 */
+ rc=tm6000_v4l2_register(dev);
+ if (rc<0)
+ goto err;
+
if(dev->caps.has_dvb) {
dev->dvb = kzalloc(sizeof(*(dev->dvb)), GFP_KERNEL);
if(!dev->dvb) {
rc = -ENOMEM;
goto err2;
}
+
#ifdef CONFIG_VIDEO_TM6000_DVB
rc = tm6000_dvb_register(dev);
if(rc < 0) {
OpenPOWER on IntegriCloud