orion5x and GPIO blink question

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Apr 21 03:57:12 EDT 2010


Hi folks !

While fixing up the dns-323 support for rev C I noticed something fishy
when you use leds-gpio with the "set_blink" callback like the dns323
code does for using HW blinking.

The problem is that there's pretty much no clean way to turn the
blinking off via this API. It sucks, ie, it's a bug in the leds
subsystem imho, blinking should have it's own enable/disable argument
rather than relying on set_brightness() to stop blinking but that's how
they did it so there's no point arguing about it.

Now, one way to fix that would be to have the orion5x GPIO stuff simply
clear the blink bit whenever orion_gpio_set_value() is called.

Would that break any known setup ? (Other than slightly slowing down
the GPIO accesses which might be undesirable).

Another solution might be to be a bit smarter and have leds-gpio
implement a different set_blink() function that takes an additional
enable/disable argument, and would call that whenever set_brightness is
called on a currently blinking GPIO.

But that means fixing all the in-tree users of leds-gpio set_blink()
callback (I haven't counted, but it should be easily greppable).

Opinions ?

Cheers,
Ben.





More information about the linux-arm-kernel mailing list