Commit 374d8015 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'led_fixes_for_4.12-rc6' of...

Merge tag 'led_fixes_for_4.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds

Pull LED fixes from Jacek Anaszewski:
 "Two LED fixes:

   - fix signal source assignment for leds-bcm6328

   - revert patch that intended to fix LED behavior on suspend but it
     had a side effect preventing suspend at all due to uevent being
     sent on trigger removal"

* tag 'led_fixes_for_4.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
  Revert "leds: handle suspend/resume in heartbeat trigger"
  leds: bcm6328: fix signal source assignment for leds 4 to 7
parents 19ea9d66 436c4c45
...@@ -242,7 +242,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg, ...@@ -242,7 +242,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
spin_lock_irqsave(lock, flags); spin_lock_irqsave(lock, flags);
val = bcm6328_led_read(addr); val = bcm6328_led_read(addr);
val |= (BIT(reg) << (((sel % 4) * 4) + 16)); val |= (BIT(reg % 4) << (((sel % 4) * 4) + 16));
bcm6328_led_write(addr, val); bcm6328_led_write(addr, val);
spin_unlock_irqrestore(lock, flags); spin_unlock_irqrestore(lock, flags);
} }
...@@ -269,7 +269,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg, ...@@ -269,7 +269,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
spin_lock_irqsave(lock, flags); spin_lock_irqsave(lock, flags);
val = bcm6328_led_read(addr); val = bcm6328_led_read(addr);
val |= (BIT(reg) << ((sel % 4) * 4)); val |= (BIT(reg % 4) << ((sel % 4) * 4));
bcm6328_led_write(addr, val); bcm6328_led_write(addr, val);
spin_unlock_irqrestore(lock, flags); spin_unlock_irqrestore(lock, flags);
} }
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include <linux/sched/loadavg.h> #include <linux/sched/loadavg.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/reboot.h> #include <linux/reboot.h>
#include <linux/suspend.h>
#include "../leds.h" #include "../leds.h"
static int panic_heartbeats; static int panic_heartbeats;
...@@ -163,30 +162,6 @@ static struct led_trigger heartbeat_led_trigger = { ...@@ -163,30 +162,6 @@ static struct led_trigger heartbeat_led_trigger = {
.deactivate = heartbeat_trig_deactivate, .deactivate = heartbeat_trig_deactivate,
}; };
static int heartbeat_pm_notifier(struct notifier_block *nb,
unsigned long pm_event, void *unused)
{
int rc;
switch (pm_event) {
case PM_SUSPEND_PREPARE:
case PM_HIBERNATION_PREPARE:
case PM_RESTORE_PREPARE:
led_trigger_unregister(&heartbeat_led_trigger);
break;
case PM_POST_SUSPEND:
case PM_POST_HIBERNATION:
case PM_POST_RESTORE:
rc = led_trigger_register(&heartbeat_led_trigger);
if (rc)
pr_err("could not re-register heartbeat trigger\n");
break;
default:
break;
}
return NOTIFY_DONE;
}
static int heartbeat_reboot_notifier(struct notifier_block *nb, static int heartbeat_reboot_notifier(struct notifier_block *nb,
unsigned long code, void *unused) unsigned long code, void *unused)
{ {
...@@ -201,10 +176,6 @@ static int heartbeat_panic_notifier(struct notifier_block *nb, ...@@ -201,10 +176,6 @@ static int heartbeat_panic_notifier(struct notifier_block *nb,
return NOTIFY_DONE; return NOTIFY_DONE;
} }
static struct notifier_block heartbeat_pm_nb = {
.notifier_call = heartbeat_pm_notifier,
};
static struct notifier_block heartbeat_reboot_nb = { static struct notifier_block heartbeat_reboot_nb = {
.notifier_call = heartbeat_reboot_notifier, .notifier_call = heartbeat_reboot_notifier,
}; };
...@@ -221,14 +192,12 @@ static int __init heartbeat_trig_init(void) ...@@ -221,14 +192,12 @@ static int __init heartbeat_trig_init(void)
atomic_notifier_chain_register(&panic_notifier_list, atomic_notifier_chain_register(&panic_notifier_list,
&heartbeat_panic_nb); &heartbeat_panic_nb);
register_reboot_notifier(&heartbeat_reboot_nb); register_reboot_notifier(&heartbeat_reboot_nb);
register_pm_notifier(&heartbeat_pm_nb);
} }
return rc; return rc;
} }
static void __exit heartbeat_trig_exit(void) static void __exit heartbeat_trig_exit(void)
{ {
unregister_pm_notifier(&heartbeat_pm_nb);
unregister_reboot_notifier(&heartbeat_reboot_nb); unregister_reboot_notifier(&heartbeat_reboot_nb);
atomic_notifier_chain_unregister(&panic_notifier_list, atomic_notifier_chain_unregister(&panic_notifier_list,
&heartbeat_panic_nb); &heartbeat_panic_nb);
......
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