Re: [PATCH 00/10] [RFC] Prio handling and v4l2_device release callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em 29-12-2010 19:43, Hans Verkuil escreveu:
> This patch series adds two new features to the V4L2 framework.
> 
> The first 5 patches add support for VIDIOC_G/S_PRIORITY. All prio handling
> will be done in the core for any driver that either uses struct v4l2_fh
> (ivtv only at the moment) or has no open and release file operations (true
> for many simple (radio) drivers). In all other cases the driver will have
> to do the work.

It doesn't make sense to implement this at core, and for some this will happen
automatically, while, for others, drivers need to do something.

> Eventually all drivers should either use v4l2_fh or never set filp->private_data.

I made a series of patches, due to BKL stuff converting the core to always
use v4l2_fh on all drivers. This seems to be the right solution for it.

> All drivers that use the control framework must also use core-prio handling
> since control handling is no longer done through v4l2_ioctl_ops, so the driver
> doesn't have an easy way of checking the priority before changing a control.
> 
> By default all device nodes use the same priority state in v4l2_device, but
> drivers can assign the prio field in video_device to a different priority state,
> allowing e.g. all capture device nodes to use a different priority from all
> the display device nodes.
> 
> The v4l2_ioctl.c code will check the ioctls whether or not they are allowed
> based on the current priority. The vidioc_default callback has a new argument
> that just tells the driver whether the prio is OK or not. The driver can use
> this argument to return -EBUSY for those commands that modify state of the driver.
> 
> The following three patches implement this in ivtv and update the documentation.
> 
> The last two patches add a release callback in v4l2_device which will be called
> when the last registered device node is removed. This is very useful for
> implementing the hotplug disconnect functionality as it provides a single clean
> up callback when the last user of any of the unregistered device nodes has
> closed its filehandle. For drivers with just a single device node this is not
> very relevant since the video_device release() does the same job, but for
> drivers that create multiple device nodes (e.g. usbvision) this is a must-have.
> 
> An example of how this would be used can be found in the dsbr100 patches in
> this branch:
> 
> http://git.linuxtv.org/hverkuil/media_tree.git?a=shortlog;h=refs/heads/usbvision
> 
> Comments?
> 
> Regards,
> 
> 	Hans
> 
> Hans Verkuil (10):
>   v4l2_prio: move from v4l2-common to v4l2-dev.
>   v4l2: add v4l2_prio_state to v4l2_device and video_device
>   v4l2-fh: implement v4l2_priority support.
>   v4l2-dev: add and support flag V4L2_FH_USE_PRIO.
>   v4l2-ioctl: add priority handling support.
>   ivtv: convert to core priority handling.
>   ivtv: use core-assisted locking.
>   v4l2-framework: update documentation for new prio field
>   v4l2-device: add kref and a release function
>   v4l2-framework.txt: document new v4l2_device release() callback
> 
>  Documentation/video4linux/v4l2-framework.txt |   34 ++++++++-
>  drivers/media/radio/radio-si4713.c           |    3 +-
>  drivers/media/video/cx18/cx18-ioctl.c        |    3 +-
>  drivers/media/video/davinci/vpfe_capture.c   |    2 +-
>  drivers/media/video/ivtv/ivtv-driver.h       |    2 -
>  drivers/media/video/ivtv/ivtv-fileops.c      |   17 +----
>  drivers/media/video/ivtv/ivtv-ioctl.c        |   77 +++++---------------
>  drivers/media/video/ivtv/ivtv-streams.c      |    1 +
>  drivers/media/video/meye.c                   |    3 +-
>  drivers/media/video/mxb.c                    |    3 +-
>  drivers/media/video/v4l2-common.c            |   63 ----------------
>  drivers/media/video/v4l2-dev.c               |  101 +++++++++++++++++++++++++-
>  drivers/media/video/v4l2-device.c            |   16 ++++
>  drivers/media/video/v4l2-fh.c                |    4 +
>  drivers/media/video/v4l2-ioctl.c             |   73 +++++++++++++++++--
>  include/media/v4l2-common.h                  |   15 ----
>  include/media/v4l2-dev.h                     |   24 ++++++
>  include/media/v4l2-device.h                  |   14 ++++
>  include/media/v4l2-fh.h                      |    1 +
>  include/media/v4l2-ioctl.h                   |    2 +-
>  20 files changed, 286 insertions(+), 172 deletions(-)
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux