|
@@ -38,6 +38,7 @@ int v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev)
|
|
|
mutex_init(&v4l2_dev->ioctl_lock);
|
|
|
v4l2_prio_init(&v4l2_dev->prio);
|
|
|
kref_init(&v4l2_dev->ref);
|
|
|
+ get_device(dev);
|
|
|
v4l2_dev->dev = dev;
|
|
|
if (dev == NULL) {
|
|
|
/* If dev == NULL, then name must be filled in by the caller */
|
|
@@ -93,6 +94,7 @@ void v4l2_device_disconnect(struct v4l2_device *v4l2_dev)
|
|
|
|
|
|
if (dev_get_drvdata(v4l2_dev->dev) == v4l2_dev)
|
|
|
dev_set_drvdata(v4l2_dev->dev, NULL);
|
|
|
+ put_device(v4l2_dev->dev);
|
|
|
v4l2_dev->dev = NULL;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(v4l2_device_disconnect);
|