Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
--- 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,
@roblem

This comment has been minimized.

Show comment Hide comment
@roblem

roblem Apr 22, 2018

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)?

roblem commented Apr 22, 2018

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)?

@d10r

This comment has been minimized.

Show comment Hide comment
@d10r

d10r May 3, 2018

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.

d10r commented May 3, 2018

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.

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