From: Pavel Machek <pavel@ucw.cz>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Jacek Anaszewski <j.anaszewski@samsung.com>,
Bryan Wu <cooloney@gmail.com>,
Linux LED Subsystem <linux-leds@vger.kernel.org>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Kyungmin Park <kyungmin.park@samsung.com>,
b.zolnierkie@samsung.com, "rpurdie@rpsys.net" <rpurdie@rpsys.net>,
Sylwester Nawrocki <s.nawrocki@samsung.com>
Subject: Re: [PATCH/RFC v8 02/14] Documentation: leds: Add description of LED Flash class extension
Date: Thu, 29 Jan 2015 22:24:40 +0100 [thread overview]
Message-ID: <20150129212440.GB21140@amd> (raw)
In-Reply-To: <20141210231431.GP15559@valkosipuli.retiisi.org.uk>
Hi!
> > > This approach would require implementing additional mechanisms on
> > > both sides: LED Flash class core and a LED Flash class driver.
> > > In the former the sysfs attribute write permissions would have
> > > to be decided in the runtime and in the latter caching mechanism
> >
> > Write attributes at runtime? Why? We can emulate sane and consistent
> > behaviour for all the controllers: read gives you list of faults,
> > write clears it. We can do it for all the controllers.
> >
> > Only cost is few lines of code in the drivers where hardware clears
> > faults at read.
>
> Please take the time to read this, and consider it.
>
> I'd say the cost is I2C register access, not so much a few lines added to
> the drivers. The functionality and behaviour between the flash controllers
> varies. They have different faults, presence of (some) faults may prevent
> strobing, some support reading the flash status and some don't.
>
> Some of the flash faults are mostly relevant in production testing, some can
> be used to find hardware issues during use (rare) and some are produced in
> common use (timeout, for instance).
>
> The V4L2 flash API defines that reading the faults clears them, but does not
> state whether presence of faults would prevent further use of the flash.
> This is flash controller chip specific.
Yeah, but we are discussing sysfs reads. V4L2 API can just behave differently.
> I think you *could* force a policy on the level of kernel API, for instance
> require that the user clears the faults before strobing again rather than
> relying on the chip requiring this instead.
Yes, we could do that.
> Most of the time there are no faults. When there are, they may appear at
> some point of time after the strobing, but how long? Probably roughly after
> the timeout period the flash should have faults available if there were any
> --- except if the strobe is external such as a sensor timed strobe. In that
> case the software running on the CPU has no knowledge when the flash is
> strobed nor when the faults should be read. So the requirement of checking
> the faults would probably have to be limited to software strobe only. The
> user would still have to be able to check the faults for externally strobed
> pulses. Would it be acceptable that the interface was different
> there?
Should the user just read the faults before scheduling next strobe?
> So, after the user has strobed, when the user should check the flash faults?
> After the timeout period has passed? Right before strobing again? If this
> was a requirement, it adds an additional I2C access to potentially the place
> which should absolutely have no extra delay --- the flash strobe time. This
> would be highly unwanted.
I'd do it before strobing again. Not neccessarily "just" before
strobing again (you claim it is slow ... is it really so slow it matters)?
> Finally, should the LED flash class enforce such a policy, would the V4L2
> flash API which is provided to the same devices be changed as well? I'm not
> against that if we have
>
> 1) can come up with a good policy that is understood to be
> meaningful for all thinkable flash controller implementations and
>
> 2) agreement the behaviour can be changed.
I am saying that reading from /sys should not have side effects. For
V4L2, existing behaviour might be ok.
Each driver should have two operations: read_faults() and
clear_faults().
On devices where i2c read clears faults, operations will be:
int my_faults
read_faults()
my_faults |= read_i2c_faults()
return my_faults
clear_faults()
my_faults = 0
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2015-01-29 21:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-28 9:17 [PATCH/RFC v8 00/14] LED / flash API integration Jacek Anaszewski
2014-11-28 9:17 ` [PATCH/RFC v8 01/14] leds: Add LED Flash class extension to the LED subsystem Jacek Anaszewski
[not found] ` <CAK5ve-KMdJOLQ0ThKw9OM9u_CcwT87Bx4vcUjnX4fG2+t3pJsw@mail.gmail.com>
2014-12-08 17:07 ` Jacek Anaszewski
2014-11-28 9:17 ` [PATCH/RFC v8 02/14] Documentation: leds: Add description of LED Flash class extension Jacek Anaszewski
2014-11-29 12:58 ` Pavel Machek
2014-12-01 11:40 ` Jacek Anaszewski
2014-12-01 13:04 ` Pavel Machek
2014-12-01 13:58 ` Jacek Anaszewski
2014-12-01 15:21 ` Sakari Ailus
2014-12-05 19:45 ` Bryan Wu
2014-12-06 12:43 ` Pavel Machek
2014-12-08 16:55 ` Jacek Anaszewski
2014-12-08 20:18 ` Pavel Machek
2014-12-09 8:54 ` Jacek Anaszewski
2014-12-09 15:50 ` Pavel Machek
2014-12-10 13:17 ` Jacek Anaszewski
2014-12-10 13:32 ` Pavel Machek
2014-12-10 23:14 ` Sakari Ailus
2015-01-29 21:24 ` Pavel Machek [this message]
2014-11-28 9:17 ` [PATCH/RFC v8 03/14] Documentation: leds: Add description of v4l2-flash sub-device Jacek Anaszewski
2014-11-29 23:44 ` Sakari Ailus
2014-12-05 19:50 ` Bryan Wu
2014-11-28 9:17 ` [PATCH/RFC v8 04/14] v4l2-async: change custom.match callback argument type Jacek Anaszewski
2014-11-29 13:00 ` Pavel Machek
2014-11-29 16:38 ` Laurent Pinchart
2014-12-01 9:35 ` Jacek Anaszewski
2014-11-28 9:17 ` [PATCH/RFC v8 05/14] v4l2-ctrls: Add V4L2_CID_FLASH_SYNC_STROBE control Jacek Anaszewski
2014-11-28 9:17 ` [PATCH/RFC v8 06/14] media: Add registration helpers for V4L2 flash sub-devices Jacek Anaszewski
2014-12-01 14:53 ` Jacek Anaszewski
2014-11-28 9:17 ` [PATCH/RFC v8 07/14] exynos4-is: Add support for v4l2-flash subdevs Jacek Anaszewski
2014-11-29 13:02 ` Pavel Machek
2014-11-28 9:18 ` [PATCH/RFC v8 08/14] DT: Add documentation for exynos4-is 'flashes' property Jacek Anaszewski
2014-11-28 11:14 ` Mark Rutland
2014-11-28 12:09 ` Jacek Anaszewski
[not found] ` <547865EA.5010700-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-28 12:30 ` Mark Rutland
2014-11-28 12:30 ` Mark Rutland
2014-11-28 14:11 ` Jacek Anaszewski
2014-11-28 14:11 ` Jacek Anaszewski
[not found] ` <54788278.7080101-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-28 14:38 ` Mark Rutland
2014-11-28 14:38 ` Mark Rutland
2014-11-28 9:18 ` [PATCH/RFC v8 09/14] mfd: max77693: adjust max77693_led_platform_data Jacek Anaszewski
2014-12-01 11:34 ` Lee Jones
2014-12-01 12:49 ` Jacek Anaszewski
2014-12-01 12:53 ` Lee Jones
2014-11-28 9:18 ` [PATCH/RFC v8 10/14] leds: Add support for max77693 mfd flash cell Jacek Anaszewski
[not found] ` <1417166286-27685-1-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-28 9:18 ` [PATCH/RFC v8 11/14] DT: Add documentation for the mfd Maxim max77693 Jacek Anaszewski
2014-11-28 9:18 ` Jacek Anaszewski
2014-11-29 19:26 ` Pavel Machek
2014-12-01 12:58 ` Jacek Anaszewski
2014-12-01 12:58 ` Jacek Anaszewski
2014-12-01 13:02 ` Pavel Machek
2014-12-01 13:43 ` Jacek Anaszewski
2014-12-01 11:15 ` Lee Jones
2014-11-28 9:18 ` [PATCH/RFC v8 12/14] leds: Add driver for AAT1290 current regulator Jacek Anaszewski
2014-11-29 19:05 ` Pavel Machek
2014-12-01 11:47 ` Jacek Anaszewski
2014-11-28 9:18 ` [PATCH/RFC v8 13/14] of: Add Skyworks Solutions, Inc. vendor prefix Jacek Anaszewski
2014-11-28 9:18 ` [PATCH/RFC v8 14/14] DT: Add documentation for the Skyworks AAT1290 Jacek Anaszewski
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=20150129212440.GB21140@amd \
--to=pavel@ucw.cz \
--cc=b.zolnierkie@samsung.com \
--cc=cooloney@gmail.com \
--cc=j.anaszewski@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=rpurdie@rpsys.net \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@iki.fi \
/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.