From: Hans Verkuil <hverkuil@xs4all.nl>
To: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>,
Hans Verkuil <hans.verkuil@cisco.com>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
Mauro Carvalho Chehab <mchehab@osg.samsung.com>,
Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
linux-media@vger.kernel.org
Subject: Re: [RFC v2 00/27] New ioct VIDIOC_G_DEF_EXT_CTRLS
Date: Fri, 12 Jun 2015 15:41:06 +0200 [thread overview]
Message-ID: <557AE172.7070408@xs4all.nl> (raw)
In-Reply-To: <1434114742-7420-1-git-send-email-ricardo.ribalda@gmail.com>
On 06/12/2015 03:11 PM, Ricardo Ribalda Delgado wrote:
> 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?
> -Add a new ioctl VIDIOC_G_DEF_EXT_CTRLS, with the same API as
> G_EXT_CTRLS, but that returns the initial value of a given control.
>
>
> I have posted a copy of my working tree to
>
> https://github.com/ribalda/linux/tree/g_def_ext
>
> It has been tested with a hacked version of yavta (for normal controls) and a
> custom program for the array control.
>
> Changelog v2:
> -Add documentation
> -Split in multiple patches
> -Comments by Hans:
> -Rename ioctl to G_DEF_EXT_CTRL
> -Much! better implementation of def_to_user
>
>
> THANKS!
>
> Ricardo Ribalda Delgado (27):
> media/v4l2-core: Add argument def_value to g_ext_ctrl
> media/v4l2-core: add new ioctl VIDIOC_G_DEF_EXT_CTRLS
> videodev2.h: Fix typo in comment
> v4l2-subdev: Add g_def_ext_ctrls to core_ops
> media/i2c/adv7343: Implement g_def_ext_ctrls core_op
> media/i2c/adv7393: Implement g_def_ext_ctrls core_op
> media/i2c/bt819: Implement g_def_ext_ctrls core_op
> media/i2c/cs5345: Implement g_def_ext_ctrls core_op
> media/i2c/cs53l32a: Implement g_def_ext_ctrls core_op
> media/i2c/cx25840/cx25840-core: Implement g_def_ext_ctrls core_op
> media/i2c/msp3400-driver: Implement g_def_ext_ctrls core_op
> media/i2c/saa7110: Implement g_def_ext_ctrls core_op
> media/i2c/saa7115: Implement g_def_ext_ctrls core_op
> media/i2c/saa717x: Implement g_def_ext_ctrls core_op
> media/i2c/sr030pc30: Implement g_def_ext_ctrls core_op
> media/i2c/tda7432: Implement g_def_ext_ctrls core_op
> media/i2c/tlv320aic23b: Implement g_def_ext_ctrls core_op
> media/i2c/tvaudio: Implement g_def_ext_ctrls core_op
> media/i2c/tvp514x: Implement g_def_ext_ctrls core_op
> media/i2c/tvp7002: Implement g_def_ext_ctrls core_op
> media/i2c/vpx3220: Implement g_def_ext_ctrls core_op
> media/i2c/wm8739: Implement g_def_ext_ctrls core_op
> media/i2c/wm8775: Implement g_def_ext_ctrls core_op
> media/pci/ivtv/ivtv-gpio: Implement g_def_ext_ctrls core_op
> media/radio/saa7706h: Implement g_def_ext_ctrls core_op
I did a quick analysis and for the following i2c modules you can just remove the
compat control ops altogether since they are no longer used in old non-control-framework
bridge drivers:
saa7706
ivtv-gpio
wm8739
tvp7002
tvp514x
tvl320aic23b
tda7432
sr030pc30
saa717x
cs5345
adv7393
adv7343
Also note that the uvc driver needs to be adapted manually since it can't use
the control framework. The ioctls are implemented in the driver itself.
Regards,
Hans
> Docbook: media: new ioctl VIDIOC_G_DEF_EXT_CTRLS
> Documentation: media: Fix code sample
>
> Documentation/DocBook/media/v4l/v4l2.xml | 8 ++++++
> .../DocBook/media/v4l/vidioc-g-ext-ctrls.xml | 13 ++++++---
> Documentation/video4linux/v4l2-controls.txt | 4 ++-
> Documentation/video4linux/v4l2-framework.txt | 1 +
> Documentation/zh_CN/video4linux/v4l2-framework.txt | 1 +
> drivers/media/i2c/adv7343.c | 1 +
> drivers/media/i2c/adv7393.c | 1 +
> drivers/media/i2c/bt819.c | 1 +
> drivers/media/i2c/cs5345.c | 1 +
> drivers/media/i2c/cs53l32a.c | 1 +
> drivers/media/i2c/cx25840/cx25840-core.c | 1 +
> drivers/media/i2c/msp3400-driver.c | 1 +
> drivers/media/i2c/saa7110.c | 1 +
> drivers/media/i2c/saa7115.c | 1 +
> drivers/media/i2c/saa717x.c | 1 +
> drivers/media/i2c/sr030pc30.c | 1 +
> drivers/media/i2c/tda7432.c | 1 +
> drivers/media/i2c/tlv320aic23b.c | 1 +
> drivers/media/i2c/tvaudio.c | 1 +
> drivers/media/i2c/tvp514x.c | 1 +
> drivers/media/i2c/tvp7002.c | 1 +
> drivers/media/i2c/vpx3220.c | 1 +
> drivers/media/i2c/wm8739.c | 1 +
> drivers/media/i2c/wm8775.c | 1 +
> drivers/media/pci/ivtv/ivtv-gpio.c | 1 +
> drivers/media/platform/omap3isp/ispvideo.c | 2 +-
> drivers/media/radio/saa7706h.c | 1 +
> drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 4 +++
> drivers/media/v4l2-core/v4l2-ctrls.c | 32 ++++++++++++++++++----
> drivers/media/v4l2-core/v4l2-ioctl.c | 25 +++++++++++++++--
> drivers/media/v4l2-core/v4l2-subdev.c | 5 +++-
> include/media/v4l2-ctrls.h | 5 +++-
> include/media/v4l2-ioctl.h | 2 ++
> include/media/v4l2-subdev.h | 2 ++
> include/uapi/linux/videodev2.h | 3 +-
> 35 files changed, 112 insertions(+), 16 deletions(-)
>
next prev parent reply other threads:[~2015-06-12 13:41 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 13:11 [RFC v2 00/27] New ioct VIDIOC_G_DEF_EXT_CTRLS Ricardo Ribalda Delgado
2015-06-12 13:11 ` [RFC v2 01/27] media/v4l2-core: Add argument def_value to g_ext_ctrl Ricardo Ribalda Delgado
2015-06-12 13:11 ` [RFC v2 02/27] media/v4l2-core: add new ioctl VIDIOC_G_DEF_EXT_CTRLS Ricardo Ribalda Delgado
2015-06-12 13:11 ` [RFC v2 03/27] videodev2.h: Fix typo in comment Ricardo Ribalda Delgado
2015-06-12 13:11 ` [RFC v2 04/27] v4l2-subdev: Add g_def_ext_ctrls to core_ops Ricardo Ribalda Delgado
2015-06-12 13:11 ` [RFC v2 05/27] media/i2c/adv7343: Implement g_def_ext_ctrls core_op Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 06/27] media/i2c/adv7393: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 07/27] media/i2c/bt819: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 08/27] media/i2c/cs5345: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 09/27] media/i2c/cs53l32a: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 10/27] media/i2c/cx25840/cx25840-core: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 11/27] media/i2c/msp3400-driver: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 12/27] media/i2c/saa7110: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 13/27] media/i2c/saa7115: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 14/27] media/i2c/saa717x: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 15/27] media/i2c/sr030pc30: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 16/27] media/i2c/tda7432: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 17/27] media/i2c/tlv320aic23b: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 18/27] media/i2c/tvaudio: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 19/27] media/i2c/tvp514x: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 20/27] media/i2c/tvp7002: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 21/27] media/i2c/vpx3220: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 22/27] media/i2c/wm8739: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 23/27] media/i2c/wm8775: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 24/27] media/pci/ivtv/ivtv-gpio: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 25/27] media/radio/saa7706h: " Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 26/27] Docbook: media: new ioctl VIDIOC_G_DEF_EXT_CTRLS Ricardo Ribalda Delgado
2015-06-12 13:12 ` [RFC v2 27/27] Documentation: media: Fix code sample Ricardo Ribalda Delgado
2015-06-12 13:41 ` Hans Verkuil [this message]
2015-06-12 13:55 ` [RFC v2 00/27] New ioct VIDIOC_G_DEF_EXT_CTRLS Ricardo Ribalda Delgado
2015-06-12 18:20 ` media_tree log has not been updated for about a month Tycho Lürsen
2015-06-12 19:52 ` Mauro Carvalho Chehab
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=557AE172.7070408@xs4all.nl \
--to=hverkuil@xs4all.nl \
--cc=g.liakhovetski@gmx.de \
--cc=hans.verkuil@cisco.com \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=ricardo.ribalda@gmail.com \
--cc=sakari.ailus@linux.intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox