] Revert "leds: handle suspend/resume in heartbeat trigger"
Subsystems (2)
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
This reverts commit 5ab92a7cb82c66bf30685583a38a18538e3807db.
System cannot enter suspend mode because of heartbeat led trigger. In autosleep_wq, try_to_suspend function will try to enter suspend mode in specific period. it will get wakeup_count then call pm_notifier chain callback function and freeze processes. Heartbeat_pm_notifier is called and it call led_trigger_unregister to change the trigger of led device to none. It will send uevent message and the wakeup source count changed. As wakeup_count changed, suspend will abort.
--- drivers/leds/trigger/ledtrig-heartbeat.c | 31 ------------------------------- 1 file changed, 31 deletions(-)
drivers/leds/trigger/ledtrig-heartbeat.c +0 -31
@@ -20,7 +20,6 @@#include <linux/sched/loadavg.h> #include <linux/leds.h> #include <linux/reboot.h> -#include <linux/suspend.h> #include "../leds.h" static int panic_heartbeats;
@@ -163,30 +162,6 @@ static void heartbeat_trig_deactivate(struct led_classdev *led_cdev) .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,unsigned long code,void *unused) {
@@ -201,10 +176,6 @@ static int heartbeat_panic_notifier(struct notifier_block *nb,return NOTIFY_DONE ; } -static struct notifier_block heartbeat_pm_nb = { - .notifier_call = heartbeat_pm_notifier, -}; -static struct notifier_block heartbeat_reboot_nb = { .notifier_call = heartbeat_reboot_notifier, };
@@ -221,14 +192,12 @@ static int __init heartbeat_trig_init(void)atomic_notifier_chain_register (&panic_notifier_list, &heartbeat_panic_nb);register_reboot_notifier (&heartbeat_reboot_nb); -register_pm_notifier (&heartbeat_pm_nb); }return rc; } static void __exit heartbeat_trig_exit(void) { -unregister_pm_notifier (&heartbeat_pm_nb);unregister_reboot_notifier (&heartbeat_reboot_nb);atomic_notifier_chain_unregister (&panic_notifier_list, &heartbeat_panic_nb);
Signature · 1 line
1.9.1
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Quoted 11 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.
Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>
Yes, this makes sense. Turning led off should be done at driver level.
As this fixes a regression, it would be kind of nice to get it to v4.12...
Signature · 9 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170613/75079f2d/attachment.sig>
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
In reply to Zhang BoQuoted 11 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.
Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>
OK I was stupid, lesson learned.
Yours,
Linus Walleij
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Quoted 13 lines · Linus Walleij
Quoted 11 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.
Quoted 4 lines
Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>OK I was stupid, lesson learned.
Reviewed-by Linus Walleij <[email protected]>
You may still want to submit patch to turn the LED off over suspend for your platform...
Signature · 9 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170713/26983c1c/attachment-0001.sig>
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Quoted 14 lines · Pavel Machek
Quoted 13 lines · Linus Walleij
Quoted 11 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>OK I was stupid, lesson learned.
Reviewed-by Linus Walleij <[email protected]>You may still want to submit patch to turn the LED off over suspend for your platform...
I think it would make more sense to have the LED subsystem handle that. Given that it already keeps track of LED_SUSPENDED in a special flag.
Probably optionally, like LEDs can opt in to be turned off during suspend.
Yours,
Linus Walleij
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
In reply to Zhang BoHi Bo,
Quoted 76 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.Signed-off-by Zhang Bo <[email protected]>--- drivers/leds/trigger/ledtrig-heartbeat.c | 31 ------------------------------- 1 file changed, 31 deletions(-)drivers/leds/trigger/ledtrig-heartbeat.c +0
-30@@ -20,7 +20,6 @@#include <linux/sched/loadavg.h> #include <linux/leds.h> #include <linux/reboot.h> -#include <linux/suspend.h> #include "../leds.h" static int panic_heartbeats;@@ -163,30 +162,6 @@ static void heartbeat_trig_deactivate(struct led_classdev *led_cdev) .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,unsigned long code,void *unused) {@@ -201,10 +176,6 @@ static int heartbeat_panic_notifier(struct notifier_block *nb,return NOTIFY_DONE ; } -static struct notifier_block heartbeat_pm_nb = { - .notifier_call = heartbeat_pm_notifier, -}; -static struct notifier_block heartbeat_reboot_nb = { .notifier_call = heartbeat_reboot_notifier, };@@ -221,14 +192,12 @@ static int __init heartbeat_trig_init(void)atomic_notifier_chain_register (&panic_notifier_list, &heartbeat_panic_nb);register_reboot_notifier (&heartbeat_reboot_nb); -register_pm_notifier (&heartbeat_pm_nb);
drivers/leds/trigger/ledtrig-heartbeat.c static int __init heartbeat_trig_init(void) · line 203
Quoted 10 lines
drivers/leds/trigger/ledtrig-heartbeat.c +0
-1}return rc; } static void __exit heartbeat_trig_exit(void) { -unregister_pm_notifier (&heartbeat_pm_nb);unregister_reboot_notifier (&heartbeat_reboot_nb);atomic_notifier_chain_unregister (&panic_notifier_list, &heartbeat_panic_nb);
Thanks for the patch.
Added tag:
and applied to the fixes-for-4.12-rc6 branch of linux-leds.git.
Signature · 2 lines
Best regards, Jacek Anaszewski
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
In reply to Zhang BoHi Zhang,
Quoted 11 lines · Zhang Bo
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.
Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>
While investigating an heartbeat LED issue in v4.9.40-ltsi, I stumpled on this revert (commit 436c4c45b5b9562b ("Revert "leds: handle suspend/resume in heartbeat trigger"") in v4.12-rc6), which was not backported to v4.9 (yet).
Interestingly, while running v4.9.x on r8a7791/koelsch with an LED configured for heartbeat, I can actually suspend the system using s2ram. However, after system resume the heartbeat LED no longer flashes. /sys/class/leds/LED6/trigger shows the trigger is still "none", and thus wasn't restored to "heartbeat" by the notifier.
There's no "could not re-register heartbeat trigger" message printed.
Backporting the revert fixes this.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Hi!
Quoted 18 lines · Zhang Bo
Quoted 11 lines
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>While investigating an heartbeat LED issue in v4.9.40-ltsi, I stumpled on this revert (commit
436c4c45b5b9562b("Revert "leds: handle suspend/resume in heartbeat trigger"") in v4.12-rc6), which was not backported to v4.9 (yet).
Quoted 8 lines
Interestingly, while running v4.9.x on r8a7791/koelsch with an LED configured for heartbeat, I can actually suspend the system using s2ram. However, after system resume the heartbeat LED no longer flashes.
/sys/class/leds/LED6/triggershows the trigger is still "none", and thus wasn't restored to "heartbeat" by the notifier.
There's no "could not re-register heartbeat trigger" message printed.Backporting the revert fixes this.
You have my Acked-by: if you want to submit this to some -stable kernels...
Pavel
Signature · 9 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170823/12e18239/attachment.sig>
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Quoted 25 lines · Pavel Machek
Quoted 25 lines · Zhang Bo
Quoted 11 lines
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>While investigating an heartbeat LED issue in v4.9.40-ltsi, I stumpled on this revert (commit
436c4c45b5b9562b("Revert "leds: handle suspend/resume in heartbeat trigger"") in v4.12-rc6), which was not backported to v4.9 (yet).Interestingly, while running v4.9.x on r8a7791/koelsch with an LED configured for heartbeat, I can actually suspend the system using s2ram. However, after system resume the heartbeat LED no longer flashes.
/sys/class/leds/LED6/triggershows the trigger is still "none", and thus wasn't restored to "heartbeat" by the notifier.
There's no "could not re-register heartbeat trigger" message printed.
Quoted 4 lines
Quoted 1 line
Backporting the revert fixes this.
You have my Acked-by: if you want to submit this to some -stable kernels...
Thank you!
Greg: Can you please queue 436c4c45b5b9562b ("Revert "leds: handle suspend/resume in heartbeat trigger"") for v4.9.x or v4.9-ltsi? Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
PATCH 1/1 ] Revert "leds: handle suspend/resume in heartbeat trigger"
Quoted 28 lines · Geert Uytterhoeven
Quoted 27 lines · Pavel Machek
Quoted 26 lines · Zhang Bo
Quoted 11 lines
This reverts commit
5ab92a7cb82c66bf30685583a38a18538e3807db.System cannot enter suspend mode because of heartbeat led trigger. In
autosleep_wq,try_to_suspendfunction will try to enter suspend mode in specific period. it will getwakeup_countthen callpm_notifierchain callback function and freeze processes.Heartbeat_pm_notifieris called and it callled_trigger_unregisterto change the trigger of led device to none. It will send uevent message and the wakeup source count changed. Aswakeup_countchanged, suspend will abort.Quoted 1 line
Signed-off-by Zhang Bo <[email protected]>While investigating an heartbeat LED issue in v4.9.40-ltsi, I stumpled on this revert (commit
436c4c45b5b9562b("Revert "leds: handle suspend/resume in heartbeat trigger"") in v4.12-rc6), which was not backported to v4.9 (yet).Interestingly, while running v4.9.x on r8a7791/koelsch with an LED configured for heartbeat, I can actually suspend the system using s2ram. However, after system resume the heartbeat LED no longer flashes.
/sys/class/leds/LED6/triggershows the trigger is still "none", and thus wasn't restored to "heartbeat" by the notifier.
There's no "could not re-register heartbeat trigger" message printed.Backporting the revert fixes this.
Quoted 8 lines
Quoted 2 lines
You have my Acked-by: if you want to submit this to some -stable kernels...
Thank you!
Greg: Can you please queue
436c4c45b5b9562b("Revert "leds: handle suspend/resume in heartbeat trigger"") for v4.9.x or v4.9-ltsi? Thanks!
Now applied, thanks.
greg k-h