All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
To: Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
	Mike Isely <isely@pobox.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Steven Toth <stoth@kernellabs.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Vincent Palatin <vpalatin@chromium.org>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Subject: [PATCH v2 00/10] Support getting default values from any control
Date: Fri, 21 Aug 2015 15:19:19 +0200	[thread overview]
Message-ID: <1440163169-18047-1-git-send-email-ricardo.ribalda@gmail.com> (raw)

Integer controls provide a way to get their default/initial value, but
any other control (p_u32, p_u8.....) provide no other way to get the
initial value than unloading the module and loading it back.

*What is the actual problem?
I have a custom control with WIDTH integer values. Every value
represents the calibrated FPN (fixed pattern noise) correction value for that
column
-Application A changes the FPN correction value
-Application B wants to restore the calibrated value but it cant :(

*What is the proposed solution?

(Kudos to Hans Verkuil!!!)

The key change is in struct v4l2_ext_controls where the __u32 ctrl_class field
is changed to:

        union {
                __u32 ctrl_class;
                __u32 which;
        };

And two new defines are added:

#define V4L2_CTRL_WHICH_CUR_VAL        0
#define V4L2_CTRL_WHICH_DEF_VAL        0x0f000000

The 'which' field tells you which controls are get/set/tried.

V4L2_CTRL_WHICH_CUR_VAL: the current value of the controls
V4L2_CTRL_WHICH_DEF_VAL: the default value of the controls
V4L2_CTRL_CLASS_*: the current value of the controls belonging to the specified class.
        Note: this is deprecated usage and is only there for backwards compatibility.
        Which is also why I don't think there is a need to add V4L2_CTRL_WHICH_
        aliases for these defines.


I have posted a copy of my working tree to

https://github.com/ribalda/linux/tree/which_def_v2

Changelog v2:

Suggested by Hans Verkuil <hverkuil@xs4all.nl>

Replace ctrls_class with which on all the codebase
Changes in Documentation
(Thanks!)

Ricardo Ribalda Delgado (10):
  videodev2.h: Fix typo in comment
  videodev2.h: Extend struct v4l2_ext_controls
  media/v4l2-compat-ioctl32: Simple stylechecks
  media/core: Replace ctrl_class with which
  media/v4l2-core: struct struct v4l2_ext_controls param which
  usb/uvc: Support for V4L2_CTRL_WHICH_DEF_VAL
  media/usb/pvrusb2: Support for V4L2_CTRL_WHICH_DEF_VAL
  media/pci/saa7164-encoder Support for V4L2_CTRL_WHICH_DEF_VAL
  media/pci/saa7164-vbi Support for V4L2_CTRL_WHICH_DEF_VAL
  Docbook: media: Document changes on struct v4l2_ext_controls

 Documentation/DocBook/media/v4l/v4l2.xml           |  9 ++++
 .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml       | 28 ++++++++--
 drivers/media/pci/saa7164/saa7164-encoder.c        | 59 ++++++++++++---------
 drivers/media/pci/saa7164/saa7164-vbi.c            | 61 +++++++++++++---------
 drivers/media/platform/s5p-mfc/s5p_mfc_dec.c       |  2 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c       |  2 +-
 drivers/media/usb/pvrusb2/pvrusb2-v4l2.c           | 17 +++++-
 drivers/media/usb/uvc/uvc_v4l2.c                   | 14 ++++-
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c      | 17 +++---
 drivers/media/v4l2-core/v4l2-ctrls.c               | 54 +++++++++++++------
 drivers/media/v4l2-core/v4l2-ioctl.c               | 14 ++---
 include/uapi/linux/videodev2.h                     | 14 ++++-
 12 files changed, 200 insertions(+), 91 deletions(-)

-- 
2.5.0


             reply	other threads:[~2015-08-21 13:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-21 13:19 Ricardo Ribalda Delgado [this message]
2015-08-21 13:19 ` [PATCH v2 01/10] videodev2.h: Fix typo in comment Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 02/10] videodev2.h: Extend struct v4l2_ext_controls Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 03/10] media/v4l2-compat-ioctl32: Simple stylechecks Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 04/10] media/core: Replace ctrl_class with which Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 05/10] media/v4l2-core: struct struct v4l2_ext_controls param which Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 06/10] usb/uvc: Support for V4L2_CTRL_WHICH_DEF_VAL Ricardo Ribalda Delgado
2015-09-04 10:56   ` Hans Verkuil
2015-09-17 13:17     ` Hans Verkuil
2015-10-19 11:08       ` Ricardo Ribalda Delgado
2015-10-29  0:08   ` Laurent Pinchart
2015-08-21 13:19 ` [PATCH v2 07/10] media/usb/pvrusb2: " Ricardo Ribalda Delgado
2015-08-22  1:55   ` Mike Isely
2015-08-21 13:19 ` [PATCH v2 08/10] media/pci/saa7164-encoder " Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 09/10] media/pci/saa7164-vbi " Ricardo Ribalda Delgado
2015-08-21 13:19 ` [PATCH v2 10/10] Docbook: media: Document changes on struct v4l2_ext_controls Ricardo Ribalda Delgado
2015-09-04 11:01 ` [PATCH v2 00/10] Support getting default values from any control Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1440163169-18047-1-git-send-email-ricardo.ribalda@gmail.com \
    --to=ricardo.ribalda@gmail.com \
    --cc=hans.verkuil@cisco.com \
    --cc=isely@pobox.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@osg.samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stoth@kernellabs.com \
    --cc=vpalatin@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.