diff options
author | Markus Rechberger <devnull@localhost> | 2005-10-17 22:41:17 +0000 |
---|---|---|
committer | Markus Rechberger <devnull@localhost> | 2005-10-17 22:41:17 +0000 |
commit | e98f849158d586eeaf76ce06bda458694ff76668 (patch) | |
tree | 1a2dcbc4f9e3d0ba707a464fda7c094a688c6eb9 /linux/drivers | |
parent | 539b108b874c6c6d1ae4d4a577a9e0233f342894 (diff) | |
download | mediapointer-dvb-s2-e98f849158d586eeaf76ce06bda458694ff76668.tar.gz mediapointer-dvb-s2-e98f849158d586eeaf76ce06bda458694ff76668.tar.bz2 |
* ../linux/drivers/usb/media/em2820-video.c:
- replaced obsolete video_get_drvdata and video_set_drvdata
Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/video/em28xx/em28xx-video.c | 45 | ||||
-rw-r--r-- | linux/drivers/media/video/em28xx/em28xx.h | 1 | ||||
-rw-r--r-- | linux/drivers/usb/media/em2820-video.c | 45 | ||||
-rw-r--r-- | linux/drivers/usb/media/em2820.h | 1 |
4 files changed, 70 insertions, 22 deletions
diff --git a/linux/drivers/media/video/em28xx/em28xx-video.c b/linux/drivers/media/video/em28xx/em28xx-video.c index 4323e6b26..78d3dbfca 100644 --- a/linux/drivers/media/video/em28xx/em28xx-video.c +++ b/linux/drivers/media/video/em28xx/em28xx-video.c @@ -50,6 +50,8 @@ MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL"); +static LIST_HEAD(em2820_devlist); + static unsigned int card[] = {[0 ... (EM2820_MAXBOARDS - 1)] = UNSET }; #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) @@ -317,10 +319,20 @@ static void em2820_empty_framequeues(struct em2820 *dev) */ static int em2820_v4l2_open(struct inode *inode, struct file *filp) { - struct video_device *vdev = video_devdata(filp); int minor = iminor(inode); - struct em2820 *dev = (struct em2820 *)video_get_drvdata(vdev); int errCode = 0; + struct em2820 *h,*dev = NULL; + struct list_head *list; + + list_for_each(list,&em2820_devlist) { + h = list_entry(list, struct em2820, devlist); + if (h->vdev->minor == minor) { + dev = h; + } + } + + filp->private_data=dev; + em2820_videodbg("users=%d", dev->users); @@ -393,7 +405,7 @@ static void em2820_release_resources(struct em2820 *dev) em2820_info("V4L2 device /dev/video%d deregistered\n", dev->vdev->minor); - video_set_drvdata(dev->vdev, NULL); + list_del(&dev->devlist); video_unregister_device(dev->vdev); /* video_unregister_device(dev->vbi_dev); */ em2820_i2c_unregister(dev); @@ -407,9 +419,18 @@ static void em2820_release_resources(struct em2820 *dev) */ static int em2820_v4l2_close(struct inode *inode, struct file *file) { - struct video_device *vdev = video_devdata(file); - struct em2820 *dev = (struct em2820 *)video_get_drvdata(vdev); int errCode; + int minor = iminor(inode); + struct em2820 *h,*dev = NULL; + struct list_head *list; + + list_for_each(list,&em2820_devlist) { + h = list_entry(list, struct em2820, devlist); + if (h->vdev->minor == minor) { + dev = h; + } + } + em2820_videodbg("users=%d", dev->users); @@ -450,10 +471,10 @@ static ssize_t em2820_v4l2_read(struct file *filp, char __user * buf, size_t count, loff_t * f_pos) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); struct em2820_frame_t *f, *i; unsigned long lock_flags; int ret = 0; + struct em2820 *dev = filp->private_data; #if 0 if (dev->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { @@ -553,8 +574,8 @@ em2820_v4l2_read(struct file *filp, char __user * buf, size_t count, */ static unsigned int em2820_v4l2_poll(struct file *filp, poll_table * wait) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); unsigned int mask = 0; + struct em2820 *dev = filp->private_data; if (down_interruptible(&dev->fileop_lock)) return POLLERR; @@ -621,10 +642,12 @@ static struct vm_operations_struct em2820_vm_ops = { */ static int em2820_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); unsigned long size = vma->vm_end - vma->vm_start, start = vma->vm_start, pos, page; u32 i; + + struct em2820 *dev = filp->private_data; + if (down_interruptible(&dev->fileop_lock)) return -ERESTARTSYS; @@ -1646,8 +1669,8 @@ static int em2820_video_do_ioctl(struct inode *inode, struct file *filp, static int em2820_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); int ret = 0; + struct em2820 *dev = filp->private_data; if (down_interruptible(&dev->fileop_lock)) return -ERESTARTSYS; @@ -1839,7 +1862,7 @@ static int em2820_init_dev(struct em2820 **devhandle, struct usb_device *udev, dev->vdev->release = video_device_release; snprintf(dev->vdev->name, sizeof(dev->vdev->name), "%s", "em2820 video"); - video_set_drvdata(dev->vdev, dev); + list_add_tail(&dev->devlist,&em2820_devlist); #if 0 video_set_drvdata(dev->vbi_dev, dev); #endif @@ -1850,7 +1873,7 @@ static int em2820_init_dev(struct em2820 **devhandle, struct usb_device *udev, em2820_errdev("unable to register video device (error=%i).\n", retval); up(&dev->lock); - video_set_drvdata(dev->vdev, NULL); + list_del(&dev->devlist); video_device_release(dev->vdev); kfree(dev); return -ENODEV; diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h index d666d37ec..09c0b480e 100644 --- a/linux/drivers/media/video/em28xx/em28xx.h +++ b/linux/drivers/media/video/em28xx/em28xx.h @@ -212,6 +212,7 @@ struct em2820 { int model; /* index in the device_data struct */ unsigned int is_em2800; int video_inputs; /* number of video inputs */ + struct list_head devlist; unsigned int has_tuner:1; unsigned int has_msp34xx:1; unsigned int has_tda9887:1; diff --git a/linux/drivers/usb/media/em2820-video.c b/linux/drivers/usb/media/em2820-video.c index 4323e6b26..78d3dbfca 100644 --- a/linux/drivers/usb/media/em2820-video.c +++ b/linux/drivers/usb/media/em2820-video.c @@ -50,6 +50,8 @@ MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL"); +static LIST_HEAD(em2820_devlist); + static unsigned int card[] = {[0 ... (EM2820_MAXBOARDS - 1)] = UNSET }; #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) @@ -317,10 +319,20 @@ static void em2820_empty_framequeues(struct em2820 *dev) */ static int em2820_v4l2_open(struct inode *inode, struct file *filp) { - struct video_device *vdev = video_devdata(filp); int minor = iminor(inode); - struct em2820 *dev = (struct em2820 *)video_get_drvdata(vdev); int errCode = 0; + struct em2820 *h,*dev = NULL; + struct list_head *list; + + list_for_each(list,&em2820_devlist) { + h = list_entry(list, struct em2820, devlist); + if (h->vdev->minor == minor) { + dev = h; + } + } + + filp->private_data=dev; + em2820_videodbg("users=%d", dev->users); @@ -393,7 +405,7 @@ static void em2820_release_resources(struct em2820 *dev) em2820_info("V4L2 device /dev/video%d deregistered\n", dev->vdev->minor); - video_set_drvdata(dev->vdev, NULL); + list_del(&dev->devlist); video_unregister_device(dev->vdev); /* video_unregister_device(dev->vbi_dev); */ em2820_i2c_unregister(dev); @@ -407,9 +419,18 @@ static void em2820_release_resources(struct em2820 *dev) */ static int em2820_v4l2_close(struct inode *inode, struct file *file) { - struct video_device *vdev = video_devdata(file); - struct em2820 *dev = (struct em2820 *)video_get_drvdata(vdev); int errCode; + int minor = iminor(inode); + struct em2820 *h,*dev = NULL; + struct list_head *list; + + list_for_each(list,&em2820_devlist) { + h = list_entry(list, struct em2820, devlist); + if (h->vdev->minor == minor) { + dev = h; + } + } + em2820_videodbg("users=%d", dev->users); @@ -450,10 +471,10 @@ static ssize_t em2820_v4l2_read(struct file *filp, char __user * buf, size_t count, loff_t * f_pos) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); struct em2820_frame_t *f, *i; unsigned long lock_flags; int ret = 0; + struct em2820 *dev = filp->private_data; #if 0 if (dev->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { @@ -553,8 +574,8 @@ em2820_v4l2_read(struct file *filp, char __user * buf, size_t count, */ static unsigned int em2820_v4l2_poll(struct file *filp, poll_table * wait) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); unsigned int mask = 0; + struct em2820 *dev = filp->private_data; if (down_interruptible(&dev->fileop_lock)) return POLLERR; @@ -621,10 +642,12 @@ static struct vm_operations_struct em2820_vm_ops = { */ static int em2820_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); unsigned long size = vma->vm_end - vma->vm_start, start = vma->vm_start, pos, page; u32 i; + + struct em2820 *dev = filp->private_data; + if (down_interruptible(&dev->fileop_lock)) return -ERESTARTSYS; @@ -1646,8 +1669,8 @@ static int em2820_video_do_ioctl(struct inode *inode, struct file *filp, static int em2820_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { - struct em2820 *dev = video_get_drvdata(video_devdata(filp)); int ret = 0; + struct em2820 *dev = filp->private_data; if (down_interruptible(&dev->fileop_lock)) return -ERESTARTSYS; @@ -1839,7 +1862,7 @@ static int em2820_init_dev(struct em2820 **devhandle, struct usb_device *udev, dev->vdev->release = video_device_release; snprintf(dev->vdev->name, sizeof(dev->vdev->name), "%s", "em2820 video"); - video_set_drvdata(dev->vdev, dev); + list_add_tail(&dev->devlist,&em2820_devlist); #if 0 video_set_drvdata(dev->vbi_dev, dev); #endif @@ -1850,7 +1873,7 @@ static int em2820_init_dev(struct em2820 **devhandle, struct usb_device *udev, em2820_errdev("unable to register video device (error=%i).\n", retval); up(&dev->lock); - video_set_drvdata(dev->vdev, NULL); + list_del(&dev->devlist); video_device_release(dev->vdev); kfree(dev); return -ENODEV; diff --git a/linux/drivers/usb/media/em2820.h b/linux/drivers/usb/media/em2820.h index d666d37ec..09c0b480e 100644 --- a/linux/drivers/usb/media/em2820.h +++ b/linux/drivers/usb/media/em2820.h @@ -212,6 +212,7 @@ struct em2820 { int model; /* index in the device_data struct */ unsigned int is_em2800; int video_inputs; /* number of video inputs */ + struct list_head devlist; unsigned int has_tuner:1; unsigned int has_msp34xx:1; unsigned int has_tda9887:1; |