Bug 196249
Summary: | Resumed GPE State - Lid state remains "closed" when resuming from suspend by lifting lid - HP Pavilion dv5120us | ||
---|---|---|---|
Product: | ACPI | Reporter: | Eric Bakula-Davis (ericbakuladavis) |
Component: | Config-Interrupts | Assignee: | Lv Zheng (lv.zheng) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | hramrach, pmenzel+bugzilla.kernel.org, rui.zhang, yu.c.chen |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 4.11.8 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
acpidump
[PATCH] ACPICA: Events: Stop unconditionally clearing ACPI IRQs' status |
Description
Eric Bakula-Davis
2017-07-02 23:02:42 UTC
Can you confirm your behavior about booting kernel with button.lid_init_state=ignore? (In reply to Lv Zheng from comment #1) > Can you confirm your behavior about booting kernel with > button.lid_init_state=ignore? Hi Lv Zheng. The behavior is the same when booting with button.lid_init_state=ignore Are there any functional problem with this file returning wrong values? also please paste "systemctl --version" output here. Thanks Lv Decoding the table, I got: Scope (_SB) { Device (PCI0) { Device (SMB) { OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02) Field (PMIO, ByteAcc, NoLock, Preserve) { INPM, 8, DAPM, 8 } IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve) { Offset (0x37), , 5, LPOL, 1, } } } Device (LID) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { If (\_SB.PCI0.SMB.LPOL) { Return (0x00) } Return (0x01) } Name (_PRW, Package (0x02) { 0x15, 0x03 }) } Method (_L15, 0, NotSerialized) { \_SB.PCI0.SMB.LPOL = ~\_SB.PCI0.SMB.LPOL Notify (\_SB.LID, 0x80) } } This seems to be a fixable known issue. I guess GPE15 is errornously cleared after resume, causing this problem. Great - Can you recommend a fix? Do you still want a response to your previous comment? (In reply to Lv Zheng from comment #3) > Are there any functional problem with this file returning wrong values? > also please paste "systemctl --version" output here. > > Thanks > Lv If you mean /proc/acpi/button/lid/LID/state, I'm not sure if there are functional problems with it. I can say that if the system is not configured to suspend when the lid is closed, the state file accurately reports the lid as "open" when it's open and "closed" when it's closed. systemctl --version returns: systemd 229 +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN The behavior also occurs when the lid triggers pm-suspend rather than systemctl suspend. > Great - Can you recommend a fix? I'll give it a try. > Do you still want a response to your previous comment? Thanks for the information in comment 6. Created attachment 257343 [details]
[PATCH] ACPICA: Events: Stop unconditionally clearing ACPI IRQs' status
Please give this fix a try:
Apply this fix, recompile and boot the compiled kernel.
Hi Lv This is the first time I've compiled an upstream kernel. Below are the steps I took. I expect it will take over 5 hours to compile. If I did something wrong, please let me know so I can abort and retry. I did this while running a pre-compiled 4.11.8 kernel from here: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.8/ Steps: $ cd ~ $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git $ cd linux-stable $ git checkout 8afcfa55e6a7d8c58bdb4355bd544602e6f0c3ad $ git describe --exact-match HEAD v4.11.8 $ cp /boot/config-4.11.8* .config $ make oldconfig [saved raw unified patch as lv.patch] $ patch -p1 < lv.patch [manually confirmed that all changes were successfully made] $ make clean $ make deb-pkg LOCALVERSION=-custom Compile complete. Which of these packages should I install? 1. linux-firmware-image-4.11.8-custom_4.11.8-custom-1_amd64.deb 2. linux-headers-4.11.8-custom_4.11.8-custom-1_amd64.deb 3. linux-image-4.11.8-custom_4.11.8-custom-1_amd64.deb 4. linux-image-4.11.8-custom-dbg_4.11.8-custom-1_amd64.deb 5. linux-libc-dev_4.11.8-custom-1_amd64.deb I also have... linux-4.11.8-custom_4.11.8-custom-1_amd64.changes linux-4.11.8-custom_4.11.8-custom-1.debian.tar.gz linux-4.11.8-custom_4.11.8-custom-1.dsc linux-4.11.8-custom_4.11.8-custom.orig.tar.gz (In reply to Eric Bakula-Davis from comment #10) > Compile complete. Which of these packages should I install? > > 1. linux-firmware-image-4.11.8-custom_4.11.8-custom-1_amd64.deb > 2. linux-headers-4.11.8-custom_4.11.8-custom-1_amd64.deb > 3. linux-image-4.11.8-custom_4.11.8-custom-1_amd64.deb > 4. linux-image-4.11.8-custom-dbg_4.11.8-custom-1_amd64.deb > 5. linux-libc-dev_4.11.8-custom-1_amd64.deb > > I also have... > > linux-4.11.8-custom_4.11.8-custom-1_amd64.changes > linux-4.11.8-custom_4.11.8-custom-1.debian.tar.gz > linux-4.11.8-custom_4.11.8-custom-1.dsc > linux-4.11.8-custom_4.11.8-custom.orig.tar.gz Next time you can disabled CONFIG_DEBUG_INFO and the compiling time will be reduced a lot. You can install the package via: dpkg -i *.deb (In reply to Chen Yu from comment #11) > (In reply to Eric Bakula-Davis from comment #10) > > Compile complete. Which of these packages should I install? > > > > 1. linux-firmware-image-4.11.8-custom_4.11.8-custom-1_amd64.deb > > 2. linux-headers-4.11.8-custom_4.11.8-custom-1_amd64.deb > > 3. linux-image-4.11.8-custom_4.11.8-custom-1_amd64.deb > > 4. linux-image-4.11.8-custom-dbg_4.11.8-custom-1_amd64.deb > > 5. linux-libc-dev_4.11.8-custom-1_amd64.deb > > > > I also have... > > > > linux-4.11.8-custom_4.11.8-custom-1_amd64.changes > > linux-4.11.8-custom_4.11.8-custom-1.debian.tar.gz > > linux-4.11.8-custom_4.11.8-custom-1.dsc > > linux-4.11.8-custom_4.11.8-custom.orig.tar.gz > Next time you can disabled CONFIG_DEBUG_INFO and the compiling time will be > reduced a lot. > You can install the package via: > dpkg -i *.deb Also, you can speed up your compiling by make dpkg -jn (n is the cpu number of your platform) I installed all the .deb packages as Chen suggested, booted into the new kernel, and it worked! Now the lid state is always accurate and suspend works normally. Thank you both for your help. Special thanks to Lv for providing the patch. The LCD control method is special: Method (_L15, 0, NotSerialized) { \_SB.PCI0.SMB.LPOL = ~\_SB.PCI0.SMB.LPOL Notify (\_SB.LID, 0x80) } The only condition for _L15 to work properly is no GPE loss. However the fix may have side effect, I'll consider a better way to make it upstreamed. Marking this bug as RESOVED, but will leave it unclosed until patch can land ACPICA upstream. Thanks Lv Hello, I hit a regression with this patch. On my notebook I can no longer resume from suspend. I use the power button to enter suspend. Without this patch system enters suspend after pressing power button and wakes up on power button or key press. With patch first time I press power button system enters suspend and immediately resumes. Second time system enters suspend and does not respond neither to power button nor key press. |