Re: New problems after f363a870eaef ("leds: core: use deferred probing if default trigger isn't available yet")

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

 



Hi Rafał,

Thanks for this detailed report and analysis.
I've dropped the patch in question.

I think that Heiner mentioned his problem in the commit
message - the situation when the trigger to be set is not
yet registered is silently ignored.

Probably he solution would be adding dev_warn() (?)
in led_trigger_set_default() when no trigger is matched.

Best regards,
Jacek Anaszewski

On 03/08/2017 10:13 AM, Rafał Miłecki wrote:
> Hi,
> 
> I backported commit f363a870eaef ("leds: core: use deferred probing if
> default trigger isn't available yet") to my standard kernel and
> noticed some problems when using it.
> 
> First of all my LEDs stopped working despite having all triggers
> enabled. It has appeared to be caused by my DTS files using invalid
> "default-off" trigger. I already sent patches fixing this:
> [1/2] ARM: dts: BCM53573: Don't use nonexistent "default-off" LED trigger
> [2/2] ARM: dts: BCM5301X: Don't use nonexistent "default-off" LED trigger
> but maybe there are more devices regressed by this change? Does it
> count as breaking DT files compatibility?
> 
> Related problem is that with this change user won't get any LED
> working even if there is only a single trigger missing. People may
> decide not to use some triggers for various reasons. Let's say I don't
> care about USB support and I disable whole USB subsystem including
> "usbport" trigger. If my DTS file includes "userport" default trigger
> for any LED, I won't get any LED registered at all. I'd definitely
> want to have other LEDs working.
> 
> Finally this commit introduces delay when e.g. mixing built-in with
> modules. Thanks to DTS files a lot of devices can share a single
> kernel. I don't want to bloat it (the kernel) so I keep subsystem
> modules & extra triggers as modules. I built-in leds-gpio and
> ledtrig-default-on as they are used by 99% of devices and are needed
> early to indicate device/kernel is alive. With the commit in question
> LEDs don't get registered/enabled until are triggers are ready and
> some triggers need to be loaded as modules from rootfs. This delays
> settings LEDs to some initial state indicating e.g. device is powered
> on.
> 
> Because of these problems I'd like to suggest reverting that commit
> and look for a different solution.
> 
> Unfortunately first of all I need to ask for a better explanation of
> the problem. I read commit description but this load order doesn't
> make sense to me. If you take a look at led_trigger_register, you'll
> see it iterates over registered LEDs and enables just-loaded trigger
> for these using it as default one. I also just tested this feature and
> it works as expected for me. I loaded ledtrig-timer.ko and LED with
> linux,default-trigger = "timer" started blinking nicely!
> 
> Heiner: can you describe what exactly was a problem for you? Why you
> needed deffer solution and why you decided to keep setting trigger in
> led_trigger_register function? They seems like 2 competing solutions
> of the same problem.
> 



[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