[GIT PATCHES FOR 3.1] Improve event and control handling

2011-06-18 Thread Hans Verkuil
Hi Mauro,

This pull requests sits on top of my previous pull request:

http://www.mail-archive.com/linux-media@vger.kernel.org/msg32762.html

This core9 branch contains the same patches as the earlier core8, so if you
want you can also pull everything from the core9 branch.

The patches in this pull request are almost the same as these:

http://www.mail-archive.com/linux-media@vger.kernel.org/msg33054.html

The two changes are the addition of documentation (both DocBook and
v4l2-framework.txt) and patch 4 in the link above: instead of one single
merge() callback it is now split into a replace() callback and a merge()
callback. When I was documenting the original merge() callback I realized
that it really had to be split into two callbacks or it would be too
confusing.

It's been tested extensively with ivtv and vivi.

I've added support for waiting/polling on the control event to v4l2-ctl:

http://git.linuxtv.org/hverkuil/v4l-utils.git?a=shortlog;h=refs/heads/core

The first four and the last three patches deal with a change in the event
handling, adding guarantees to the framework what should be done when the
internal event queues become full and events need to be dropped. It's much
more useful now.

The four v4l2-ctrls patches improve the internal datastructures and reduce
the time spent with a lock held. In particular it gets rid of a potential
quadratic algorithm, replacing it with a linear one (and making the code
shorter as well). It is the first important step towards allowing certain
types of controls to be set from interrupt context.

Regards,

Hans

The following changes since commit a07d17c00db2cff623aea8113d6cfd181baf86a1:

  v4l2-compat-ioctl32: add VIDIOC_DQEVENT support. (2011-06-10 10:57:27 +0200)

are available in the git repository at:
  ssh://linuxtv.org/git/hverkuil/media_tree.git core9

Hans Verkuil (11):
  v4l2-events/fh: merge v4l2_events into v4l2_fh
  v4l2-ctrls/event: remove struct v4l2_ctrl_fh, instead use 
v4l2_subscribed_event
  v4l2-event/ctrls/fh: allocate events per fh and per type instead of just 
per-fh
  v4l2-event: add optional merge and replace callbacks
  v4l2-ctrls: don't initially set CH_VALUE for write-only controls
  v4l2-ctrls: improve discovery of controls of the same cluster
  v4l2-ctrls: split try_or_set_ext_ctrls()
  v4l2-ctrls: v4l2_ctrl_handler_setup code simplification
  v4l2-framework.txt: updated v4l2_fh_init documentation.
  v4l2-framework.txt: update v4l2_event section.
  DocBook: update V4L Event Interface section.

 Documentation/DocBook/media/v4l/dev-event.xml  |   30 ++-
 .../DocBook/media/v4l/vidioc-subscribe-event.xml   |   15 +-
 Documentation/video4linux/v4l2-framework.txt   |   59 ++-
 drivers/media/video/ivtv/ivtv-fileops.c|   10 +-
 drivers/media/video/ivtv/ivtv-ioctl.c  |4 +-
 drivers/media/video/omap3isp/ispccdc.c |3 +-
 drivers/media/video/omap3isp/ispstat.c |3 +-
 drivers/media/video/v4l2-ctrls.c   |  416 +---
 drivers/media/video/v4l2-event.c   |  218 --
 drivers/media/video/v4l2-fh.c  |   19 +-
 drivers/media/video/v4l2-subdev.c  |   17 +-
 drivers/media/video/vivi.c |4 +-
 drivers/usb/gadget/uvc_v4l2.c  |   22 +-
 include/media/v4l2-ctrls.h |   39 +--
 include/media/v4l2-event.h |   44 ++-
 include/media/v4l2-fh.h|   11 +-
 include/media/v4l2-subdev.h|2 -
 17 files changed, 417 insertions(+), 499 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCHES FOR 3.1] Improve event and control handling

2011-06-20 Thread Hans Verkuil
Hi Mauro,

I've added two small patches based on feedback from Laurent:

  v4l2-ctrls/v4l2-events: small coding style cleanups
  v4l2-event.h: add overview documentation to the header.

No code change, just stylistic/documentation.

Regards,

Hans

On Saturday, June 18, 2011 12:39:56 Hans Verkuil wrote:
> Hi Mauro,
> 
> This pull requests sits on top of my previous pull request:
> 
> http://www.mail-archive.com/linux-media@vger.kernel.org/msg32762.html
> 
> This core9 branch contains the same patches as the earlier core8, so if you
> want you can also pull everything from the core9 branch.
> 
> The patches in this pull request are almost the same as these:
> 
> http://www.mail-archive.com/linux-media@vger.kernel.org/msg33054.html
> 
> The two changes are the addition of documentation (both DocBook and
> v4l2-framework.txt) and patch 4 in the link above: instead of one single
> merge() callback it is now split into a replace() callback and a merge()
> callback. When I was documenting the original merge() callback I realized
> that it really had to be split into two callbacks or it would be too
> confusing.
> 
> It's been tested extensively with ivtv and vivi.
> 
> I've added support for waiting/polling on the control event to v4l2-ctl:
> 
> http://git.linuxtv.org/hverkuil/v4l-utils.git?a=shortlog;h=refs/heads/core
> 
> The first four and the last three patches deal with a change in the event
> handling, adding guarantees to the framework what should be done when the
> internal event queues become full and events need to be dropped. It's much
> more useful now.
> 
> The four v4l2-ctrls patches improve the internal datastructures and reduce
> the time spent with a lock held. In particular it gets rid of a potential
> quadratic algorithm, replacing it with a linear one (and making the code
> shorter as well). It is the first important step towards allowing certain
> types of controls to be set from interrupt context.
> 
> Regards,
> 
>   Hans
> 
> The following changes since commit a07d17c00db2cff623aea8113d6cfd181baf86a1:
> 
>   v4l2-compat-ioctl32: add VIDIOC_DQEVENT support. (2011-06-10 10:57:27 +0200)
> 
> are available in the git repository at:
>   ssh://linuxtv.org/git/hverkuil/media_tree.git core9
> 
> Hans Verkuil (11):
>   v4l2-events/fh: merge v4l2_events into v4l2_fh
>   v4l2-ctrls/event: remove struct v4l2_ctrl_fh, instead use 
> v4l2_subscribed_event
>   v4l2-event/ctrls/fh: allocate events per fh and per type instead of 
> just per-fh
>   v4l2-event: add optional merge and replace callbacks
>   v4l2-ctrls: don't initially set CH_VALUE for write-only controls
>   v4l2-ctrls: improve discovery of controls of the same cluster
>   v4l2-ctrls: split try_or_set_ext_ctrls()
>   v4l2-ctrls: v4l2_ctrl_handler_setup code simplification
>   v4l2-framework.txt: updated v4l2_fh_init documentation.
>   v4l2-framework.txt: update v4l2_event section.
>   DocBook: update V4L Event Interface section.
> 
>  Documentation/DocBook/media/v4l/dev-event.xml  |   30 ++-
>  .../DocBook/media/v4l/vidioc-subscribe-event.xml   |   15 +-
>  Documentation/video4linux/v4l2-framework.txt   |   59 ++-
>  drivers/media/video/ivtv/ivtv-fileops.c|   10 +-
>  drivers/media/video/ivtv/ivtv-ioctl.c  |4 +-
>  drivers/media/video/omap3isp/ispccdc.c |3 +-
>  drivers/media/video/omap3isp/ispstat.c |3 +-
>  drivers/media/video/v4l2-ctrls.c   |  416 
> +---
>  drivers/media/video/v4l2-event.c   |  218 --
>  drivers/media/video/v4l2-fh.c  |   19 +-
>  drivers/media/video/v4l2-subdev.c  |   17 +-
>  drivers/media/video/vivi.c |4 +-
>  drivers/usb/gadget/uvc_v4l2.c  |   22 +-
>  include/media/v4l2-ctrls.h |   39 +--
>  include/media/v4l2-event.h |   44 ++-
>  include/media/v4l2-fh.h|   11 +-
>  include/media/v4l2-subdev.h|2 -
>  17 files changed, 417 insertions(+), 499 deletions(-)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PATCHES FOR 3.1] Improve event and control handling

2011-06-20 Thread Laurent Pinchart
Hi Hans,

On Monday 20 June 2011 17:03:31 Hans Verkuil wrote:
> Hi Mauro,
> 
> I've added two small patches based on feedback from Laurent:
> 
>   v4l2-ctrls/v4l2-events: small coding style cleanups
>   v4l2-event.h: add overview documentation to the header.
> 
> No code change, just stylistic/documentation.

Thanks, that looks good.

-- 
Regards,

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