]> err.no Git - linux-2.6/blobdiff - drivers/media/video/v4l2-dev.c
Merge ../linux-2.6
[linux-2.6] / drivers / media / video / v4l2-dev.c
index 2dd82b16bc3545fe53c42cf5f2d21499f445bf45..556615fe93de1737b756105174dee4d8b80255f2 100644 (file)
 static ssize_t show_index(struct device *cd,
                         struct device_attribute *attr, char *buf)
 {
-       struct video_device *vfd = container_of(cd, struct video_device,
-                                               class_dev);
+       struct video_device *vfd = container_of(cd, struct video_device, dev);
        return sprintf(buf, "%i\n", vfd->index);
 }
 
 static ssize_t show_name(struct device *cd,
                         struct device_attribute *attr, char *buf)
 {
-       struct video_device *vfd = container_of(cd, struct video_device,
-                                               class_dev);
+       struct video_device *vfd = container_of(cd, struct video_device, dev);
        return sprintf(buf, "%.*s\n", (int)sizeof(vfd->name), vfd->name);
 }
 
@@ -77,8 +75,7 @@ EXPORT_SYMBOL(video_device_release);
 
 static void video_release(struct device *cd)
 {
-       struct video_device *vfd = container_of(cd, struct video_device,
-                                                               class_dev);
+       struct video_device *vfd = container_of(cd, struct video_device, dev);
 
 #if 1
        /* needed until all drivers are fixed */
@@ -201,7 +198,7 @@ static int get_index(struct video_device *vdev, int num)
        for (i = 0; i < VIDEO_NUM_DEVICES; i++) {
                if (video_device[i] != NULL &&
                    video_device[i] != vdev &&
-                   video_device[i]->dev == vdev->dev) {
+                   video_device[i]->parent == vdev->parent) {
                        used |= 1 << video_device[i]->index;
                }
        }
@@ -305,6 +302,7 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
                }
        }
        video_device[i] = vfd;
+       vfd->vfl_type = type;
        vfd->minor = i;
 
        ret = get_index(vfd, index);
@@ -320,13 +318,13 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
        mutex_init(&vfd->lock);
 
        /* sysfs class */
-       memset(&vfd->class_dev, 0x00, sizeof(vfd->class_dev));
-       vfd->class_dev.class = &video_class;
-       vfd->class_dev.devt = MKDEV(VIDEO_MAJOR, vfd->minor);
-       if (vfd->dev)
-               vfd->class_dev.parent = vfd->dev;
-       sprintf(vfd->class_dev.bus_id, "%s%d", name_base, i - base);
-       ret = device_register(&vfd->class_dev);
+       memset(&vfd->dev, 0x00, sizeof(vfd->dev));
+       vfd->dev.class = &video_class;
+       vfd->dev.devt = MKDEV(VIDEO_MAJOR, vfd->minor);
+       if (vfd->parent)
+               vfd->dev.parent = vfd->parent;
+       sprintf(vfd->dev.bus_id, "%s%d", name_base, i - base);
+       ret = device_register(&vfd->dev);
        if (ret < 0) {
                printk(KERN_ERR "%s: device_register failed\n", __func__);
                goto fail_minor;
@@ -365,7 +363,7 @@ void video_unregister_device(struct video_device *vfd)
                panic("videodev: bad unregister");
 
        video_device[vfd->minor] = NULL;
-       device_unregister(&vfd->class_dev);
+       device_unregister(&vfd->dev);
        mutex_unlock(&videodev_lock);
 }
 EXPORT_SYMBOL(video_unregister_device);