From: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
Nayden Kanchev <nkanchev@mm-sol.com>,
Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
Hans Verkuil <hverkuil@xs4all.nl>,
Cohen David Abraham <david.cohen@nokia.com>
Subject: Re: [RFC] V4L2 API for flash devices
Date: Thu, 31 Mar 2011 11:17:49 +0300 [thread overview]
Message-ID: <4D9438AD.7040405@maxwell.research.nokia.com> (raw)
In-Reply-To: <201103301554.47092.laurent.pinchart@ideasonboard.com>
Laurent Pinchart wrote:
> On Wednesday 30 March 2011 13:05:54 Sakari Ailus wrote:
>> Laurent Pinchart wrote:
>>> Hi Sakari,
>>
>> Hi Laurent,
>>
>> Thanks for the comments!
>>
>>> On Monday 28 March 2011 14:55:40 Sakari Ailus wrote:
>>>
>>> [snip]
>>>
>>>> V4L2_CID_FLASH_STROBE_MODE (menu; LED)
>>>>
>>>> Use hardware or software strobe. If hardware strobe is selected, the
>>>> flash controller is a slave in the system where the sensor produces the
>>>> strobe signal to the flash.
>>>>
>>>> In this case the flash controller setup is limited to programming strobe
>>>> timeout and power (LED flash) and the sensor controls the timing and
>>>> length of the strobe.
>>>>
>>>> enum v4l2_flash_strobe_mode {
>>>>
>>>> V4L2_FLASH_STROBE_MODE_SOFTWARE,
>>>> V4L2_FLASH_STROBE_MODE_EXT_STROBE,
>>>>
>>>> };
>>>
>>> [snip]
>>>
>>>> V4L2_CID_FLASH_LED_MODE (menu; LED)
>>>>
>>>> enum v4l2_flash_led_mode {
>>>>
>>>> V4L2_FLASH_LED_MODE_FLASH = 1,
>>>> V4L2_FLASH_LED_MODE_TORCH,
>>>>
>>>> };
>>>
>>> Thinking about this some more, shouldn't we combine the two controls ?
>>> They are basically used to configure how the flash LED is controlled:
>>> manually (torch mode), automatically by the flash controller (software
>>> strobe mode) or automatically by an external component (external strobe
>>> mode).
>>
>> That's a good question.
>>
>> The adp1653 supports also additional control (not implemented in the
>> driver, though) that affect hardware strobe length. Based on register
>> setting, the led will be on after strobe either until the timeout
>> expires, or until the strobe signal is high.
>>
>> Should this be also part of the same control, or a different one?
>
> That can be controlled by a duration control. If the duration is 0, the flash
> is lit for the duration of the external strobe, otherwise it's lit for the
> programmed duration.
Sounds good to me.
>> Even without this, we'd have:
>>
>> V4L2_FLASH_MODE_OFF
>> V4L2_FLASH_MODE_TORCH
>> V4L2_FLASH_MODE_SOFTWARE_STROBE
>> V4L2_FLASH_MODE_EXTERNAL_STROBE
>>
>> Additionally, this might be
>>
>> V4L2_FLASH_MODE_EXTERNAL_STROBE_EDGE
>>
>> It's true that these are mutually exclusive.
>>
>> I think this is about whether we want to specify the operation of the
>> flash explicitly here or allow extending the interface later on when new
>> hardware is available by adding new controls. There are upsides and
>> downsides in each approach.
>>
>> There could be additional differentiating factors to the functionalty
>> later on, like the torch/video light differentiation that some hardware
>> does --- who knows based on what?
>>
>> I perhaps wouldn't combine the controls. What do you think?
>
> I'm not sure yet :-)
I have a vague feeling that as we don't know about the future hardware
I'd prefer to keep this as extensible as possible, meaning that I'd
rather add new controls than define menu controls with use case specific
items in them. This would translate to two controls: flash mode (none,
torch, flash) and strobe mode (software, external).
What do the others think on this?
--
Sakari Ailus
sakari.ailus@maxwell.research.nokia.com
next prev parent reply other threads:[~2011-03-31 8:16 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-28 12:55 [RFC] V4L2 API for flash devices Sakari Ailus
2011-03-29 6:49 ` Hans Verkuil
2011-03-29 9:35 ` Sakari Ailus
2011-03-29 9:54 ` Hans Verkuil
2011-03-29 11:38 ` Sakari Ailus
2011-03-29 11:51 ` Sakari Ailus
2011-03-30 8:47 ` Laurent Pinchart
2011-04-05 10:00 ` Sakari Ailus
2011-05-02 16:04 ` Sakari Ailus
2011-05-02 19:13 ` Hans Verkuil
2011-05-02 19:32 ` Laurent Pinchart
2011-05-02 20:07 ` Hans Verkuil
2011-03-30 8:55 ` Laurent Pinchart
2011-03-30 12:44 ` Sakari Ailus
2011-03-30 13:53 ` Laurent Pinchart
2011-03-30 14:18 ` Sakari Ailus
2011-03-30 14:57 ` David Cohen
2011-03-30 15:00 ` Laurent Pinchart
2011-03-31 8:09 ` Sakari Ailus
2011-03-29 10:43 ` Kim, HeungJun
2011-03-29 14:41 ` Sakari Ailus
2011-03-30 5:06 ` Kim, HeungJun
2011-03-30 11:37 ` Sakari Ailus
2011-03-30 20:37 ` Kim HeungJun
2011-03-31 8:50 ` Sakari Ailus
2011-03-30 9:34 ` Laurent Pinchart
2011-03-30 11:05 ` Sakari Ailus
2011-03-30 13:54 ` Laurent Pinchart
2011-03-31 8:17 ` Sakari Ailus [this message]
2011-04-05 10:23 ` Sakari Ailus
2011-04-05 10:39 ` Laurent Pinchart
2011-04-05 11:21 ` Sakari Ailus
2011-04-05 11:28 ` Laurent Pinchart
2011-04-05 13:35 ` Sakari Ailus
[not found] ` <4D9B303D.1000003@mm-sol.com>
2011-04-05 16:25 ` Laurent Pinchart
2011-04-05 12:11 ` David Cohen
2011-04-06 8:04 ` Sakari Ailus
2011-04-12 19:31 ` Sung Hee Park
[not found] ` <BANLkTik+xqCD7uiGUchsehoUy+gwM+Cjdg@mail.gmail.com>
2011-04-13 12:16 ` Sakari Ailus
2011-04-14 19:38 ` Laurent Pinchart
2011-04-15 5:27 ` Sakari Ailus
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=4D9438AD.7040405@maxwell.research.nokia.com \
--to=sakari.ailus@maxwell.research.nokia.com \
--cc=david.cohen@nokia.com \
--cc=g.liakhovetski@gmx.de \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=nkanchev@mm-sol.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