All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Support getting default values from any control
@ 2015-10-29 10:10 Ricardo Ribalda Delgado
  2015-10-29 10:10 ` [PATCH v2 1/6] videodev2.h: Extend struct v4l2_ext_controls Ricardo Ribalda Delgado
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Ricardo Ribalda Delgado @ 2015-10-29 10:10 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Mike Isely, Laurent Pinchart, Hans Verkuil,
	Steven Toth, Sakari Ailus, Vincent Palatin, linux-media,
	linux-kernel
  Cc: Ricardo Ribalda Delgado

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_v5



Changelog v2 (compared to Support getting default values from any control

Rebase to latest version
Remove saa7164-* patches (Hans already ported them to v4l2-ctrl)
Update doc dates

Suggested by Laurent Pinchart <laurent.pinchart@ideasonboard.com>:

Fixes for the uvc implementation (error in lock handling) (Thanks!)


Changelog v1 (compared to v5 of New ioct VIDIOC_G_DEF_EXT_CTRLS):

Suggested by Hans Verkuil <hverkuil@xs4all.nl>:

Replace ioctl implementation with a new union on the struct v4l2_ext_controls
THANKS!

Ricardo Ribalda Delgado (6):
  videodev2.h: Extend struct v4l2_ext_controls
  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
  Docbook: media: Document changes on struct v4l2_ext_controls

 Documentation/DocBook/media/v4l/v4l2.xml           | 10 ++++
 .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml       | 28 +++++++++--
 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           | 16 ++++++-
 drivers/media/usb/uvc/uvc_v4l2.c                   | 20 ++++++++
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c      |  6 +--
 drivers/media/v4l2-core/v4l2-ctrls.c               | 54 ++++++++++++++++------
 drivers/media/v4l2-core/v4l2-ioctl.c               | 14 +++---
 include/uapi/linux/videodev2.h                     | 12 ++++-
 10 files changed, 131 insertions(+), 33 deletions(-)

-- 
2.6.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-10-30 14:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-29 10:10 [PATCH v2 0/6] Support getting default values from any control Ricardo Ribalda Delgado
2015-10-29 10:10 ` [PATCH v2 1/6] videodev2.h: Extend struct v4l2_ext_controls Ricardo Ribalda Delgado
2015-10-29 10:10 ` [PATCH v2 2/6] media/core: Replace ctrl_class with which Ricardo Ribalda Delgado
2015-10-29 10:10 ` [PATCH v2 3/6] media/v4l2-core: struct struct v4l2_ext_controls param which Ricardo Ribalda Delgado
2015-10-29 10:10 ` [PATCH v2 4/6] usb/uvc: Support for V4L2_CTRL_WHICH_DEF_VAL Ricardo Ribalda Delgado
2015-10-30 14:29   ` Laurent Pinchart
2015-10-29 10:10 ` [PATCH v2 5/6] media/usb/pvrusb2: " Ricardo Ribalda Delgado
2015-10-29 15:33   ` Mike Isely
2015-10-29 10:10 ` [PATCH v2 6/6] Docbook: media: Document changes on struct v4l2_ext_controls Ricardo Ribalda Delgado

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.