From: pavel@ucw.cz (Pavel Machek)
To: linux-arm-kernel@lists.infradead.org
Subject: [[PATCH]] drivers: leds/trigger: system cannot enter suspend
Date: Tue, 6 Jun 2017 22:34:05 +0200 [thread overview]
Message-ID: <20170606203405.GC32171@amd> (raw)
In-Reply-To: <8afffd09-cb1f-d080-ef4a-ecaa089ad470@ti.com>
On Tue 2017-06-06 15:19:23, Grygorii Strashko wrote:
>
>
> On 06/06/2017 03:05 PM, Jacek Anaszewski wrote:
> > On 06/06/2017 09:25 PM, Pavel Machek wrote:
> >> On Tue 2017-06-06 10:36:36, Zhang Bo wrote:
> >>> 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
> >>
> >> Why is heartbeat_pm_notifier calling led_trigger_unregister? That
> >> sounds like a bug.
> >
> > I suggest using git blame. The commit message adding this code is pretty
> > informative.
> >
>
> In my opinion original commit do not contain ehough info about root cause
> of the problem (commit 5ab92a7cb "leds: handle suspend/resume in heartbeat trigger")
>
> "The following phenomena was observed: when suspending the
> system, sometimes the heartbeat LED was left on, glowing and
> wasting power while the rest of the system is asleep, also
> disturbing power dissapation measures on the odd suspend
> cycle when it's left on.
> "
>
> But why is this happen? In general, leds expected to be switched off during suspend
> from led_classdev_suspend() which sets LED_SUSPENDED and so blocks
> led_set_brightness_nosleep() and led_set_brightness_sync().
>
> I think, there was some race between led_classdev_suspend() and
> set_brightness_work and led_heartbeat_function() which is timer callback.
>
> So, In my opinion, real solution is to remove heartbeat_pm_notifier() and ensure
> that LED_SUSPENDED flag is processed correctly during suspend. Another option could be
> to use syscore_ops as it's done in ledtrig-cpu.c.
Agreed. LED staying on is not good enough reason to do
led_trigger_unregister() and then add more suspend/resume code to make
sure it does not break suspend.
Pavel
--
(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/20170606/c3778c9a/attachment.sig>
next prev parent reply other threads:[~2017-06-06 20:34 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-06 2:36 [[PATCH]] drivers: leds/trigger: system cannot enter suspend Zhang Bo
2017-06-06 19:25 ` Pavel Machek
2017-06-06 20:05 ` Jacek Anaszewski
2017-06-06 20:19 ` Grygorii Strashko
2017-06-06 20:34 ` Pavel Machek [this message]
2017-06-06 20:38 ` Pavel Machek
2017-06-07 4:24 ` Bruce Zhang
2017-06-07 15:38 ` Grygorii Strashko
2017-06-09 22:16 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2017-06-05 7:36 Zhang Bo
2017-06-05 19:27 ` Jacek Anaszewski
2017-06-05 19:27 ` Jacek Anaszewski
2017-06-06 2:47 ` Bruce Zhang
2017-06-06 2:47 ` Bruce Zhang
2017-06-06 20:00 ` Jacek Anaszewski
2017-06-06 20:00 ` Jacek Anaszewski
2017-06-05 20:05 ` Pavel Machek
2017-06-06 2:11 ` Bruce Zhang
2017-06-09 11:25 ` Linus Walleij
2017-06-09 13:01 ` Bruce Zhang
2017-06-09 13:01 ` Bruce Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170606203405.GC32171@amd \
--to=pavel@ucw.cz \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.