mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Darren Hart <dvhart@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux ACPI <linux-acpi@vger.kernel.org>,
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Mario Limonciello <mario.limonciello@dell.com>
Subject: [PATCH 0/5] PM / sleep: Support power button wakeup from S2I on recent Dell laptops
Date: Wed, 26 Apr 2017 23:21:11 +0200	[thread overview]
Message-ID: <1979543.KIEJ8uyRaT@aspire.rjw.lan> (raw)

Hi All,

The underlying issue is that on some relatively new Dell laltops, including
Dell XPS13 9360 and 9365, pressing the power button is not sufficient to
wake up the system from suspend-to-idle (it has to be pressed and held
down for around 5 sec for the wakeup to happen) which is not expected
and does not match the Windows' behavior.

This turns out to be a consequence of the way power button events are signaled
on those systems, which is through the Embedded Controller (EC).  Namely,
button events go to the EC which then signals the event through its ACPI GPE
(General Purpose Event), which triggers an ACPI SCI (System Control Interrupt),
whose handler executes a specicif AML control method and triggers a Notify()
targetting a devie object associated with the power button.  The problem with
suspend-to-idle is that the EC GPE is disabled during suspend, because
otherwise all EC events would wake up the system from suspend-to-idle (and
there can be many of them).

The only way to address this is to allow the EC GPE to stay enabled while
suspended to idle, but that cannot be done unconditionally, because of the
possible spurious wakeup events from the EC.  Fortunately, on the Dell systems
in question it is possible to reduce the number of events coming from the EC
while suspended (see the changelog of patch [3/5] for details), but still some
spurious events may happen.  For this reason, when there is an SCI while
suspended, it is not practical to resume all the way up to user space.
Instead, it is better to resume partially up to the point at which the SCI can
be processed by its handler, which is after calling dpm_resume_noirq(), let
the SCI be processed and if no real wakeup events come out of that,
suspend again.  Actually, that can be done in general, because spurious
SCIs do happen while suspended to idle on other systems too, and that's
which it goes as patch [2/5] before the Dell-related changes.

Patch [1/5] is more of a cleanup, but makes the rest look slightly more
straightforward, and patches [4-5/5] update the drivers used for button
events processing on the affected systems so that they signal wakeup
as expected and avoid propagating the wakeup events as button events
to user space.

The series is available from a git branch at

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git s2idle-dell-test

and has been included into the testing branch thereof.

Please let me know if there are any concerns.

Thanks,
Rafael

             reply	other threads:[~2017-04-26 21:34 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-26 21:21 Rafael J. Wysocki [this message]
2017-04-26 21:22 ` [PATCH 1/5] PM / wakeup: Integrate mechanism to abort transitions in progress Rafael J. Wysocki
2017-04-26 21:23 ` [PATCH 2/5] ACPI / sleep: Ignore spurious SCI wakeups from suspend-to-idle Rafael J. Wysocki
2017-04-26 21:24 ` [PATCH 3/5] ACPI / sleep: EC-based wakeup from suspend-to-idle on Dell systems Rafael J. Wysocki
2017-04-27 14:47   ` Mario.Limonciello
2017-04-27 22:26     ` Rafael J. Wysocki
2017-05-04  7:58       ` Zheng, Lv
2017-05-04 14:23         ` Rafael J. Wysocki
2017-05-04 14:26           ` Rafael J. Wysocki
2017-05-05  0:36             ` Zheng, Lv
2017-04-26 21:24 ` [PATCH 4/5] platform: x86: intel-vbtn: Wake up the system from suspend-to-idle Rafael J. Wysocki
2017-04-26 21:27 ` [PATCH 5/5] platform: x86: intel-hid: " Rafael J. Wysocki
2017-05-04 14:33 ` [PATCH 0/5] PM / sleep: Support power button wakeup from S2I on recent Dell laptops Rafael J. Wysocki
2017-05-31 23:23 ` [PATCH 0/3] ACPI " Rafael J. Wysocki
2017-05-31 23:24   ` [PATCH 1/3] platform: x86: intel-vbtn: Wake up the system from suspend-to-idle Rafael J. Wysocki
2017-05-31 23:26   ` [PATCH 2/3] platform: x86: intel-hid: " Rafael J. Wysocki
2017-05-31 23:27   ` [PATCH 3/3] ACPI / sleep: EC-based wakeup from suspend-to-idle on recent Dell systems Rafael J. Wysocki
2017-06-05 15:18     ` Mario.Limonciello
2017-06-05 20:51       ` Rafael J. Wysocki
2017-06-01 10:43   ` [PATCH 0/3] ACPI / sleep: Support power button wakeup from S2I on recent Dell laptops Andy Shevchenko
2017-06-01 11:50     ` Tom Lanyon
2017-06-01 14:59       ` Rafael J. Wysocki
2017-06-02  1:06         ` Tom Lanyon
2017-06-02 23:16           ` Rafael J. Wysocki
2017-06-01 15:00     ` Rafael J. Wysocki
2017-06-19 21:48   ` [PATCH v2 " Rafael J. Wysocki
2017-06-19 21:49     ` [PATCH v2 1/3] platform: x86: intel-vbtn: Wake up the system from suspend-to-idle Rafael J. Wysocki
2017-06-19 21:51     ` [PATCH v2 2/3] platform: x86: intel-hid: " Rafael J. Wysocki
2017-06-19 21:53     ` [PATCH v2 3/3] ACPI / sleep: EC-based wakeup from suspend-to-idle on recent Dell systems Rafael J. Wysocki
2017-06-19 23:37       ` Zheng, Lv
2017-06-19 23:46         ` Rafael J. Wysocki
2017-06-21  1:13           ` Zheng, Lv
2017-06-20  0:07       ` Linus Torvalds
2017-06-20  1:13         ` Rafael J. Wysocki
2017-06-20  2:00           ` Linus Torvalds
2017-06-20 21:16             ` Rafael J. Wysocki
2017-06-21  1:13           ` Zheng, Lv
2017-06-22 23:56       ` [PATCH] ACPI / sleep: EC-based wakeup from suspend-to-idle on recent systems Rafael J. Wysocki
2017-06-23  2:40         ` Linus Torvalds
2017-06-27  5:50           ` Tom Lanyon
2017-06-27  6:47             ` Andy Shevchenko
2017-06-27 10:54               ` Tom Lanyon
2017-06-27 11:10             ` Mario.Limonciello
2017-06-27 15:03             ` Rafael J. Wysocki
2017-06-27 16:14               ` Srinivas Pandruvada
2017-07-06 11:41                 ` Tom Lanyon
2017-07-07  0:38                   ` Srinivas Pandruvada
2017-06-23  6:30         ` Zheng, Lv
2017-06-23 12:13           ` Rafael J. Wysocki
2017-06-23 12:27             ` Rafael J. Wysocki
2017-06-23 13:15         ` [PATCH v2] " Rafael J. Wysocki
2017-06-23 15:37           ` Mario.Limonciello
2017-06-23 16:06             ` Srinivas Pandruvada
2017-06-23 18:01               ` Mario.Limonciello
2017-06-24  0:43             ` Rafael J. Wysocki

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=1979543.KIEJ8uyRaT@aspire.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=dvhart@infradead.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mario.limonciello@dell.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®