|
@@ -34,6 +34,7 @@ struct timbradio {
|
|
|
struct v4l2_subdev *sd_dsp;
|
|
|
struct video_device video_dev;
|
|
|
struct v4l2_device v4l2_dev;
|
|
|
+ struct mutex lock;
|
|
|
};
|
|
|
|
|
|
|
|
@@ -142,7 +143,7 @@ static const struct v4l2_ioctl_ops timbradio_ioctl_ops = {
|
|
|
|
|
|
static const struct v4l2_file_operations timbradio_fops = {
|
|
|
.owner = THIS_MODULE,
|
|
|
- .ioctl = video_ioctl2,
|
|
|
+ .unlocked_ioctl = video_ioctl2,
|
|
|
};
|
|
|
|
|
|
static int __devinit timbradio_probe(struct platform_device *pdev)
|
|
@@ -164,6 +165,7 @@ static int __devinit timbradio_probe(struct platform_device *pdev)
|
|
|
}
|
|
|
|
|
|
tr->pdata = *pdata;
|
|
|
+ mutex_init(&tr->lock);
|
|
|
|
|
|
strlcpy(tr->video_dev.name, "Timberdale Radio",
|
|
|
sizeof(tr->video_dev.name));
|
|
@@ -171,6 +173,7 @@ static int __devinit timbradio_probe(struct platform_device *pdev)
|
|
|
tr->video_dev.ioctl_ops = &timbradio_ioctl_ops;
|
|
|
tr->video_dev.release = video_device_release_empty;
|
|
|
tr->video_dev.minor = -1;
|
|
|
+ tr->video_dev.lock = &tr->lock;
|
|
|
|
|
|
strlcpy(tr->v4l2_dev.name, DRIVER_NAME, sizeof(tr->v4l2_dev.name));
|
|
|
err = v4l2_device_register(NULL, &tr->v4l2_dev);
|