Add keyboard blink driver
authorAndi Kleen <ak@novell.com>
Tue, 8 May 2007 07:29:55 +0000 (00:29 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:15:10 +0000 (11:15 -0700)
Simple driver that blinks the keyboard LEDs when loaded.  Useful for
checking that the kernel is still alive or for crashdumping

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/misc/blink.c [new file with mode: 0644]

index a3c525b2616aafeaa855b03377e0f4ee4937cdc5..bfb02c1a45ae063200f83cf8fbdc4772c7ac7e86 100644 (file)
@@ -178,4 +178,13 @@ config THINKPAD_ACPI_BAY
 
          If you are not sure, say Y here.
 
+config BLINK
+       tristate "Keyboard blink driver"
+       help
+         Driver that when loaded will blink the keyboard LEDs continuously.
+         This is useful for debugging and for kernels that cannot necessarily
+         output something to the screen like kexec kernels to give the user
+         a visual indication that the kernel is doing something.
+
+
 endmenu
index e325164591380bd93011840757808b3927e26eb1..ece6baf76bc7b9b41696171275d83929bfcaf3f5 100644 (file)
@@ -7,6 +7,7 @@ obj-$(CONFIG_IBM_ASM)           += ibmasm/
 obj-$(CONFIG_HDPU_FEATURES)    += hdpuftrs/
 obj-$(CONFIG_MSI_LAPTOP)     += msi-laptop.o
 obj-$(CONFIG_ASUS_LAPTOP)     += asus-laptop.o
+obj-$(CONFIG_BLINK)            += blink.o
 obj-$(CONFIG_LKDTM)            += lkdtm.o
 obj-$(CONFIG_TIFM_CORE)        += tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)        += tifm_7xx1.o
diff --git a/drivers/misc/blink.c b/drivers/misc/blink.c
new file mode 100644 (file)
index 0000000..634431c
--- /dev/null
@@ -0,0 +1,27 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/timer.h>
+#include <linux/jiffies.h>
+
+static void do_blink(unsigned long data);
+
+static DEFINE_TIMER(blink_timer, do_blink, 0 ,0);
+
+static void do_blink(unsigned long data)
+{
+       static long count;
+       if (panic_blink)
+               panic_blink(count++);
+       blink_timer.expires = jiffies + msecs_to_jiffies(1);
+       add_timer(&blink_timer);
+}
+
+static int blink_init(void)
+{
+       printk(KERN_INFO "Enabling keyboard blinking\n");
+       do_blink(0);
+       return 0;
+}
+
+module_init(blink_init);
+