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.
Signed-off-by: Zhang Bo <redacted>
---
drivers/leds/trigger/ledtrig-heartbeat.c | 31 -------------------------------
1 file changed, 31 deletions(-)
From: Pavel Machek <hidden> Date: 2017-06-13 07:31:24
On Tue 2017-06-13 10:39:20, Zhang Bo wrote:
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.
Signed-off-by: Zhang Bo <redacted>
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
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.
Signed-off-by: Zhang Bo <redacted>
OK I was stupid, lesson learned.
Reviewed-by: Linus Walleij <redacted>
Yours,
Linus Walleij
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.
Signed-off-by: Zhang Bo <redacted>
---
drivers/leds/trigger/ledtrig-heartbeat.c | 31 -------------------------------
1 file changed, 31 deletions(-)
@@ -201,10 +176,6 @@ static int heartbeat_panic_notifier(struct notifier_block *nb,returnNOTIFY_DONE;}-staticstructnotifier_blockheartbeat_pm_nb={-.notifier_call=heartbeat_pm_notifier,-};-staticstructnotifier_blockheartbeat_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);}returnrc;}staticvoid__exitheartbeat_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:
Fixes: 5ab92a7cb82c ("leds: handle suspend/resume in heartbeat trigger")
and applied to the fixes-for-4.12-rc6 branch of linux-leds.git.
--
Best regards,
Jacek Anaszewski
From: Pavel Machek <hidden> Date: 2017-07-13 12:03:34
On Tue 2017-06-13 11:35:22, Linus Walleij wrote:
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
quoted
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.
Signed-off-by: Zhang Bo <redacted>
OK I was stupid, lesson learned.
Reviewed-by: Linus Walleij <redacted>
On Thu, Jul 13, 2017 at 2:03 PM, Pavel Machek [off-list ref] wrote:
On Tue 2017-06-13 11:35:22, Linus Walleij wrote:
quoted
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
quoted
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.
Signed-off-by: Zhang Bo <redacted>
OK I was stupid, lesson learned.
Reviewed-by: Linus Walleij <redacted>
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
Hi Zhang,
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
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.
Signed-off-by: Zhang Bo <redacted>
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
From: Pavel Machek <hidden> Date: 2017-08-23 19:34:19
Hi!
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
quoted
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.
Signed-off-by: Zhang Bo <redacted>
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.
On Wed, Aug 23, 2017 at 9:34 PM, Pavel Machek [off-list ref] wrote:
quoted
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
quoted
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.
Signed-off-by: Zhang Bo <redacted>
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.
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
On Fri, Aug 25, 2017 at 10:23:11AM +0200, Geert Uytterhoeven wrote:
On Wed, Aug 23, 2017 at 9:34 PM, Pavel Machek [off-list ref] wrote:
quoted
quoted
On Tue, Jun 13, 2017 at 4:39 AM, Zhang Bo [off-list ref] wrote:
quoted
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.
Signed-off-by: Zhang Bo <redacted>
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.
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!