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.
|
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
|
### 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™.
|
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