Commit 24eee627 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds

Pull leds fix from Bryan Wu:
 "Fix for heartbeat led trigger driver"

* 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
  leds: heartbeat: fix bug on panic
parents 5eecb9cc fb31fbeb
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#include <linux/reboot.h> #include <linux/reboot.h>
#include "leds.h" #include "leds.h"
static int panic_heartbeats;
struct heartbeat_trig_data { struct heartbeat_trig_data {
unsigned int phase; unsigned int phase;
unsigned int period; unsigned int period;
...@@ -34,6 +36,11 @@ static void led_heartbeat_function(unsigned long data) ...@@ -34,6 +36,11 @@ static void led_heartbeat_function(unsigned long data)
unsigned long brightness = LED_OFF; unsigned long brightness = LED_OFF;
unsigned long delay = 0; unsigned long delay = 0;
if (unlikely(panic_heartbeats)) {
led_set_brightness(led_cdev, LED_OFF);
return;
}
/* acts like an actual heart beat -- ie thump-thump-pause... */ /* acts like an actual heart beat -- ie thump-thump-pause... */
switch (heartbeat_data->phase) { switch (heartbeat_data->phase) {
case 0: case 0:
...@@ -111,12 +118,19 @@ static int heartbeat_reboot_notifier(struct notifier_block *nb, ...@@ -111,12 +118,19 @@ static int heartbeat_reboot_notifier(struct notifier_block *nb,
return NOTIFY_DONE; return NOTIFY_DONE;
} }
static int heartbeat_panic_notifier(struct notifier_block *nb,
unsigned long code, void *unused)
{
panic_heartbeats = 1;
return NOTIFY_DONE;
}
static struct notifier_block heartbeat_reboot_nb = { static struct notifier_block heartbeat_reboot_nb = {
.notifier_call = heartbeat_reboot_notifier, .notifier_call = heartbeat_reboot_notifier,
}; };
static struct notifier_block heartbeat_panic_nb = { static struct notifier_block heartbeat_panic_nb = {
.notifier_call = heartbeat_reboot_notifier, .notifier_call = heartbeat_panic_notifier,
}; };
static int __init heartbeat_trig_init(void) static int __init heartbeat_trig_init(void)
......
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