summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorMarkus Rechberger <devnull@localhost>2005-10-17 22:41:17 +0000
committerMarkus Rechberger <devnull@localhost>2005-10-17 22:41:17 +0000
commite98f849158d586eeaf76ce06bda458694ff76668 (patch)
tree1a2dcbc4f9e3d0ba707a464fda7c094a688c6eb9 /linux/drivers
parent539b108b874c6c6d1ae4d4a577a9e0233f342894 (diff)
downloadmediapointer-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.c45
-rw-r--r--linux/drivers/media/video/em28xx/em28xx.h1
-rw-r--r--linux/drivers/usb/media/em2820-video.c45
-rw-r--r--linux/drivers/usb/media/em2820.h1
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;