diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-02-12 03:51:43 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-05-18 00:43:59 -0300 |
commit | 762e17eb520cf31daa46061818f13b0665e38d7f (patch) | |
tree | 09ae73c916418051517b78f5749fd72fe7f9c0c3 /drivers/staging/tm6000/tm6000-cards.c | |
parent | f8960ee7a44d58d79aae063e46f3316e1d5748e0 (diff) | |
download | op-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.c | 11 |
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) { |