Created
June 10, 2019 14:32
-
-
Save mailhost/d5b27b247fa26d8bdc8a5d2022347306 to your computer and use it in GitHub Desktop.
Dell Precision 5510 1.10.0 DSDT fixes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- 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) | |
{ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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) |
@mailhost Thanks. I was able to get this working (I forgot about the revision but eventually figured that out). This worked for me on BIOS 1.13.1 with UEFI and Kernel 5.3.
I still get some errors and I haven't really had a chance to dig into them but the laptop does work better with this patch. If I get time I'll look closer into these. I still have trouble with the nvidia which seems to really slow down under certain workloads so I'm using intel or now.
[ 0.270605] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.EBAS], AE_NOT_FOUND (20190703/psargs-330)
[ 0.270612] ACPI: Ignoring error and continuing table load
[ 0.270625] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.PCI2], AE_NOT_FOUND (20190703/dsfield-502)
[ 0.270645] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.NVHA], AE_NOT_FOUND (20190703/psargs-330)
[ 0.270648] ACPI: Ignoring error and continuing table load
[ 0.270662] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PEG0.PEGP.NVHM], AE_NOT_FOUND (20190703/dsfield-502)
[ 0.270699] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GFX0.NVGA], AE_NOT_FOUND (20190703/psargs-330)
[ 0.270702] ACPI: Ignoring error and continuing table load
[ 0.270722] ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GFX0.NVIG], AE_NOT_FOUND (20190703/dsfield-502)
[ 0.375844] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.453710] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
[ 0.453755] acpi PNP0A08:00: _OSC failed (AE_ERROR); disabling ASPM
[ 3.995467] ACPI Warning: \_SB.IETM._ART: Return Package type mismatch at index 0 - found Integer, expected Reference (20190703/nspredef-263)
[ 3.995488] ACPI: Invalid package element [0]: got number, expecting [R]
[ 3.995648] ACPI Warning: \_SB.IETM._TRT: Return Package has no elements (empty) (20190703/nsprepkg-96)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I forgot to mention: in order for the modified DSDT to be picked-up/loaded by the kernel, you need to increment the 'version' found in the
DefinitionBlock
of the modified dsdt.dsl (before you iasl compile it),e.g.
DefinitionBlock ("", "DSDT", 2, "DELL ", "CBX3 ", 0x01072009)
...could turn into...
DefinitionBlock ("", "DSDT", 2, "DELL ", "CBX3 ", 0x0107200A)