Skip to content

Instantly share code, notes, and snippets.

@mailhost
Created June 10, 2019 14:32
Show Gist options
  • Save mailhost/d5b27b247fa26d8bdc8a5d2022347306 to your computer and use it in GitHub Desktop.
Save mailhost/d5b27b247fa26d8bdc8a5d2022347306 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)
@mverrilli
Copy link

mverrilli commented Feb 5, 2020

@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