linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacek Anaszewski <j.anaszewski@samsung.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Pavel Machek <pavel@ucw.cz>, Greg KH <greg@kroah.com>,
	linux-leds@vger.kernel.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, kyungmin.park@samsung.com,
	cooloney@gmail.com, rpurdie@rpsys.net, s.nawrocki@samsung.com,
	laurent.pinchart@ideasonboard.com, hverkuil@xs4all.nl
Subject: Re: 0.led_name 2.other.led.name in /sysfs Re: [PATCH/RFC v11 01/20] leds: flash: document sysfs interface
Date: Mon, 02 Mar 2015 14:56:29 +0100	[thread overview]
Message-ID: <54F46C0D.3090205@samsung.com> (raw)
In-Reply-To: <20150302125414.GS6539@valkosipuli.retiisi.org.uk>

On 03/02/2015 01:54 PM, Sakari Ailus wrote:
> Hi Jacek,
>
> On Fri, Feb 27, 2015 at 03:34:22PM +0100, Jacek Anaszewski wrote:
>> Hi Sakari,
>>
>> On 02/21/2015 11:57 AM, Sakari Ailus wrote:
>>> Hi Pavel and Greg,
>>>
>>> On Fri, Feb 20, 2015 at 09:57:38PM +0100, Pavel Machek wrote:
>>>> On Fri 2015-02-20 07:36:16, Greg KH wrote:
>>>>> On Fri, Feb 20, 2015 at 08:56:11AM +0100, Jacek Anaszewski wrote:
>>>>>> On 02/19/2015 10:40 PM, Greg KH wrote:
>>>>>>> On Thu, Feb 19, 2015 at 11:02:04AM +0200, Sakari Ailus wrote:
>>>>>>>> On Wed, Feb 18, 2015 at 11:47:47PM +0100, Pavel Machek wrote:
>>>>>>>>>
>>>>>>>>> On Wed 2015-02-18 17:20:22, Jacek Anaszewski wrote:
>>>>>>>>>> Add a documentation of LED Flash class specific sysfs attributes.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
>>>>>>>>>> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>>>>>>>> Cc: Bryan Wu <cooloney@gmail.com>
>>>>>>>>>> Cc: Richard Purdie <rpurdie@rpsys.net>
>>>>>>>>>
>>>>>>>>> NAK-ed-by: Pavel Machek
>>>>>>>>>
>>>>>>>>>> +What:		/sys/class/leds/<led>/available_sync_leds
>>>>>>>>>> +Date:		February 2015
>>>>>>>>>> +KernelVersion:	3.20
>>>>>>>>>> +Contact:	Jacek Anaszewski <j.anaszewski@samsung.com>
>>>>>>>>>> +Description:	read/write
>>>>>>>>>> +		Space separated list of LEDs available for flash strobe
>>>>>>>>>> +		synchronization, displayed in the format:
>>>>>>>>>> +
>>>>>>>>>> +		led1_id.led1_name led2_id.led2_name led3_id.led3_name etc.
>>>>>>>>>
>>>>>>>>> Multiple values per file, with all the problems we had in /proc. I
>>>>>>>>> assume led_id is an integer? What prevents space or dot in led name?
>>>>>>>>
>>>>>>>> Very good point. How about using a newline instead? That'd be a little bit
>>>>>>>> easier to parse, too.
>>>>>>>
>>>>>>> No, please make it one value per-file, which is what sysfs requires.
>>>>>>
>>>>>> The purpose of this attribute is only to provide an information about
>>>>>> the range of valid identifiers that can be written to the
>>>>>> flash_sync_strobe attribute. Wouldn't splitting this to many attributes
>>>>>> be an unnecessary inflation of sysfs files?
>>>>>
>>>>> Ok a list of allowed values to write is acceptable, as long as it is not
>>>>> hard to parse and always is space separated.
>>>>
>>>> Well, this one is list of LED numbers and LED names.
>>>
>>> It'd be nice if these names would match the V4L2 sub-device names. We don't
>>
>>  From the discussion on IRC it turned out that one of components of the
>> V4L2 sub-device name will be a media controller identifier.
>>
>> This implies that if support for V4L2 Flash devices will be turned off
>> in the kernel config the LED name will have to differ from the case
>> when the support is on. I think that this is undesired.
>
> Well... the media entity names need to be unique in the Media controller
> device. In the future we may have just a single Media controller device in
> the system, possibly depending on the driver so that some drivers can make
> use of that while some will have one on their own, mostly older drivers that
> is.
>
> I think what Laurent proposed to refer to an ID was the hardware device, so
> that in the future the hardware device / media entity name would be unique.
> That'd be a much more manageable and easier to verify for correctness than a
> global name that is defined by a driver.
>
> Older drivers wouldn't be affected. Old user space might not work with new
> drivers without taking the hwdev field into account.
>
> So the hwdev (name or ID) would be part of the struct media_entity_desc, but
> *not* a part of the name field in the struct.

The origin of this discussion was your statement:

 >>> It'd be nice if these names would match the V4L2 sub-device names.
 >>> We don't have any rules for them other than they must be unique,
 >>> and there's the established practice that an I2C address follows
 >>> the component name.

Has the naming scheme been already agreed?


> Cc Laurent and Hans.
>
>>> have any rules for them other than they must be unique, and there's the
>>> established practice that an I2C address follows the component name. We're
>>> about to discuss the matter on Monday on #v4l (11:00 Finnish time), but I
>>> don't think we can generally guarantee any of the names won't have spaces.
>>
>>> Separate files, then?
>>
>> I tried to split this to separate files but it turned out to be awkward.
>> Since the number of LEDs to synchronize can vary from device to device,
>> the number of the related sysfs attributes cannot be fixed.
>>
>> As far as I know allocating the sysfs attributes dynamically is unsafe,
>
> How so? I think most implementations use static variables because that's all
> they need.

I was thinking about the need for freeing the memory allocated for
attributes on remove and races with udev.

>> and thus the maximum allowed number of synchronized LEDs would have to
>> be agreed on for the whole led-class-flash and the relevant number of
>> similar struct attribute instances and related callbacks would have to
>> be created statically for every LED Flash class device, no matter if
>> a device would need them.
>
> This could be handled in the framework instead.
>
>> Of course the relevant sysfs group could be initialized only with
>> the needed number of sync leds attributes, but still this is less
>> than optimal design.
>>
>> It looks like this interface indeed doesn't fit for sysfs.
>>
>> I am leaning towards removing the support for synchronized flash LEDs
>> from the LED subsystem entirely and leave it only to V4L2.
>
> Perfectly fine for me as well, I guess the synchronised strobe has mostly
> use on V4L2. It could always be added later on if needed.

I think that as I have it implemented and tested for LED subsystem
it will cost not too much to just move it to v4l2-flash sub-device.

-- 
Best Regards,
Jacek Anaszewski

  reply	other threads:[~2015-03-02 13:56 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18 16:20 [PATCH/RFC v11 00/20] LED / flash API integration Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 01/20] leds: flash: document sysfs interface Jacek Anaszewski
2015-02-18 22:47   ` 0.led_name 2.other.led.name in /sysfs " Pavel Machek
2015-02-19  8:26     ` Jacek Anaszewski
2015-02-19  9:02     ` Sakari Ailus
2015-02-19 21:40       ` Greg KH
2015-02-20  7:56         ` Jacek Anaszewski
2015-02-20  8:16           ` Pavel Machek
2015-02-20  8:55             ` Jacek Anaszewski
2015-02-20 15:36           ` Greg KH
2015-02-20 16:15             ` Jacek Anaszewski
2015-02-21 19:42               ` Greg KH
2015-02-20 20:57             ` Pavel Machek
2015-02-21 10:57               ` Sakari Ailus
2015-02-21 19:42                 ` Greg KH
2015-02-27 14:34                 ` Jacek Anaszewski
2015-03-02 12:54                   ` Sakari Ailus
2015-03-02 13:56                     ` Jacek Anaszewski [this message]
2015-03-02 15:12                     ` Pavel Machek
2015-02-18 16:20 ` [PATCH/RFC v11 02/20] leds: flash: Improve sync strobe related sysfs attributes Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 03/20] Documentation: leds: Add description of LED Flash class extension Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 04/20] dt-binding: leds: Add common LED DT bindings macros Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 05/20] mfd: max77693: Modify flash cell name identifiers Jacek Anaszewski
2015-02-19  9:21   ` Sakari Ailus
2015-02-18 16:20 ` [PATCH/RFC v11 06/20] mfd: max77693: Remove struct max77693_led_platform_data Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 07/20] mfd: max77693: add TORCH_IOUT_MASK macro Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 08/20] mfd: max77693: Adjust FLASH_EN_SHIFT and TORCH_EN_SHIFT macros Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 09/20] leds: Add support for max77693 mfd flash cell Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 10/20] DT: Add documentation for the mfd Maxim max77693 Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 11/20] leds: Add driver for AAT1290 current regulator Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 12/20] of: Add Skyworks Solutions, Inc. vendor prefix Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 13/20] DT: Add documentation for the Skyworks AAT1290 Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 14/20] exynos4-is: Add support for v4l2-flash subdevs Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 15/20] v4l2-ctrls: Add V4L2_CID_FLASH_SYNC_STROBE control Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 16/20] media: Add registration helpers for V4L2 flash sub-devices Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 17/20] Documentation: leds: Add description of v4l2-flash sub-device Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 18/20] DT: Add documentation for exynos4-is 'flashes' property Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 19/20] leds: max77693: add support for V4L2 Flash sub-device Jacek Anaszewski
2015-02-18 16:20 ` [PATCH/RFC v11 20/20] leds: 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=54F46C0D.3090205@samsung.com \
    --to=j.anaszewski@samsung.com \
    --cc=cooloney@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=greg@kroah.com \
    --cc=hverkuil@xs4all.nl \
    --cc=kyungmin.park@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).