linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Kristian Klausen <kristian@klausen.dk>
Cc: Linux ACPI <linux-acpi@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Zhang Rui <rui.zhang@intel.com>,
	Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mario Limonciello <mario.limonciello@dell.com>,
	Kai-Heng Feng <kai.heng.feng@canonical.com>
Subject: Re: [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle
Date: Mon, 19 Aug 2019 11:05:11 +0200	[thread overview]
Message-ID: <1585707.yWhsc4YUgi@kreacher> (raw)
In-Reply-To: <CAJZ5v0hfMS6aJP9G=dhZZ+3WTzM8=DzQkdJ7s9W3m5m9Dat5=g@mail.gmail.com>

On Monday, August 19, 2019 9:59:02 AM CEST Rafael J. Wysocki wrote:
> On Fri, Aug 16, 2019 at 10:26 PM Kristian Klausen <kristian@klausen.dk> wrote:
> >
> > On 02.08.2019 12.33, Rafael J. Wysocki wrote:
> > > Hi All,
> > >
> > >>> On top of the "Simplify the suspend-to-idle control flow" patch series
> > >>> posted previously:
> > >>>
> > >>> https://lore.kernel.org/lkml/71085220.z6FKkvYQPX@kreacher/
> > >>>
> > >>> sanitize the suspend-to-idle flow even further.
> > >>>
> > >>> First off, decouple EC wakeup from the LPS0 _DSM processing (patch 1).
> > >>>
> > >>> Next, reorder the code to invoke LPS0 _DSM Functions 5 and 6 in the
> > >>> specification-compliant order with respect to suspending and resuming
> > >>> devices (patch 2).
> > >>>
> > >>> Finally, rearrange lps0_device_attach() (patch 3) and add a command line
> > >>> switch to prevent the LPS0 _DSM from being used.
> > >> The v2 is because I found a (minor) bug in patch 1, decided to use a module
> > >> parameter instead of a kernel command line option in patch 4.  Also, there
> > >> are 4 new patches:
> > >>
> > >> Patch 5: Switch the EC over to polling during "noirq" suspend and back
> > >> during "noirq" resume.
> > >>
> > >> Patch 6: Eliminate acpi_sleep_no_ec_events().
> > >>
> > >> Patch 7: Consolidate some EC code depending on PM_SLEEP.
> > >>
> > >> Patch 8: Add EC GPE dispatching debug message.
> > > The v3 is just a rearranged v2 so as to move the post sensitive patch (previous patch 2)
> > > to the end of the series.   [After applying the full series the code is the same as before.]
> > >
> > > For easier testing, the series (along with some previous patches depended on by it)
> > > is available in the pm-s2idle-testing branch of the linux-pm.git tree at kernel.org:
> > >
> > > https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/log/?h=pm-s2idle-testing
> > It was just testing this patch series(461fc1caed55), to see if it would
> > fix my charging issue
> > (https://bugzilla.kernel.org/show_bug.cgi?id=201307), which it didn't.
> 
> It is unlikely to help in that case.
> 
> > I did however notice that my laptop (ASUS Zenbook UX430UNR/i7-8550U)
> > won't wake when opening the lid or pressing a key, the only way to wake
> > the laptop is pressing the power button.
> >
> > I also tested mainline (5.3.0-rc4 b7e7c85dc7b0) and 5.2.8 and the laptop
> > wakes without issue when the lid is opened or a key is presed.
> > > Please refer to the changelogs for details.
> 
> Thanks for your report.
> 
> I seem to see a similar issue with respect to the lid on one of my
> test machines, looking into it right now.

Well, my lid issue seems to be unrelated as it doesn't result from any patches in the
series in question.

First off, please clone 5.3-rc5 from kernel.org and double check if the issue is not
present in that one.

If that's not the case, merge the pm-s2idle-rework branch from my tree on top of it
and retest.

If you still see the issue then, apply the appended patch (on top of the pm-s2idle-reqork
branch ) and, after starting the kernel, do

# echo 1 > /sys/power/pm_debug_messages

suspend the system and try to wake it up through all of the ways that stopped working.

Then, wake it up with the power button, save the output of dmesg and send it to me.

Thanks!

---
 drivers/acpi/sleep.c        |    4 ++--
 drivers/base/power/wakeup.c |    2 ++
 kernel/irq/pm.c             |    2 ++
 3 files changed, 6 insertions(+), 2 deletions(-)

Index: linux-pm/drivers/acpi/sleep.c
===================================================================
--- linux-pm.orig/drivers/acpi/sleep.c
+++ linux-pm/drivers/acpi/sleep.c
@@ -1012,9 +1012,9 @@ static void acpi_s2idle_wake(void)
 		acpi_os_wait_events_complete(); /* synchronize EC GPE processing */
 		acpi_ec_flush_work();
 		acpi_os_wait_events_complete(); /* synchronize Notify handling */
-	}
 
-	rearm_wake_irq(acpi_sci_irq);
+		rearm_wake_irq(acpi_sci_irq);
+	}
 }
 
 static void acpi_s2idle_restore_early(void)
Index: linux-pm/drivers/base/power/wakeup.c
===================================================================
--- linux-pm.orig/drivers/base/power/wakeup.c
+++ linux-pm/drivers/base/power/wakeup.c
@@ -871,6 +871,8 @@ void pm_wakeup_clear(bool reset)
 
 void pm_system_irq_wakeup(unsigned int irq_number)
 {
+	pm_pr_dbg("IRQ wakeup: IRQ %u\n", irq_number);
+
 	if (pm_wakeup_irq == 0) {
 		pm_wakeup_irq = irq_number;
 		pm_system_wakeup();
Index: linux-pm/kernel/irq/pm.c
===================================================================
--- linux-pm.orig/kernel/irq/pm.c
+++ linux-pm/kernel/irq/pm.c
@@ -15,6 +15,8 @@
 
 bool irq_pm_check_wakeup(struct irq_desc *desc)
 {
+	pm_pr_dbg("%s: IRQ %u\n", __func__, irq_desc_get_irq(desc));
+
 	if (irqd_is_wakeup_armed(&desc->irq_data)) {
 		irqd_clear(&desc->irq_data, IRQD_WAKEUP_ARMED);
 		desc->istate |= IRQS_SUSPENDED | IRQS_PENDING;






  reply	other threads:[~2019-08-19  9:05 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-02 10:33 [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle Rafael J. Wysocki
2019-08-02 10:38 ` [PATCH v3 1/8] ACPI: PM: Set up EC GPE for system wakeup from drivers that need it Rafael J. Wysocki
2019-08-02 10:38 ` [PATCH v3 2/8] ACPI: PM: s2idle: Rearrange lps0_device_attach() Rafael J. Wysocki
2019-08-02 10:38 ` [PATCH v3 3/8] ACPI: PM: s2idle: Add acpi.sleep_no_lps0 module parameter Rafael J. Wysocki
2019-08-02 10:40 ` [PATCH v3 4/8] ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend Rafael J. Wysocki
2019-08-02 10:41 ` [PATCH v3 5/8] ACPI: PM: s2idle: Eliminate acpi_sleep_no_ec_events() Rafael J. Wysocki
2019-08-02 10:43 ` [PATCH v3 6/8] ACPI: EC: PM: Consolidate some code depending on PM_SLEEP Rafael J. Wysocki
2019-08-02 10:44 ` [PATCH v3 7/8] ACPI: EC: PM: Make acpi_ec_dispatch_gpe() print debug message Rafael J. Wysocki
2019-08-02 10:45 ` [PATCH v3 8/8] ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices Rafael J. Wysocki
     [not found]   ` <CGME20190809120052eucas1p11b56806662ef4f4efb82a152ad651481@eucas1p1.samsung.com>
2019-08-09 12:00     ` Marek Szyprowski
2019-08-09 12:15       ` Rafael J. Wysocki
2019-08-10 11:24       ` [PATCH] PM: suspend: Fix platform_suspend_prepare_noirq() Rafael J. Wysocki
2019-08-05 16:25 ` [PATCH v3 0/8] PM / ACPI: sleep: Additional changes related to suspend-to-idle Kai-Heng Feng
2019-08-12 13:55 ` Bhardwaj, Rajneesh
2019-08-12 21:32   ` Rafael J. Wysocki
2019-08-16 20:20 ` Kristian Klausen
2019-08-19  7:59   ` Rafael J. Wysocki
2019-08-19  9:05     ` Rafael J. Wysocki [this message]
2019-08-19 15:45       ` Kristian Klausen
2019-08-19 20:41         ` Rafael J. Wysocki
2019-08-20 13:10           ` Kristian Klausen
2019-08-20 13:29             ` Rafael J. Wysocki
2019-08-20 21:38               ` Rafael J. Wysocki
2019-08-20 22:47                 ` Kristian Klausen
2019-08-21  7:30                   ` 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=1585707.yWhsc4YUgi@kreacher \
    --to=rjw@rjwysocki.net \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=kai.heng.feng@canonical.com \
    --cc=kristian@klausen.dk \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mario.limonciello@dell.com \
    --cc=rajneesh.bhardwaj@linux.intel.com \
    --cc=rui.zhang@intel.com \
    /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;
as well as URLs for NNTP newsgroup(s).