-
-
Save rickybrent/1dabaf78ad03c290aa97489bef7d36fb to your computer and use it in GitHub Desktop.
--- dsdt.dsl 2018-03-04 16:00:00.866484238 -0800 | |
+++ dsdt.dsl 2018-03-04 16:28:07.933272752 -0800 | |
@@ -18,9 +18,8 @@ | |
* Compiler ID "INTL" | |
* Compiler Version 0x20160527 (538314023) | |
*/ | |
-DefinitionBlock ("", "DSDT", 2, "LENOVO", "SKL ", 0x00000000) | |
+DefinitionBlock ("", "DSDT", 2, "LENOVO", "SKL ", 0x00000001) | |
{ | |
- External (_GPE.TBNF, MethodObj) // 0 Arguments | |
External (_PR_.BGIA, UnknownObj) | |
External (_PR_.BGMA, UnknownObj) | |
External (_PR_.BGMS, UnknownObj) | |
@@ -40,19 +39,15 @@ | |
External (_PR_.PDTS, UnknownObj) | |
External (_PR_.PKGA, UnknownObj) | |
External (_PR_.POWS, UnknownObj) | |
- External (_PR_.PR00, DeviceObj) | |
External (_PR_.PR00.LPSS, PkgObj) | |
External (_PR_.PR00.TPSS, PkgObj) | |
External (_PR_.TRPD, UnknownObj) | |
External (_PR_.TRPF, UnknownObj) | |
- External (_SB_.GGIV, MethodObj) // 1 Arguments | |
- External (_SB_.GGOV, MethodObj) // 1 Arguments | |
External (_SB_.IETM, DeviceObj) | |
External (_SB_.IETM.DPTE, UnknownObj) | |
External (_SB_.PCI0.B0D4.NPCC, PkgObj) | |
External (_SB_.PCI0.CTCD, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.CTCN, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.GFX0, DeviceObj) | |
External (_SB_.PCI0.GFX0.AINT, MethodObj) // 2 Arguments | |
External (_SB_.PCI0.GFX0.ALSI, UnknownObj) | |
External (_SB_.PCI0.GFX0.CBLV, UnknownObj) | |
@@ -71,108 +66,81 @@ | |
External (_SB_.PCI0.HDAS.PS3X, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.HIDW, MethodObj) // 4 Arguments | |
External (_SB_.PCI0.HIWC, MethodObj) // 1 Arguments | |
- External (_SB_.PCI0.ISP0, DeviceObj) | |
External (_SB_.PCI0.LPCB.H_EC.XDAT, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.PAUD.PUAM, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.PEG0, DeviceObj) | |
- External (_SB_.PCI0.PEG0.PEGP, DeviceObj) | |
External (_SB_.PCI0.PEG0.PG00.PEGP, DeviceObj) | |
- External (_SB_.PCI0.PEG1, DeviceObj) | |
External (_SB_.PCI0.PEG1.PG01.PEGP, DeviceObj) | |
- External (_SB_.PCI0.PEG2, DeviceObj) | |
External (_SB_.PCI0.PEG2.PG02.PEGP, DeviceObj) | |
External (_SB_.PCI0.PTDP, UnknownObj) | |
External (_SB_.PCI0.RP01.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP01.PXSX, DeviceObj) | |
- External (_SB_.PCI0.RP01.PXSX.WGST, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP01.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP02.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP02.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP02.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP02.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP03.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP03.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP03.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP03.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP04.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP04.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP04.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP04.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP05.PON_, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP05.PWRG, UnknownObj) | |
- External (_SB_.PCI0.RP05.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP05.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP05.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP05.RSTG, UnknownObj) | |
External (_SB_.PCI0.RP05.SCLK, UnknownObj) | |
External (_SB_.PCI0.RP06.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP06.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP06.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP06.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP07.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP07.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP07.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP07.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP08.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP08.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP08.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP08.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP09.PEGP.NVST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP09.PON_, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP09.PWRG, UnknownObj) | |
- External (_SB_.PCI0.RP09.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP09.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP09.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP09.RSTG, UnknownObj) | |
External (_SB_.PCI0.RP09.SCLK, UnknownObj) | |
External (_SB_.PCI0.RP10.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP10.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP10.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP10.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP11.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP11.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP11.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP11.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP12.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP12.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP12.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP12.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP13.PON_, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP13.PWRG, UnknownObj) | |
- External (_SB_.PCI0.RP13.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP13.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP13.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP13.RSTG, UnknownObj) | |
External (_SB_.PCI0.RP13.SCLK, UnknownObj) | |
External (_SB_.PCI0.RP14.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP14.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP14.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP14.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP15.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP15.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP15.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP15.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP16.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP16.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP16.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP16.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP17.PON_, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP17.PWRG, UnknownObj) | |
- External (_SB_.PCI0.RP17.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP17.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP17.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP17.RSTG, UnknownObj) | |
External (_SB_.PCI0.RP17.SCLK, UnknownObj) | |
External (_SB_.PCI0.RP18.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP18.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP18.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP18.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP19.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP19.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP19.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP19.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP20.PON_, MethodObj) // 0 Arguments | |
- External (_SB_.PCI0.RP20.PXSX, DeviceObj) | |
External (_SB_.PCI0.RP20.PXSX.WGST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.RP20.PXSX.WIST, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.SAT0.NVM1.VLPM, UnknownObj) | |
@@ -191,16 +159,12 @@ | |
External (_SB_.PCI0.XHC_.RHUB.PS0X, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.XHC_.RHUB.PS2X, MethodObj) // 0 Arguments | |
External (_SB_.PCI0.XHC_.RHUB.PS3X, MethodObj) // 0 Arguments | |
- External (_SB_.SGOV, MethodObj) // 2 Arguments | |
- External (_SB_.TBFP, MethodObj) // 1 Arguments | |
External (_SB_.TPM_.PTS_, MethodObj) // 1 Arguments | |
External (_SB_.UBTC.NTFY, MethodObj) // 0 Arguments | |
External (_TZ_.ETMD, IntObj) | |
External (_TZ_.TZ00, DeviceObj) | |
External (_TZ_.TZ01, DeviceObj) | |
- External (ADBG, MethodObj) // 1 Arguments | |
External (ALSE, UnknownObj) | |
- External (BNUM, UnknownObj) | |
External (BRTL, UnknownObj) | |
External (CFGD, UnknownObj) | |
External (DIDX, UnknownObj) | |
@@ -213,28 +177,6 @@ | |
External (M32L, UnknownObj) | |
External (M64B, UnknownObj) | |
External (M64L, UnknownObj) | |
- External (MMRP, MethodObj) // 1 Arguments | |
- External (MMTB, MethodObj) // 1 Arguments | |
- External (ODV0, IntObj) | |
- External (ODV1, IntObj) | |
- External (ODV2, IntObj) | |
- External (ODV3, IntObj) | |
- External (ODV4, IntObj) | |
- External (ODV5, IntObj) | |
- External (ODV6, IntObj) | |
- External (ODV7, IntObj) | |
- External (ODV8, IntObj) | |
- External (ODV9, IntObj) | |
- External (ODVA, IntObj) | |
- External (ODVB, IntObj) | |
- External (ODVC, IntObj) | |
- External (ODVD, IntObj) | |
- External (ODVE, IntObj) | |
- External (ODVF, IntObj) | |
- External (ODVG, IntObj) | |
- External (ODVH, IntObj) | |
- External (ODVI, IntObj) | |
- External (ODVJ, IntObj) | |
External (PC00, IntObj) | |
External (PC01, UnknownObj) | |
External (PC02, UnknownObj) | |
@@ -253,16 +195,11 @@ | |
External (PC15, UnknownObj) | |
External (PTTB, UnknownObj) | |
External (SGMD, UnknownObj) | |
- External (STDV, IntObj) | |
- External (TBTD, MethodObj) // 1 Arguments | |
- External (TBTF, MethodObj) // 1 Arguments | |
Name (SS1, 0x00) | |
Name (SS2, 0x00) | |
Name (SS3, One) | |
- One | |
Name (SS4, One) | |
- One | |
OperationRegion (GNVS, SystemMemory, 0x4FF4E000, 0x0767) | |
Field (GNVS, AnyAcc, Lock, Preserve) | |
{ | |
@@ -27548,6 +27485,13 @@ | |
0x00, | |
0x00 | |
}) | |
+ Name (\_S3, Package (0x04) // _S3_: S3 System State | |
+ { | |
+ 0x05, | |
+ 0x05, | |
+ 0x00, | |
+ 0x00 | |
+ }) | |
Name (\_S4, Package (0x04) // _S4_: S4 System State | |
{ | |
0x06, |
Thx for sharing this patch!
When following the guide, I get compilation errors (step 7):
$ iasl -ve -tc dsdt.dsl
Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20180105
Copyright (c) 2000 - 2018 Intel Corporation
dsdt.dsl 19049: Method (TBTD, 1, Serialized)
Error 6074 - ^ Name already exists in scope (TBTD)
Original name creation/declaration below:
dsdt.dsl 199: External (TBTD, MethodObj) // 1 Arguments
dsdt.dsl 19117: Method (TBTF, 1, Serialized)
Error 6074 - ^ Name already exists in scope (TBTF)
Original name creation/declaration below:
dsdt.dsl 200: External (TBTF, MethodObj) // 1 Arguments
dsdt.dsl 27854: STDV, 8,
Error 6074 - ^ Name already exists in scope (STDV)
Original name creation/declaration below:
dsdt.dsl 198: External (STDV, IntObj)
ASL Input: dsdt.dsl - 35084 lines, 1098050 bytes, 15467 keywords
Hex Dump: dsdt.hex - 1369008 bytes
Compilation complete. 3 Errors, 350 Warnings, 124 Remarks, 6354 Optimizations, 51 Constants Folded
However I get a compilation error even when running the compile command on the unpatched file. Running iasl 20180105 (Ubuntu 18.04).
If somebody runs into the same issue and finds a solution, please be so kind and report.
exact same error here, i get this rejections:
The lines 14 and 16 are ok, we just need to remove them. What's the case with the others?
--- dsdt.dsl 2018-03-04 16:00:00.866484238 -0800
+++ dsdt.dsl 2018-03-04 16:28:07.933272752 -0800
@@ -195,16 +137,11 @@
External (PC15, UnknownObj)
External (PTTB, UnknownObj)
External (SGMD, UnknownObj)
- External (STDV, IntObj)
- External (TBTD, MethodObj) // 1 Arguments
- External (TBTF, MethodObj) // 1 Arguments
Name (SS1, 0x00)
Name (SS2, 0x00)
Name (SS3, One)
- One
Name (SS4, One)
- One
OperationRegion (GNVS, SystemMemory, 0x4FF4E000, 0x0767)
Field (GNVS, AnyAcc, Lock, Preserve)
{
My system info:
+++ System Info
System = LENOVO ThinkPad X1 Yoga 3rd 20LDCTO1WW
BIOS = N25ET33W (1.19 )
Release = Ubuntu 18.04 LTS
Kernel = 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64
/proc/cmdline = BOOT_IMAGE=/vmlinuz-4.15.0-22-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash
Init system = systemd v237
Boot mode = UEFI
ok i removed the lines from my dsl files and compilation runs through with no errors...
- External (STDV, IntObj)
- External (TBTD, MethodObj) // 1 Arguments
- External (TBTF, MethodObj) // 1 Arguments
Maybe this helps some ppls :)
Following the instructions from https://delta-xi.net/#056 I run into the patch issues in Hunk 7 (that is those two One
lines). When I compile with the broken patch I do get a compilation error:
Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl 355: Name (SS4, One)
Error 6126 - ^ syntax error, unexpected PARSEOP_NAME
After removing both One
lines I do end up getting a segmentation fault though:
iASL: Segmentation Fault
iASL: Terminating
Any ideas? Thanks!
@tobstarr, I get your same error (after the patch issue with Hunk 7), any luck in solving this?
Thank you
I'm also getting the compile error with Name (SS4, One)
... did you guys have problems decompiling your DSDT? I was actually having problems with the patch because my iasl -d dsdl.aml
produces the following in my dsdl.dsl
:
* iASL Warning: There were 95 external control methods found during
* disassembly, but only 94 were resolved (1 unresolved). Additional
...etc, and then later:
External (HIWC, MethodObj) // Warning: Unknown method, guessing 1 arguments
This patch has worked for me, however I've noticed that the touchscreen fails to wake from sleep with the rest of the computer. Curious if anyone else has run into this issue. 🤞 that Lenovo releases a bios update with a proper S3 state in it soon, but until then this has been a life saver
@jasminabasurita I have the same issue, the touchscreen also fails to wake up after suspend, everything else is waking up and running just fine, but the touch screen doesn't respond.
@jasminabasurita, @taaem,
I had the same problem with touch screen after suspend, thanks to this:
https://forums.lenovo.com/t5/Other-Linux-Discussions/X1Y3-Touchscreen-not-working-after-resume-on-Linux/td-p/4021200
Its solved.
/usr/sbin/rtcwake -m freeze -s 1
Create systemd service
vi /etc/systemd/system/wake_wacom_hack.service
[Unit]
Description= s2idle fo 1 second after resume
After=suspend.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/rtcwake -m freeze -s 1
[Install]
WantedBy=suspend.target
Enable the service
systemctl enable wake_wacom_hack.service
How stable do you think this is across bios upgrades? I think this was patched for bios v. 1.10. Does it work with 1.11-1.06 (current as of right now)?