Merge pull request #1 from daniviga/revert-acpi-pts
Reboot/shutdown ACPI PTS issue
This commit is contained in:
commit
ec2a097d66
|
@ -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
19
kernel/README.md
Normal 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
4237
kernel/kernel.spec
Normal file
File diff suppressed because it is too large
Load Diff
65
kernel/revert_pts_before_reboot.patch
Normal file
65
kernel/revert_pts_before_reboot.patch
Normal 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
|
||||
|
Loading…
Reference in New Issue
Block a user