From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jacek Anaszewski Subject: Re: [PATCH 1/3] leds: trigger: Introduce a kernel panic LED trigger Date: Wed, 30 Mar 2016 11:29:14 +0200 Message-ID: <56FB9C6A.2090402@samsung.com> References: <1459283749-22451-1-git-send-email-ezequiel@vanguardiasur.com.ar> <1459283749-22451-2-git-send-email-ezequiel@vanguardiasur.com.ar> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailout3.w1.samsung.com ([210.118.77.13]:37986 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750720AbcC3J3Y (ORCPT ); Wed, 30 Mar 2016 05:29:24 -0400 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O4U0076SICWI1A0@mailout3.w1.samsung.com> for linux-leds@vger.kernel.org; Wed, 30 Mar 2016 10:29:20 +0100 (BST) In-reply-to: <1459283749-22451-2-git-send-email-ezequiel@vanguardiasur.com.ar> Sender: linux-leds-owner@vger.kernel.org List-Id: linux-leds@vger.kernel.org To: Ezequiel Garcia Cc: linux-leds@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Richard Purdie , kgene@kernel.org, k.kozlowski@samsung.com Hi Ezequiel, Thanks for the patch. I've tested it on exynos4412-trats2 board with leds-aat1290 driver, by executing: echo "c" > /proc/sysrq-trigger I was able to notice the blinking then. Applied to the for-next branch of linux-leds.git. Thanks, Jacek Anaszewski On 03/29/2016 10:35 PM, Ezequiel Garcia wrote: > This commit introduces a new LED trigger which allows to configure > a LED to blink on a kernel panic (through panic_blink). > > Notice that currently the Openmoko FreeRunner (GTA02) mach code > sets panic_blink to blink a hard-coded LED. The new trigger is > meant to introduce a generic mechanism to achieve this. > > Signed-off-by: Ezequiel Garcia > --- > drivers/leds/trigger/Kconfig | 7 +++++++ > drivers/leds/trigger/Makefile | 1 + > drivers/leds/trigger/ledtrig-panic.c | 30 ++++++++++++++++++++++++++++++ > 3 files changed, 38 insertions(+) > create mode 100644 drivers/leds/trigger/ledtrig-panic.c > > diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig > index 5bda6a9b56bb..554f5bfbeced 100644 > --- a/drivers/leds/trigger/Kconfig > +++ b/drivers/leds/trigger/Kconfig > @@ -108,4 +108,11 @@ config LEDS_TRIGGER_CAMERA > This enables direct flash/torch on/off by the driver, kernel space. > If unsure, say Y. > > +config LEDS_TRIGGER_PANIC > + bool "LED Panic Trigger" > + depends on LEDS_TRIGGERS > + help > + This allows LEDs to be configured to blink on a kernel panic. > + If unsure, say Y. > + > endif # LEDS_TRIGGERS > diff --git a/drivers/leds/trigger/Makefile b/drivers/leds/trigger/Makefile > index 1abf48dacf7e..547bf5c80e52 100644 > --- a/drivers/leds/trigger/Makefile > +++ b/drivers/leds/trigger/Makefile > @@ -8,3 +8,4 @@ obj-$(CONFIG_LEDS_TRIGGER_CPU) += ledtrig-cpu.o > obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o > obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o > obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o > +obj-$(CONFIG_LEDS_TRIGGER_PANIC) += ledtrig-panic.o > diff --git a/drivers/leds/trigger/ledtrig-panic.c b/drivers/leds/trigger/ledtrig-panic.c > new file mode 100644 > index 000000000000..627b350c5ec3 > --- /dev/null > +++ b/drivers/leds/trigger/ledtrig-panic.c > @@ -0,0 +1,30 @@ > +/* > + * Kernel Panic LED Trigger > + * > + * Copyright 2016 Ezequiel Garcia > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + * > + */ > + > +#include > +#include > +#include > + > +static struct led_trigger *trigger; > + > +static long led_panic_blink(int state) > +{ > + led_trigger_event(trigger, state ? LED_FULL : LED_OFF); > + return 0; > +} > + > +static int __init ledtrig_panic_init(void) > +{ > + led_trigger_register_simple("panic", &trigger); > + panic_blink = led_panic_blink; > + return 0; > +} > +device_initcall(ledtrig_panic_init);