diff mbox

[REGRESSION,4.17] Spurious wakeup / reboot with power button

Message ID 1704080.gFTvVrrZA1@aspire.rjw.lan (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Rafael J. Wysocki July 6, 2018, 12:13 p.m. UTC
On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
> On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:

[cut]
 
> So the latest patch:
> 
> https://patchwork.kernel.org/patch/10511211/
> 
> should work for you (please verify) and the change in
> drivers/acpi/sleep.c in it most likely is not necessary.
> 
> If you can confirm that this one works for you, I'll send a smaller
> one with the acpi_hw_legacy_sleep() part alone.

Well, scratch this, sorry.

The power button probably is a fixed event and it won't be effected by
that patch.

Instead, please test the patch below.

---
 drivers/acpi/acpica/hwsleep.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Takashi Iwai July 6, 2018, 12:27 p.m. UTC | #1
On Fri, 06 Jul 2018 14:13:04 +0200,
Rafael J. Wysocki wrote:
> 
> On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
> > On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:
> 
> [cut]
>  
> > So the latest patch:
> > 
> > https://patchwork.kernel.org/patch/10511211/
> > 
> > should work for you (please verify) and the change in
> > drivers/acpi/sleep.c in it most likely is not necessary.
> > 
> > If you can confirm that this one works for you, I'll send a smaller
> > one with the acpi_hw_legacy_sleep() part alone.
> 
> Well, scratch this, sorry.
> 
> The power button probably is a fixed event and it won't be effected by
> that patch.
> 
> Instead, please test the patch below.

FWIW, the test kernel on OBS home:tiwai:bsc1099930-3 was refreshed
with this one.  The release number will be *.g2351e2d.


Takashi

> 
> ---
>  drivers/acpi/acpica/hwsleep.c |   15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> Index: linux-pm/drivers/acpi/acpica/hwsleep.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/acpica/hwsleep.c
> +++ linux-pm/drivers/acpi/acpica/hwsleep.c
> @@ -51,16 +51,23 @@ acpi_status acpi_hw_legacy_sleep(u8 slee
>  		return_ACPI_STATUS(status);
>  	}
>  
> -	/*
> -	 * 1) Disable all GPEs
> -	 * 2) Enable all wakeup GPEs
> -	 */
> +	/* Disable all GPEs */
>  	status = acpi_hw_disable_all_gpes();
>  	if (ACPI_FAILURE(status)) {
>  		return_ACPI_STATUS(status);
>  	}
> +	/*
> +	 * If the target sleep state is S5, clear all GPEs and fixed events too
> +	 */
> +	if (sleep_state == ACPI_STATE_S5) {
> +		status = acpi_hw_clear_acpi_status();
> +		if (ACPI_FAILURE(status)) {
> +			return_ACPI_STATUS(status);
> +		}
> +	}
>  	acpi_gbl_system_awake_and_running = FALSE;
>  
> +	 /* Enable all wakeup GPEs */
>  	status = acpi_hw_enable_all_wakeup_gpes();
>  	if (ACPI_FAILURE(status)) {
>  		return_ACPI_STATUS(status);
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thomas Hänig July 6, 2018, 12:49 p.m. UTC | #2
Am 06.07.2018 um 14:13 schrieb Rafael J. Wysocki:
> On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
>> On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:
> 
> [cut]
>  
>> So the latest patch:
>>
>> https://patchwork.kernel.org/patch/10511211/
>>
>> should work for you (please verify) and the change in
>> drivers/acpi/sleep.c in it most likely is not necessary.
>>
>> If you can confirm that this one works for you, I'll send a smaller
>> one with the acpi_hw_legacy_sleep() part alone.
> 
> Well, scratch this, sorry.
> 
> The power button probably is a fixed event and it won't be effected by
> that patch.
> 
> Instead, please test the patch below.
> 
> ---
>  drivers/acpi/acpica/hwsleep.c |   15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> Index: linux-pm/drivers/acpi/acpica/hwsleep.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/acpica/hwsleep.c
> +++ linux-pm/drivers/acpi/acpica/hwsleep.c
> @@ -51,16 +51,23 @@ acpi_status acpi_hw_legacy_sleep(u8 slee
>  		return_ACPI_STATUS(status);
>  	}
>  
> -	/*
> -	 * 1) Disable all GPEs
> -	 * 2) Enable all wakeup GPEs
> -	 */
> +	/* Disable all GPEs */
>  	status = acpi_hw_disable_all_gpes();
>  	if (ACPI_FAILURE(status)) {
>  		return_ACPI_STATUS(status);
>  	}
> +	/*
> +	 * If the target sleep state is S5, clear all GPEs and fixed events too
> +	 */
> +	if (sleep_state == ACPI_STATE_S5) {
> +		status = acpi_hw_clear_acpi_status();
> +		if (ACPI_FAILURE(status)) {
> +			return_ACPI_STATUS(status);
> +		}
> +	}
>  	acpi_gbl_system_awake_and_running = FALSE;
>  
> +	 /* Enable all wakeup GPEs */
>  	status = acpi_hw_enable_all_wakeup_gpes();
>  	if (ACPI_FAILURE(status)) {
>  		return_ACPI_STATUS(status);
> 
after cancelling the build with patch 10511211 and rolling everything
back, I applied the patch above to my kernel 4.17.3-1-default and when
pressing the power button the system shuts down and stays off! :-)

Thanks
Thomas
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thomas Hänig July 6, 2018, 12:53 p.m. UTC | #3
Am 06.07.2018 um 14:27 schrieb Takashi Iwai:
> On Fri, 06 Jul 2018 14:13:04 +0200,
> Rafael J. Wysocki wrote:
>>
>> On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
>>> On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:
>>
>> [cut]
>>  
>>> So the latest patch:
>>>
>>> https://patchwork.kernel.org/patch/10511211/
>>>
>>> should work for you (please verify) and the change in
>>> drivers/acpi/sleep.c in it most likely is not necessary.
>>>
>>> If you can confirm that this one works for you, I'll send a smaller
>>> one with the acpi_hw_legacy_sleep() part alone.
>>
>> Well, scratch this, sorry.
>>
>> The power button probably is a fixed event and it won't be effected by
>> that patch.
>>
>> Instead, please test the patch below.
> 
> FWIW, the test kernel on OBS home:tiwai:bsc1099930-3 was refreshed
> with this one.  The release number will be *.g2351e2d.
> 
> 
> Takashi

to make shure I have made no mistake while building my own, I will try
out your kernel as well.

Thomas
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Thomas Hänig July 6, 2018, 5:57 p.m. UTC | #4
Am 06.07.2018 um 14:27 schrieb Takashi Iwai:
> On Fri, 06 Jul 2018 14:13:04 +0200,
> Rafael J. Wysocki wrote:
>>
>> On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
>>> On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:
>>
>> [cut]
>>  
>>> So the latest patch:
>>>
>>> https://patchwork.kernel.org/patch/10511211/
>>>
>>> should work for you (please verify) and the change in
>>> drivers/acpi/sleep.c in it most likely is not necessary.
>>>
>>> If you can confirm that this one works for you, I'll send a smaller
>>> one with the acpi_hw_legacy_sleep() part alone.
>>
>> Well, scratch this, sorry.
>>
>> The power button probably is a fixed event and it won't be effected by
>> that patch.
>>
>> Instead, please test the patch below.
> 
> FWIW, the test kernel on OBS home:tiwai:bsc1099930-3 was refreshed
> with this one.  The release number will be *.g2351e2d.
> 
> 
> Takashi
> 
>>
>> ---
>>  drivers/acpi/acpica/hwsleep.c |   15 +++++++++++----
>>  1 file changed, 11 insertions(+), 4 deletions(-)
>>
>> Index: linux-pm/drivers/acpi/acpica/hwsleep.c
>> ===================================================================
>> --- linux-pm.orig/drivers/acpi/acpica/hwsleep.c
>> +++ linux-pm/drivers/acpi/acpica/hwsleep.c
>> @@ -51,16 +51,23 @@ acpi_status acpi_hw_legacy_sleep(u8 slee
>>  		return_ACPI_STATUS(status);
>>  	}
>>  
>> -	/*
>> -	 * 1) Disable all GPEs
>> -	 * 2) Enable all wakeup GPEs
>> -	 */
>> +	/* Disable all GPEs */
>>  	status = acpi_hw_disable_all_gpes();
>>  	if (ACPI_FAILURE(status)) {
>>  		return_ACPI_STATUS(status);
>>  	}
>> +	/*
>> +	 * If the target sleep state is S5, clear all GPEs and fixed events too
>> +	 */
>> +	if (sleep_state == ACPI_STATE_S5) {
>> +		status = acpi_hw_clear_acpi_status();
>> +		if (ACPI_FAILURE(status)) {
>> +			return_ACPI_STATUS(status);
>> +		}
>> +	}
>>  	acpi_gbl_system_awake_and_running = FALSE;
>>  
>> +	 /* Enable all wakeup GPEs */
>>  	status = acpi_hw_enable_all_wakeup_gpes();
>>  	if (ACPI_FAILURE(status)) {
>>  		return_ACPI_STATUS(status);
>>
Hello Takashi,
with the kernel built by you the system shuts down when pressing the
power button and stays off too!  :-)

So the above mentioned patch to hwsleep.c seems to do the trick.

Regards and thanks a lot @all!
Thomas

thomas@tslb:~> uname -a
Linux tslb 4.17.4-2.g2351e2d-default #1 SMP PREEMPT Fri Jul 6 12:24:35
UTC 2018 (2351e2d) x86_64 x86_64 x86_64 GNU/Linux


thomas@tslb:~> rpm -qi kernel-default-4.17.4-2.1.g2351e2d.x86_64
Name        : kernel-default
Version     : 4.17.4
Release     : 2.1.g2351e2d
Architecture: x86_64
Install Date: Fr 06 Jul 2018 19:43:38 CEST
Group       : System/Kernel
Size        : 360100489
License     : GPL-2.0
Signature   : RSA/SHA256, Fr 06 Jul 2018 16:47:25 CEST, Key ID
4bf05f46f6e74bf5
Source RPM  : kernel-default-4.17.4-2.1.g2351e2d.nosrc.rpm
Build Date  : Fr 06 Jul 2018 16:42:04 CEST
Build Host  : lamb63
Relocations : (not relocatable)
Vendor      : obs://build.opensuse.org/home:tiwai
URL         : http://www.kernel.org/
Summary     : The Standard Kernel
Description :
The standard kernel for both uniprocessor and multiprocessor systems.

Source Timestamp: 2018-07-06 14:24:35 +0200
GIT Revision: 2351e2d70cbcb963c461d55abeee967ea9a940ea
GIT Branch: users/tiwai/stable/bsc1099930
Distribution: home:tiwai:bsc1099930-3
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael J. Wysocki July 8, 2018, 8:18 a.m. UTC | #5
On Fri, Jul 6, 2018 at 7:57 PM, Thomas Hänig <haenig@cosifan.de> wrote:
>
>
> Am 06.07.2018 um 14:27 schrieb Takashi Iwai:
>> On Fri, 06 Jul 2018 14:13:04 +0200,
>> Rafael J. Wysocki wrote:
>>>
>>> On Friday, July 6, 2018 1:21:50 PM CEST Rafael J. Wysocki wrote:
>>>> On Fri, Jul 6, 2018 at 1:12 PM, Thomas Hänig <haenig@cosifan.de> wrote:
>>>
>>> [cut]
>>>
>>>> So the latest patch:
>>>>
>>>> https://patchwork.kernel.org/patch/10511211/
>>>>
>>>> should work for you (please verify) and the change in
>>>> drivers/acpi/sleep.c in it most likely is not necessary.
>>>>
>>>> If you can confirm that this one works for you, I'll send a smaller
>>>> one with the acpi_hw_legacy_sleep() part alone.
>>>
>>> Well, scratch this, sorry.
>>>
>>> The power button probably is a fixed event and it won't be effected by
>>> that patch.
>>>
>>> Instead, please test the patch below.
>>
>> FWIW, the test kernel on OBS home:tiwai:bsc1099930-3 was refreshed
>> with this one.  The release number will be *.g2351e2d.
>>
>>
>> Takashi
>>
>>>
>>> ---
>>>  drivers/acpi/acpica/hwsleep.c |   15 +++++++++++----
>>>  1 file changed, 11 insertions(+), 4 deletions(-)
>>>
>>> Index: linux-pm/drivers/acpi/acpica/hwsleep.c
>>> ===================================================================
>>> --- linux-pm.orig/drivers/acpi/acpica/hwsleep.c
>>> +++ linux-pm/drivers/acpi/acpica/hwsleep.c
>>> @@ -51,16 +51,23 @@ acpi_status acpi_hw_legacy_sleep(u8 slee
>>>              return_ACPI_STATUS(status);
>>>      }
>>>
>>> -    /*
>>> -     * 1) Disable all GPEs
>>> -     * 2) Enable all wakeup GPEs
>>> -     */
>>> +    /* Disable all GPEs */
>>>      status = acpi_hw_disable_all_gpes();
>>>      if (ACPI_FAILURE(status)) {
>>>              return_ACPI_STATUS(status);
>>>      }
>>> +    /*
>>> +     * If the target sleep state is S5, clear all GPEs and fixed events too
>>> +     */
>>> +    if (sleep_state == ACPI_STATE_S5) {
>>> +            status = acpi_hw_clear_acpi_status();
>>> +            if (ACPI_FAILURE(status)) {
>>> +                    return_ACPI_STATUS(status);
>>> +            }
>>> +    }
>>>      acpi_gbl_system_awake_and_running = FALSE;
>>>
>>> +     /* Enable all wakeup GPEs */
>>>      status = acpi_hw_enable_all_wakeup_gpes();
>>>      if (ACPI_FAILURE(status)) {
>>>              return_ACPI_STATUS(status);
>>>
> Hello Takashi,
> with the kernel built by you the system shuts down when pressing the
> power button and stays off too!  :-)
>
> So the above mentioned patch to hwsleep.c seems to do the trick.

OK, thanks for verifying!

> Regards and thanks a lot @all!

Cheers,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: linux-pm/drivers/acpi/acpica/hwsleep.c
===================================================================
--- linux-pm.orig/drivers/acpi/acpica/hwsleep.c
+++ linux-pm/drivers/acpi/acpica/hwsleep.c
@@ -51,16 +51,23 @@  acpi_status acpi_hw_legacy_sleep(u8 slee
 		return_ACPI_STATUS(status);
 	}
 
-	/*
-	 * 1) Disable all GPEs
-	 * 2) Enable all wakeup GPEs
-	 */
+	/* Disable all GPEs */
 	status = acpi_hw_disable_all_gpes();
 	if (ACPI_FAILURE(status)) {
 		return_ACPI_STATUS(status);
 	}
+	/*
+	 * If the target sleep state is S5, clear all GPEs and fixed events too
+	 */
+	if (sleep_state == ACPI_STATE_S5) {
+		status = acpi_hw_clear_acpi_status();
+		if (ACPI_FAILURE(status)) {
+			return_ACPI_STATUS(status);
+		}
+	}
 	acpi_gbl_system_awake_and_running = FALSE;
 
+	 /* Enable all wakeup GPEs */
 	status = acpi_hw_enable_all_wakeup_gpes();
 	if (ACPI_FAILURE(status)) {
 		return_ACPI_STATUS(status);