[media] v4l2-dev: make it possible to skip locking for selected ioctls
authorHans Verkuil <hans.verkuil@cisco.com>
Thu, 10 May 2012 05:51:31 +0000 (02:51 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 14 May 2012 12:13:43 +0000 (09:13 -0300)
commit8ab75e3ecd8f232d9564510f0c601a6aa7a149ea
treed0a0a2e1b8fa4cef8234c09582c622a3e1aa1d42
parentccfc97bdb5ae8b8edc55169ac6924e08449836ac
[media] v4l2-dev: make it possible to skip locking for selected ioctls

Using the V4L2 core lock is a very robust method that is usually very good
at doing the right thing. But some drivers, particularly USB drivers, may
want to prevent the core from taking the lock for specific ioctls, particularly
buffer queuing ioctls.

The reason is that certain commands like S_CTRL can take a long time to process
over USB and all the time the core has the lock, preventing VIDIOC_DQBUF from
proceeding, even though a frame may be ready in the queue.

This introduces unwanted latency.

Since the buffer queuing commands often have their own internal lock it is
often not necessary to take the core lock. Drivers can now say that they don't
want the core to take the lock for specific ioctls.

As it is a specific opt-out it makes it clear to the reviewer that those
ioctls will need more care when reviewing.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Documentation/video4linux/v4l2-framework.txt
drivers/media/video/v4l2-dev.c
drivers/media/video/v4l2-ioctl.c
include/media/v4l2-dev.h