[PATCH 03/17] mach-realview and mach-versatile: retire custom LED code

Bryan Wu bryan.wu at canonical.com
Wed Aug 17 07:06:40 EDT 2011


On Wed, Aug 3, 2011 at 7:59 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Wed, Aug 03, 2011 at 05:34:35PM +0800, Bryan Wu wrote:
>> From: Linus Walleij <linus.walleij at linaro.org>
>>
>> This replaces the custom LED trigger code in mach-realview with
>> some overarching platform code for the plat-versatile family that
>> will lock down LEDs 2 thru 5 for CPU activity indication. The
>> day we have 8 core ARM systems the plat-versatile code will have
>> to become more elaborate.
>>
>> Tested on RealView PB11MPCore by invoking four different CPU
>> hogs (yes > /dev/null&) and see the LEDs go on one at a time.
>> They all go off as the hogs are killed. Tested on the PB1176
>> as well - just one activity led (led 2) goes on and off with
>> CPU activity.
>>
>> (bryan.wu at canonical.com: use ledtrig-cpu instead of ledtrig-arm-cpu)
>
> This is broken.  More than that, this LEDS stuff is broken.
>
> With CONFIG_NEW_LEDS=y and CONFIG_LEDS_CLASS=n,
>

Actually, I don't see any user of this config, either. And all the
LEDS stuffs depend on LEDS_CLASS.

Can we just simply select LEDS_CLASS when CONFIG_NEW_LEDS=y?

---
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index b444cc3..5ae3ef7 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -7,6 +7,7 @@ config LEDS_GPIO_REGISTER

 menuconfig NEW_LEDS
        bool "LED Support"
+       select LEDS_CLASS
        help
          Say Y to enable Linux LED support.  This allows control of supported
          LEDs from both userspace and optionally, by kernel events (triggers).
---

Richard, could you please give some comments?

-Bryan

>  CC      arch/arm/plat-versatile/leds.o
> arch/arm/plat-versatile/leds.c: In function 'versatile_leds_init':
> arch/arm/plat-versatile/leds.c:91: error: 'struct led_classdev' has no member named 'trigger_data'
>
> I wasn't offered LEDS_TRIGGERS to select.  It looks like this leds
> stuff really is broken:
>
> config LEDS_CLASS
>        bool "LED Class Support"
>        help
>          This option enables the led sysfs class in /sys/class/leds.  You'll
>          need this to do anything useful with LEDs.  If unsure, say N.
>
> Okay, this says its for sysfs support.  But then:
>
> config LEDS_TRIGGERS
>        bool "LED Trigger support"
>        depends on LEDS_CLASS
>        help
>          This option enables trigger support for the leds class.
>          These triggers allow kernel events to drive the LEDs and can
>          be configured via sysfs. If unsure, say Y.
>
> you can only have LED triggers if you have LED class support.  So what's
> the point of NEW_LEDS=y and LEDS_CLASS=n?  From those descriptions,
> LEDS_CLASS should control the sysfs interfaces, and LEDS_TRIGGERS should
> control the kernel internal interfaces _independently_.
>
> As things stand, this looks completely crazy.  So no, I'm not acking these
> patches until the LEDs layer gets a modicum of sanity.
>



-- 
Bryan Wu <bryan.wu at canonical.com>
Kernel Developer    +86.138-1617-6545 Mobile
Ubuntu Kernel Team
Canonical Ltd.      www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com



More information about the linux-arm-kernel mailing list