Skip to content

Instantly share code, notes, and snippets.

@rickybrent
Forked from fiji-flo/X16_S3_DSDT.patch
Created March 5, 2018 01:04
Show Gist options
  • Save rickybrent/1dabaf78ad03c290aa97489bef7d36fb to your computer and use it in GitHub Desktop.
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,
@taaem
Copy link

taaem commented Oct 21, 2018

@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.

@pashok2398
Copy link

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment