Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] sh_vou: convert to unlocked_ioctl

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
69756693 20aa5bb9

+8 -5
+8 -5
drivers/media/video/sh_vou.c
··· 75 75 int pix_idx; 76 76 struct videobuf_buffer *active; 77 77 enum sh_vou_status status; 78 + struct mutex fop_lock; 78 79 }; 79 80 80 81 struct sh_vou_file { ··· 236 235 vb->state = VIDEOBUF_NEEDS_INIT; 237 236 } 238 237 239 - /* Locking: caller holds vq->vb_lock mutex */ 238 + /* Locking: caller holds fop_lock mutex */ 240 239 static int sh_vou_buf_setup(struct videobuf_queue *vq, unsigned int *count, 241 240 unsigned int *size) 242 241 { ··· 258 257 return 0; 259 258 } 260 259 261 - /* Locking: caller holds vq->vb_lock mutex */ 260 + /* Locking: caller holds fop_lock mutex */ 262 261 static int sh_vou_buf_prepare(struct videobuf_queue *vq, 263 262 struct videobuf_buffer *vb, 264 263 enum v4l2_field field) ··· 307 306 return 0; 308 307 } 309 308 310 - /* Locking: caller holds vq->vb_lock mutex and vq->irqlock spinlock */ 309 + /* Locking: caller holds fop_lock mutex and vq->irqlock spinlock */ 311 310 static void sh_vou_buf_queue(struct videobuf_queue *vq, 312 311 struct videobuf_buffer *vb) 313 312 { ··· 1191 1190 V4L2_BUF_TYPE_VIDEO_OUTPUT, 1192 1191 V4L2_FIELD_NONE, 1193 1192 sizeof(struct videobuf_buffer), vdev, 1194 - NULL); 1193 + &vou_dev->fop_lock); 1195 1194 1196 1195 return 0; 1197 1196 } ··· 1293 1292 .owner = THIS_MODULE, 1294 1293 .open = sh_vou_open, 1295 1294 .release = sh_vou_release, 1296 - .ioctl = video_ioctl2, 1295 + .unlocked_ioctl = video_ioctl2, 1297 1296 .mmap = sh_vou_mmap, 1298 1297 .poll = sh_vou_poll, 1299 1298 }; ··· 1332 1331 1333 1332 INIT_LIST_HEAD(&vou_dev->queue); 1334 1333 spin_lock_init(&vou_dev->lock); 1334 + mutex_init(&vou_dev->fop_lock); 1335 1335 atomic_set(&vou_dev->use_count, 0); 1336 1336 vou_dev->pdata = vou_pdata; 1337 1337 vou_dev->status = SH_VOU_IDLE; ··· 1390 1388 vdev->tvnorms |= V4L2_STD_PAL; 1391 1389 vdev->v4l2_dev = &vou_dev->v4l2_dev; 1392 1390 vdev->release = video_device_release; 1391 + vdev->lock = &vou_dev->fop_lock; 1393 1392 1394 1393 vou_dev->vdev = vdev; 1395 1394 video_set_drvdata(vdev, vou_dev);