1. 09 8月, 2010 2 次提交
    • H
      V4L/DVB: v4l2-ctrls: reorder 'case' statements to match order in header · 6c8d6111
      Hans Verkuil 提交于
      To make it easier to determine whether all controls are added in v4l2-ctrls.c
      the case statements inside the switch are re-ordered to match the header.
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6c8d6111
    • H
      V4L/DVB: v4l2: Add new control handling framework · 0996517c
      Hans Verkuil 提交于
      Add a new framework to handle controls which makes life for driver
      developers much easier.
      
      Note that this patch moves some of the control support that used to be in
      v4l2-common.c to v4l2-ctrls.c. The tables were copied unchanged. The body
      of v4l2_ctrl_query_fill() was copied to a new v4l2_ctrl_fill() function
      in v4l2-ctrls.c. This new function doesn't use the v4l2_queryctrl
      struct anymore, which makes it more general.
      
      The remainder of v4l2-ctrls.c is all new. Highlights include:
      
      - No need to implement VIDIOC_QUERYCTRL, QUERYMENU, S_CTRL, G_CTRL,
        S_EXT_CTRLS, G_EXT_CTRLS or TRY_EXT_CTRLS in either bridge drivers
        or subdevs. New wrapper functions are provided that can just be plugged in.
        Once everything has been converted these wrapper functions can be removed as well.
      
      - When subdevices are added their controls can be automatically merged
        with the bridge driver's controls.
      
      - Most drivers just need to implement s_ctrl to set the controls.
        The framework handles the locking and tries to be as 'atomic' as possible.
      
      - Ready for the subdev device nodes: the same mechanism applies to subdevs
        and their device nodes as well. Sub-device drivers can make controls
        local, preventing them from being merged with bridge drivers.
      
      - Takes care of backwards compatibility handling of VIDIOC_S_CTRL and
        VIDIOC_G_CTRL. Handling of V4L2_CID_PRIVATE_BASE is fully transparent.
        CTRL_CLASS controls are automatically added.
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      0996517c