mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 22:38:04 +00:00
linux-mainline 3.2: shut down heartbeat LED on halt/reboot/panic
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
This commit is contained in:
committed by
Denys Dmytriyenko
parent
0b2c5e6de9
commit
0be62d6c0d
+67
@@ -0,0 +1,67 @@
|
||||
From d4369481800faa1ab93ab10c23626a5ce5fad5b5 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Holler <hol...@ahsoftware.de>
|
||||
Date: Wed, 25 Apr 2012 00:50:03 +0200
|
||||
Subject: [PATCH] leds: heartbeat: stop on shutdown, reboot or panic
|
||||
|
||||
A halted kernel should not show a heartbeat.
|
||||
|
||||
Signed-off-by: Alexander Holler <hol...@ahsoftware.de>
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
drivers/leds/ledtrig-heartbeat.c | 27 ++++++++++++++++++++++++++-
|
||||
1 files changed, 26 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c
|
||||
index 759c0bb..31c234c 100644
|
||||
--- a/drivers/leds/ledtrig-heartbeat.c
|
||||
+++ b/drivers/leds/ledtrig-heartbeat.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/leds.h>
|
||||
+#include <linux/reboot.h>
|
||||
#include "leds.h"
|
||||
|
||||
struct heartbeat_trig_data {
|
||||
@@ -101,13 +102,37 @@ static struct led_trigger heartbeat_led_trigger = {
|
||||
.deactivate = heartbeat_trig_deactivate,
|
||||
};
|
||||
|
||||
+static int heartbeat_reboot_notifier(struct notifier_block *nb,
|
||||
+ unsigned long code, void *unused)
|
||||
+{
|
||||
+ led_trigger_unregister(&heartbeat_led_trigger);
|
||||
+ return NOTIFY_DONE;
|
||||
+}
|
||||
+
|
||||
+static struct notifier_block heartbeat_reboot_nb = {
|
||||
+ .notifier_call = heartbeat_reboot_notifier,
|
||||
+};
|
||||
+
|
||||
+static struct notifier_block heartbeat_panic_nb = {
|
||||
+ .notifier_call = heartbeat_reboot_notifier,
|
||||
+};
|
||||
+
|
||||
static int __init heartbeat_trig_init(void)
|
||||
{
|
||||
- return led_trigger_register(&heartbeat_led_trigger);
|
||||
+ int rc = led_trigger_register(&heartbeat_led_trigger);
|
||||
+ if (!rc) {
|
||||
+ atomic_notifier_chain_register(&panic_notifier_list,
|
||||
+ &heartbeat_panic_nb);
|
||||
+ register_reboot_notifier(&heartbeat_reboot_nb);
|
||||
+ }
|
||||
+ return rc;
|
||||
}
|
||||
|
||||
static void __exit heartbeat_trig_exit(void)
|
||||
{
|
||||
+ unregister_reboot_notifier(&heartbeat_reboot_nb);
|
||||
+ atomic_notifier_chain_unregister(&panic_notifier_list,
|
||||
+ &heartbeat_panic_nb);
|
||||
led_trigger_unregister(&heartbeat_led_trigger);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
|
||||
Reference in New Issue
Block a user