Skip to content

Instantly share code, notes, and snippets.

@mverrilli
Forked from mailhost/dsdt.patch
Created February 5, 2020 08:57
Show Gist options
  • Save mverrilli/598fa96a5d23d76fbbf5d674a61ebaab to your computer and use it in GitHub Desktop.
Save mverrilli/598fa96a5d23d76fbbf5d674a61ebaab to your computer and use it in GitHub Desktop.
Dell Precision 5510 1.10.0 DSDT fixes
--- dsdt.orig 2019-06-10 16:09:40.945676250 +0200
+++ dsdt.dsl 2019-06-10 16:28:15.274723137 +0200
@@ -3905,11 +3905,13 @@
If (LEqual (PM6H, One))
{
CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW) // _RW_: Read-Write Status
- Store (Zero, ECRW (If (PM0H)
- {
- CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN) // _LEN: Length
- Store (Zero, F0LN) /* \_SB_.PCI0._CRS.F0LN */
- }))
+ Store (Zero, ECRW)
+ }
+
+ If (PM0H)
+ {
+ CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN) // _LEN: Length
+ Store (Zero, F0LN) /* \_SB_.PCI0._CRS.F0LN */
}
If (LEqual (PM0H, One))
@@ -17012,14 +17014,6 @@
P8XH (One, 0xAB)
ADBG ("_WAK")
\_SB.PCI0.GEXP.INVC ()
- If (LEqual (Arg0, 0x03))
- {
- Store (One, \_SB.PCI0.SAT0.TFGF) /* External reference */
- }
- Else
- {
- Store (Zero, \_SB.PCI0.SAT0.TFGF) /* External reference */
- }
If (LEqual (S0ID, One))
{
@@ -17317,10 +17311,16 @@
If (LEqual (DPTF, One))
{
- Notify (\_SB.IETM, 0x86) // Device-Specific
- If (LEqual (CHGE, One))
+ If (CondRefOf (\_SB.IETM))
{
- Notify (\_SB.PCI0.LPCB.H_EC.CHRG, 0x80) // Status Change
+ Notify (\_SB.IETM, 0x86) // Device-Specific
+ If (LEqual (CHGE, One))
+ {
+ If (CondRefOf (\_SB.PCI0.LPCB.H_EC.CHRG))
+ {
+ Notify (\_SB.PCI0.LPCB.H_EC.CHRG, 0x80) // Status Change
+ }
+ }
}
}
}
@@ -18527,6 +18527,84 @@
ADBG ("OS_Up_Received")
If (LEqual (DPTF, One))
{
+ XE42 ()
+ }
+
+ Return (Zero)
+ }
+
+ If (LEqual (Local1, 0x02))
+ {
+ NTFY ()
+ Sleep (0x10)
+ Release (OSUM)
+ P8XH (Zero, 0x7D)
+ ADBG ("Disconnect")
+ Return (Zero)
+ }
+
+ If (LEqual (SOHP, One))
+ {
+ ADBG ("TBT SW SMI")
+ Store (TBSW, SSMP) /* \_GPE._E42.SSMP */
+ }
+
+ Sleep (0x20)
+ NTFY ()
+ Sleep (0x10)
+ Release (OSUM)
+ ADBG ("End-of-_E42")
+ }
+
+ Method (XE42, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF
+ {
+ ADBG ("_E42")
+ If (LEqual (CF2T, One))
+ {
+ ADBG ("Clear")
+ ADBG ("GPI_GPE_STS")
+ \_SB.CAGS (CPGN)
+ }
+
+ WWAK ()
+ WSUB ()
+ If (LEqual (TNAT, One))
+ {
+ Store (RSMI (), Local0)
+ If (LNot (Local0))
+ {
+ Return (Zero)
+ }
+
+ If (DMSI ())
+ {
+ Return (Zero)
+ }
+ }
+
+ If (GNIS ())
+ {
+ Return (Zero)
+ }
+
+ OperationRegion (SPRT, SystemIO, 0xB2, 0x02)
+ Field (SPRT, ByteAcc, Lock, Preserve)
+ {
+ SSMP, 8
+ }
+
+ ADBG ("TBT-HP-Handler")
+ ADBG ("PEG WorkAround")
+ PGWA ()
+ Acquire (OSUM, 0xFFFF)
+ Store (TBFF (), Local1)
+ If (LEqual (Local1, One))
+ {
+ Sleep (0x10)
+ Release (OSUM)
+ ADBG ("OS_Up_Received")
+ If (LEqual (DPTF, One))
+ {
_E42 ()
}
@@ -33363,6 +33441,75 @@
}
}
}
+
+ Scope (_SB.PCI0.LPCB)
+ {
+ Device (H_EC)
+ {
+ Name (_HID, EisaId ("PNP0C09")) // _HID: Hardware ID
+ Name (_UID, One) // _UID: Unique ID
+ Method (_STA, 0, NotSerialized) // _STA: Status
+ {
+ Return (Zero)
+ }
+
+ Name (B1CC, Zero)
+ Name (B1ST, Zero)
+ Name (B2CC, Zero)
+ Name (B2ST, Zero)
+ Name (CFAN, Zero)
+ Name (CMDR, Zero)
+ Name (DOCK, Zero)
+ Name (EJET, Zero)
+ Name (MCAP, Zero)
+ Name (PLMX, Zero)
+ Name (PECH, Zero)
+ Name (PECL, Zero)
+ Name (PENV, Zero)
+ Name (PINV, Zero)
+ Name (PPSH, Zero)
+ Name (PPSL, Zero)
+ Name (PSTP, Zero)
+ Name (RPWR, Zero)
+ Name (LIDS, Zero)
+ Name (LSTE, Zero)
+ Name (SLPC, Zero)
+ Name (VPWR, Zero)
+ Name (WTMS, Zero)
+ Name (AWT2, Zero)
+ Name (AWT1, Zero)
+ Name (AWT0, Zero)
+ Name (DLED, Zero)
+ Name (IBT1, Zero)
+ Name (ECAV, Zero)
+ Name (SPT2, Zero)
+ Name (PB10, Zero)
+ Name (IWCW, Zero)
+ Name (IWCR, Zero)
+ Method (ECMD, 1, Serialized)
+ {
+ If (ECON)
+ {
+ While (CMDR)
+ {
+ Stall (0x14)
+ }
+
+ Store (Arg0, CMDR)
+ }
+ }
+
+ Method (ECRD, 1, Serialized)
+ {
+ Return (DerefOf (Arg0))
+ }
+
+ Method (ECWT, 2, Serialized)
+ {
+ Store (Arg0, Arg1)
+ }
+ }
+ }
Scope (_SB.PCI0.LPCB)
{
// iasl -fe refs.txt -dl -e ssdt01.dat ssdt02.dat ssdt03.dat ssdt04.dat ssdt05.dat ssdt06.dat ssdt07.dat ssdt08.dat ssdt09.dat ssdt10.dat ssdt11.dat ssdt12.dat ssdt13.dat ssdt14.dat ssdt15.dat ssdt16.dat -d dsdt.dat
// be careful using iasl -da, since it might not load the SSDT in the correct order!
// missing refs for dsdt.dsl that iasl will most likely guess correctly
External (_SB_.PCI0.PAUD.PUAM, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (_SB_.PCI0.XHC_.DUAM, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (_SB_.PCI0.XHC_.RHUB.INIR, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (_SB_.TPM_.PTS_, MethodObj, 1) // Warning: Unknown method, guessing 1 arguments
External (AL6F, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (HLVT, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (PS0X, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (PS2X, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (PS3X, MethodObj) // Warning: Unknown method, guessing 0 arguments
//dsdt.dsl 13182: Arg1
//Error 6126 - ^ syntax error, unexpected PARSEOP_ARG1
External (_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External (_SB.PCI0.SAT1.SDSM, MethodObj, 4)
//dsdt.dsl 16955: }
//Error 6126 - ^ syntax error, unexpected '}'
External (MDBG, MethodObj, 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment