Commit 2bcb1b7d authored by Linus Torvalds's avatar Linus Torvalds

Remove the blink driver

Yeah, we could have just disabled it, but there's work on a new one that
isn't as fundamentally broken, so there really doesn't seem to be any
point in keeping it around.

The recent timer cleanup broke the only valid use, and when I say
"valid", I obviously mean "totally broken".  So it's not like it works,
or really even can work in the current format that uses the unsafe
"panic" LED blinking routines..
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 190045d5
...@@ -187,13 +187,5 @@ config THINKPAD_ACPI_BAY ...@@ -187,13 +187,5 @@ config THINKPAD_ACPI_BAY
If you are not sure, say Y here. 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 endmenu
...@@ -7,7 +7,6 @@ obj-$(CONFIG_IBM_ASM) += ibmasm/ ...@@ -7,7 +7,6 @@ obj-$(CONFIG_IBM_ASM) += ibmasm/
obj-$(CONFIG_HDPU_FEATURES) += hdpuftrs/ obj-$(CONFIG_HDPU_FEATURES) += hdpuftrs/
obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o
obj-$(CONFIG_BLINK) += blink.o
obj-$(CONFIG_LKDTM) += lkdtm.o obj-$(CONFIG_LKDTM) += lkdtm.o
obj-$(CONFIG_TIFM_CORE) += tifm_core.o obj-$(CONFIG_TIFM_CORE) += tifm_core.o
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
......
#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_panic_event(struct notifier_block *blk,
unsigned long event, void *arg)
{
do_blink(0);
return 0;
}
static struct notifier_block blink_notify = {
.notifier_call = blink_panic_event,
};
static __init int blink_init(void)
{
printk(KERN_INFO "Enabling keyboard blinking\n");
atomic_notifier_chain_register(&panic_notifier_list, &blink_notify);
return 0;
}
static __exit void blink_remove(void)
{
del_timer_sync(&blink_timer);
atomic_notifier_chain_unregister(&panic_notifier_list, &blink_notify);
}
module_init(blink_init);
module_exit(blink_remove);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment