aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/meye
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/pci/meye')
-rw-r--r--drivers/media/pci/meye/meye.c21
-rw-r--r--drivers/media/pci/meye/meye.h2
2 files changed, 8 insertions, 15 deletions
diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c
index 9d9f90cb7740..ba887e8e1b17 100644
--- a/drivers/media/pci/meye/meye.c
+++ b/drivers/media/pci/meye/meye.c
@@ -1546,7 +1546,7 @@ static struct video_device meye_template = {
1546 .name = "meye", 1546 .name = "meye",
1547 .fops = &meye_fops, 1547 .fops = &meye_fops,
1548 .ioctl_ops = &meye_ioctl_ops, 1548 .ioctl_ops = &meye_ioctl_ops,
1549 .release = video_device_release, 1549 .release = video_device_release_empty,
1550}; 1550};
1551 1551
1552static const struct v4l2_ctrl_ops meye_ctrl_ops = { 1552static const struct v4l2_ctrl_ops meye_ctrl_ops = {
@@ -1623,7 +1623,7 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
1623 1623
1624 if (meye.mchip_dev != NULL) { 1624 if (meye.mchip_dev != NULL) {
1625 printk(KERN_ERR "meye: only one device allowed!\n"); 1625 printk(KERN_ERR "meye: only one device allowed!\n");
1626 goto outnotdev; 1626 return ret;
1627 } 1627 }
1628 1628
1629 ret = v4l2_device_register(&pcidev->dev, v4l2_dev); 1629 ret = v4l2_device_register(&pcidev->dev, v4l2_dev);
@@ -1633,11 +1633,6 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
1633 } 1633 }
1634 ret = -ENOMEM; 1634 ret = -ENOMEM;
1635 meye.mchip_dev = pcidev; 1635 meye.mchip_dev = pcidev;
1636 meye.vdev = video_device_alloc();
1637 if (!meye.vdev) {
1638 v4l2_err(v4l2_dev, "video_device_alloc() failed!\n");
1639 goto outnotdev;
1640 }
1641 1636
1642 meye.grab_temp = vmalloc(MCHIP_NB_PAGES_MJPEG * PAGE_SIZE); 1637 meye.grab_temp = vmalloc(MCHIP_NB_PAGES_MJPEG * PAGE_SIZE);
1643 if (!meye.grab_temp) { 1638 if (!meye.grab_temp) {
@@ -1658,8 +1653,8 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
1658 goto outkfifoalloc2; 1653 goto outkfifoalloc2;
1659 } 1654 }
1660 1655
1661 memcpy(meye.vdev, &meye_template, sizeof(meye_template)); 1656 meye.vdev = meye_template;
1662 meye.vdev->v4l2_dev = &meye.v4l2_dev; 1657 meye.vdev.v4l2_dev = &meye.v4l2_dev;
1663 1658
1664 ret = -EIO; 1659 ret = -EIO;
1665 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) { 1660 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) {
@@ -1743,9 +1738,9 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
1743 } 1738 }
1744 1739
1745 v4l2_ctrl_handler_setup(&meye.hdl); 1740 v4l2_ctrl_handler_setup(&meye.hdl);
1746 meye.vdev->ctrl_handler = &meye.hdl; 1741 meye.vdev.ctrl_handler = &meye.hdl;
1747 1742
1748 if (video_register_device(meye.vdev, VFL_TYPE_GRABBER, 1743 if (video_register_device(&meye.vdev, VFL_TYPE_GRABBER,
1749 video_nr) < 0) { 1744 video_nr) < 0) {
1750 v4l2_err(v4l2_dev, "video_register_device failed\n"); 1745 v4l2_err(v4l2_dev, "video_register_device failed\n");
1751 goto outvideoreg; 1746 goto outvideoreg;
@@ -1777,14 +1772,12 @@ outkfifoalloc2:
1777outkfifoalloc1: 1772outkfifoalloc1:
1778 vfree(meye.grab_temp); 1773 vfree(meye.grab_temp);
1779outvmalloc: 1774outvmalloc:
1780 video_device_release(meye.vdev);
1781outnotdev:
1782 return ret; 1775 return ret;
1783} 1776}
1784 1777
1785static void meye_remove(struct pci_dev *pcidev) 1778static void meye_remove(struct pci_dev *pcidev)
1786{ 1779{
1787 video_unregister_device(meye.vdev); 1780 video_unregister_device(&meye.vdev);
1788 1781
1789 mchip_hic_stop(); 1782 mchip_hic_stop();
1790 1783
diff --git a/drivers/media/pci/meye/meye.h b/drivers/media/pci/meye/meye.h
index 6fed9274cfa5..751be5e533c7 100644
--- a/drivers/media/pci/meye/meye.h
+++ b/drivers/media/pci/meye/meye.h
@@ -311,7 +311,7 @@ struct meye {
311 struct kfifo doneq; /* queue for grabbed buffers */ 311 struct kfifo doneq; /* queue for grabbed buffers */
312 spinlock_t doneq_lock; /* lock protecting the queue */ 312 spinlock_t doneq_lock; /* lock protecting the queue */
313 wait_queue_head_t proc_list; /* wait queue */ 313 wait_queue_head_t proc_list; /* wait queue */
314 struct video_device *vdev; /* video device parameters */ 314 struct video_device vdev; /* video device parameters */
315 u16 brightness; 315 u16 brightness;
316 u16 hue; 316 u16 hue;
317 u16 contrast; 317 u16 contrast;