Merge pull request #1 from daniviga/revert-acpi-pts

Reboot/shutdown ACPI PTS issue
This commit is contained in:
Daniele Viganò 2016-11-10 08:45:18 +01:00 committed by GitHub
commit ec2a097d66
4 changed files with 4325 additions and 0 deletions

View File

@ -4,6 +4,10 @@ Tested on a Dell Latitude E5450 (late 2014) with Fedora 22/23 64bit, BIOS A10-A1
Please note: BIOS prior to A06 have a serious issue with de-bouncing/repeating keys under Linux, see http://en.community.dell.com/support-forums/laptop/f/3518/t/19593360. Updating to [A10](http://www.dell.com/support/home/us/en/19/Drivers/DriversDetails?driverId=DHD06&fileId=3469377694&osCode=W764&productCode=latitude-e5450-laptop&languageCode=EN&categoryId=BI) or higher is strongly reccomended.
### Shutdown/reboot issues with kernel >= 4.8
See [kernel/README.md](kernel/README.md)
### WWAN module
Dell Latitude E5*50 laptops could have a "Dell Wireless 5809e Gobi™ 4G LTE Mobile Broadband Card" WWAN module installed. This WWAN device is based on the Qualcomm Gobi™.

19
kernel/README.md Normal file
View File

@ -0,0 +1,19 @@
### Reverting 'ACPI: Execute _PTS before system reboot'
Starting with kernel v4.8 a bug as been introduced that prevents a correct shutdown/reboot of the machine.
The bad commit is:
```
2c85025c75dfe7ddc2bb33363a998dad59383f94
ACPI: Execute _PTS before system reboot
```
All kernels from 4.8.0 are affected at the moment. A patch is provided for reverting this commit.
### More info
- https://bugzilla.redhat.com/show_bug.cgi?id=1393513
- https://bugzilla.kernel.org/show_bug.cgi?id=187061
- https://bugzilla.kernel.org/show_bug.cgi?id=151631
- https://patchwork.kernel.org/patch/9041141/

4237
kernel/kernel.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,65 @@
From c68d3d1812326d3845220564b69faa720c297c73 Mon Sep 17 00:00:00 2001
From: Daniele Viganò <daniele@vigano.me>
Date: Thu, 10 Nov 2016 08:11:29 +0100
Subject: [PATCH] Reverting 2c85025c75dfe7ddc2bb33363a998dad59383f94
---
drivers/acpi/sleep.c | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 2b38c1b..7a2e4d4 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -47,32 +47,15 @@ static void acpi_sleep_tts_switch(u32 acpi_state)
}
}
-static void acpi_sleep_pts_switch(u32 acpi_state)
-{
- acpi_status status;
-
- status = acpi_execute_simple_method(NULL, "\\_PTS", acpi_state);
- if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
- /*
- * OS can't evaluate the _PTS object correctly. Some warning
- * message will be printed. But it won't break anything.
- */
- printk(KERN_NOTICE "Failure in evaluating _PTS object\n");
- }
-}
-
-static int sleep_notify_reboot(struct notifier_block *this,
+static int tts_notify_reboot(struct notifier_block *this,
unsigned long code, void *x)
{
acpi_sleep_tts_switch(ACPI_STATE_S5);
-
- acpi_sleep_pts_switch(ACPI_STATE_S5);
-
return NOTIFY_DONE;
}
-static struct notifier_block sleep_notifier = {
- .notifier_call = sleep_notify_reboot,
+static struct notifier_block tts_notifier = {
+ .notifier_call = tts_notify_reboot,
.next = NULL,
.priority = 0,
};
@@ -916,9 +899,9 @@ int __init acpi_sleep_init(void)
pr_info(PREFIX "(supports%s)\n", supported);
/*
- * Register the sleep_notifier to reboot notifier list so that the _TTS
- * and _PTS object can also be evaluated when the system enters S5.
+ * Register the tts_notifier to reboot notifier list so that the _TTS
+ * object can also be evaluated when the system enters S5.
*/
- register_reboot_notifier(&sleep_notifier);
+ register_reboot_notifier(&tts_notifier);
return 0;
}
--
2.7.4