[[PATCH]] Revert "leds: handle suspend/resume in heartbeat trigger"
Jacek Anaszewski
jacek.anaszewski at gmail.com
Tue Jun 13 11:44:50 PDT 2017
Hi Bo,
On 06/13/2017 04:39 AM, 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 <bo.zhang at nxp.com>
> ---
> drivers/leds/trigger/ledtrig-heartbeat.c | 31 -------------------------------
> 1 file changed, 31 deletions(-)
>
> diff --git a/drivers/leds/trigger/ledtrig-heartbeat.c b/drivers/leds/trigger/ledtrig-heartbeat.c
> index afa3b40..e95ea65 100644
> --- a/drivers/leds/trigger/ledtrig-heartbeat.c
> +++ b/drivers/leds/trigger/ledtrig-heartbeat.c
> @@ -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);
>
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
More information about the linux-arm-kernel
mailing list