Re: [PATCH RFC] leds: Add support for per-LED device triggers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 4 Jul 2020 14:59:00 +0200
Pavel Machek <pavel@xxxxxx> wrote:

> Hi!
> 
> > Some criticism to this approach to HW triggers:
> > - every hw trigger for each LED has to be registered via current
> > trigger API. This will grow code size and memory footprint once
> > this API is widely used
> > - one HW trigger can only master one LED device (via private_led
> >   member). So if I have, for example an ethernet switch with 8
> > ports, and each port has 2 LEDs, and each LED has 10 possible HW
> > triggering mechanisms, with your proposed API one would need to
> > register 8*2*10 = 160 triggers  
> 
> Well, code is simple, and so far I have seen 2 HW triggering
> mechanisms, not 10. Maybe we should have a function to regiter a hw
> trigger for a LED, so that internal implementation can be changed
> more easily.
> 
> Ondrej: You already have code using this, right? Can we get an
> example?
> 
> > I too have been thinking about an API for HW LED triggers, and I
> > tinkered with it a little. Some time ago I sent some emails, with
> > subjects:
> >   "RFC: LED hw triggering API"
> >   "about my trigger-sources work"  
> 
> Perhaps it is time to send them one more time, so Ondrej can say if it
> works for him/looks okay for him?
> 
> > My current thoughts about how HW LED triggers could work nicely is
> > as such:
> >   - these members (maybe with different names) shall be added to
> > struct led_classdev:
> >       available_hw_triggers()
> >         - shall return a NULL terminated list of HW trigger names
> >           available for this LED
> >       set_hw_trigger()
> >         - sets HW trigger for this LED. The LED triggering API shall
> >           call this method after previous LED trigger is unset. If
> >           called with NULL parameter, unsets HW trigger
> >       current_hw_trigger
> >         - name of the currently set HW LED trigger for this LED
> >   - the driver registering the LED cdev informs abouth the LED being
> >     capable of HW triggering - members available_hw_triggers and
> >     set_hw_trigger must be set
> >   - SW LED trigger and HW LED trigger are mutualy exclusive on one
> > LED
> >   - the trigger file in sysfs (/sys/class/leds/LED/trigger) shall
> > first list the available SW triggers, and then available hw
> > triggers for this LED, prefixed with "hw:"
> >     When written, if the written trigger name starts with "hw:",
> >     instead of setting SW trigger, a HW trigger is set via
> >     set_hw_trigger() method  
> 
> This does not sound bad, either.
> 
> Best regards,
> 								Pavel

Hi Pavel
I shall try to implement this and send a proposal within 2 weeks.
Marek



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux