diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2009-02-07 18:42:33 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:42:42 -0400 |
commit | 230b65f9945b468c23188572144b4f066af8f98c (patch) | |
tree | a5d7da48908defc6e602a80c932fd06b9f8b7abd /drivers/media/common/saa7146_fops.c | |
parent | eae4d69b6a337d29060dcad3a4e19e3e8ace3e70 (diff) |
V4L/DVB (10502): saa7146: move v4l2 device registration to saa7146_vv.
Doing the v4l2_device registration in the saa7146 core will make it
dependent on v4l2, even for DVB-only boards. This registration and
unregistration belongs in saa7146_vv instead.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/common/saa7146_fops.c')
-rw-r--r-- | drivers/media/common/saa7146_fops.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c index fec799d2600f..620f655fa9c5 100644 --- a/drivers/media/common/saa7146_fops.c +++ b/drivers/media/common/saa7146_fops.c | |||
@@ -446,11 +446,17 @@ static void vv_callback(struct saa7146_dev *dev, unsigned long status) | |||
446 | 446 | ||
447 | int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv) | 447 | int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv) |
448 | { | 448 | { |
449 | struct saa7146_vv *vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL); | 449 | struct saa7146_vv *vv; |
450 | int err; | ||
451 | |||
452 | err = v4l2_device_register(&dev->pci->dev, &dev->v4l2_dev); | ||
453 | if (err) | ||
454 | return err; | ||
450 | 455 | ||
456 | vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL); | ||
451 | if (vv == NULL) { | 457 | if (vv == NULL) { |
452 | ERR(("out of memory. aborting.\n")); | 458 | ERR(("out of memory. aborting.\n")); |
453 | return -1; | 459 | return -ENOMEM; |
454 | } | 460 | } |
455 | ext_vv->ops = saa7146_video_ioctl_ops; | 461 | ext_vv->ops = saa7146_video_ioctl_ops; |
456 | ext_vv->core_ops = &saa7146_video_ioctl_ops; | 462 | ext_vv->core_ops = &saa7146_video_ioctl_ops; |
@@ -496,6 +502,7 @@ int saa7146_vv_release(struct saa7146_dev* dev) | |||
496 | 502 | ||
497 | DEB_EE(("dev:%p\n",dev)); | 503 | DEB_EE(("dev:%p\n",dev)); |
498 | 504 | ||
505 | v4l2_device_unregister(&dev->v4l2_dev); | ||
499 | pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM, vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle); | 506 | pci_free_consistent(dev->pci, SAA7146_CLIPPING_MEM, vv->d_clipping.cpu_addr, vv->d_clipping.dma_handle); |
500 | kfree(vv); | 507 | kfree(vv); |
501 | dev->vv_data = NULL; | 508 | dev->vv_data = NULL; |