kgp
Retired
- Joined
- May 30, 2014
- Messages
- 6,745
- Motherboard
- ASUS WS X299 Sage 10G
- CPU
- i9-7980XE
- Graphics
- Vega 64
- Mac
- Mobile Phone
Did you change Method name _L69 to _L70?
No, not yet.. should I?
Did you change Method name _L69 to _L70?
Did you change Method name _L69 to _L70?
Hi KGPSame errors as with _L70 and the USB-C stick is not accessible (visible) after boot, although the TB USB3.1 driver is loaded under PCI (same with _L69).
Previous Combo version before implementing your latest modifications did not show any issues in properly implementing USB-C devices on boot.
View attachment 343137
Hi KGP
Try this SSDT Check api errors or not
If USB-C not work well add Previous entry to DSB2
Hi KGP
Try this SSDT Check api errors or not
If USB-C not work well add Previous entry to DSB2
Device (DSB2)
{
Name (_ADR, 0x00020000) // _ADR: Address
OperationRegion (PXCS, PCI_Config, Zero, 0xE0)
Field (PXCS, AnyAcc, NoLock, Preserve)
{
VDID, 32,
Offset (0x54),
, 6,
HPCE, 1,
Offset (0x5A),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset (0x5B),
Offset (0x60),
Offset (0x62),
PMEX, 1,
Offset (0xDC),
, 31,
PMCS, 1
}
OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
Field (PPA4, ByteAcc, NoLock, Preserve)
{
Offset (0xAB),
Offset (0xB0),
Offset (0xB2),
PMES, 1,
PMEP, 1
}
Method (PMEH, 1, NotSerialized)
{
If (And (HPEV (), SSTS ()))
{
If (ABPS (Zero))
{
ABPS (One)
Sleep (0xC8)
}
}
Return (0xFF)
}
Method (HPEH, 1, NotSerialized)
{
If (LNot (HPCP ()))
{
Return (0xFF)
}
Store (0xFE, IO80)
Sleep (0x64)
Store (Zero, CCIE)
If (And (HPEV (), SSTS ()))
{
Store (0xFD, IO80)
Sleep (0x0A)
Store (PPXH (Zero), Local0)
Return (Local0)
}
Else
{
Return (0xFF)
}
Store (0xFC, IO80)
Sleep (0x0A)
}
Method (DEVS, 0, NotSerialized)
{
If (LEqual (VDID, Ones))
{
Return (Zero)
}
Else
{
Return (0x0F)
}
}
Method (HPME, 0, Serialized)
{
If (PMEX)
{
Store (0xC8, Local0)
While (Local0)
{
Store (One, PMEX)
If (PMEX)
{
Decrement (Local0)
}
Else
{
Store (Zero, Local0)
}
}
Store (One, PMCS)
}
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM ())
{
Return (AG16 ())
}
Return (PG16 ())
}
DSDT-Code:
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (LTR3, LTRZ)
Store (PML3, LMSL)
Store (PNL3, LNSL)
Store (OBF3, OBFZ)
}
OperationRegion (PXCS, PCI_Config, Zero, 0x0480)
Field (PXCS, AnyAcc, NoLock, Preserve)
{
VDID, 32,
Offset (0x50),
L0SE, 1,
, 3,
LDIS, 1,
Offset (0x51),
Offset (0x52),
, 13,
LASX, 1,
Offset (0x5A),
ABPX, 1,
, 2,
PDCX, 1,
, 2,
PDSX, 1,
Offset (0x5B),
Offset (0x60),
Offset (0x62),
PSPX, 1,
Offset (0xA4),
D3HT, 2,
Offset (0xD8),
, 30,
HPEX, 1,
PMEX, 1,
Offset (0xE2),
, 2,
L23E, 1,
L23R, 1,
Offset (0x324),
, 3,
LEDM, 1,
Offset (0x420),
, 30,
DPGE, 1
}
Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
{
Offset (0xDC),
, 30,
HPSX, 1,
PMSX, 1
}
Name (LTRV, Package (0x04)
{
Zero,
Zero,
Zero,
Zero
})
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
If (LEqual (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
{
Switch (ToInteger (Arg2))
{
Case (Zero)
{
Name (OPTS, Buffer (0x02)
{
0x00, 0x00
})
CreateBitField (OPTS, Zero, FUN0)
CreateBitField (OPTS, 0x04, FUN4)
CreateBitField (OPTS, 0x06, FUN6)
CreateBitField (OPTS, 0x08, FUN8)
CreateBitField (OPTS, 0x09, FUN9)
If (LGreaterEqual (Arg1, 0x02))
{
Store (One, FUN0)
If (LTRE)
{
Store (One, FUN6)
}
If (OBFF)
{
Store (One, FUN4)
}
If (LEqual (ECR1, One))
{
If (LGreaterEqual (Arg1, 0x03))
{
Store (One, FUN8)
Store (One, FUN9)
}
}
}
Return (OPTS)
}
Case (0x04)
{
If (LGreaterEqual (Arg1, 0x02))
{
If (OBFZ)
{
Return (Buffer (0x10)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
})
}
Else
{
Return (Buffer (0x10)
{
/* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
}
}
}
Case (0x06)
{
If (LGreaterEqual (Arg1, 0x02))
{
If (LTRZ)
{
If (LOr (LEqual (LMSL, Zero), LEqual (LNSL, Zero)))
{
If (LEqual (PCHS, SPTH))
{
Store (0x0846, LMSL)
Store (0x0846, LNSL)
}
ElseIf (LEqual (PCHS, SPTL))
{
Store (0x1003, LMSL)
Store (0x1003, LNSL)
}
}
Store (And (ShiftRight (LMSL, 0x0A), 0x07), Index (LTRV, Zero))
Store (And (LMSL, 0x03FF), Index (LTRV, One))
Store (And (ShiftRight (LNSL, 0x0A), 0x07), Index (LTRV, 0x02))
Store (And (LNSL, 0x03FF), Index (LTRV, 0x03))
Return (LTRV)
}
Else
{
Return (Zero)
}
}
}
Case (0x08)
{
If (LEqual (ECR1, One))
{
If (LGreaterEqual (Arg1, 0x03))
{
Return (One)
}
}
}
Case (0x09)
{
If (LEqual (ECR1, One))
{
If (LGreaterEqual (Arg1, 0x03))
{
Return (Package (0x05)
{
0xC350,
Ones,
Ones,
0xC350,
Ones
})
}
}
}
}
}
Return (Buffer (One)
{
0x00
})
}
Device (PXSX)
{
Name (_ADR, Zero) // _ADR: Address
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x35, 0x04))
}
}
Method (HPME, 0, Serialized)
{
If (LAnd (LNotEqual (VDID, 0xFFFFFFFF), LEqual (PMSX, One)))
{
Notify (PXSX, 0x02)
Store (One, PMSX)
Store (One, PSPX)
}
}
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x35, 0x04))
}
}
DSDT-Code:
OperationRegion (MCTL, SystemMemory, 0x60000188, 0x04)
Field (MCTL, ByteAcc, NoLock, Preserve)
{
, 3,
HGPE, 1,
, 7,
, 8,
, 8
}
Method (_INI, 0, NotSerialized) // _INI: Initialize
{
Store (One, HGPE)
}
Name (_HPP, Package (0x04) // _HPP: Hot Plug Parameters
{
0x08,
0x40,
One,
Zero
})
Name (SHPC, 0x40)
Name (SPDS, 0x40)
Name (MRLS, Zero)
Name (CCOM, 0x10)
Name (SPDC, 0x08)
Name (MRLC, 0x04)
Name (SPFD, 0x02)
Name (SABP, One)
Name (SPOF, 0x10)
Name (SPON, 0x0F)
Name (ALMK, 0x1C)
Name (ALON, One)
Name (ALBL, 0x02)
Name (ALOF, 0x03)
Name (PLMK, 0x13)
Name (PLON, 0x04)
Name (PLBL, 0x08)
Name (PLOF, 0x0C)
Name (HPEV, 0x0F)
OperationRegion (PPA4, PCI_Config, Zero, 0x0100)
Field (PPA4, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
, 4,
LDIS, 1,
Offset (0xA2),
Offset (0xA4),
ATBP, 1,
, 1,
MRSP, 1,
ATIP, 1,
PWIP, 1,
, 14,
PSNM, 13,
ABIE, 1,
PFIE, 1,
MSIE, 1,
PDIE, 1,
CCIE, 1,
HPIE, 1,
SCTL, 5,
Offset (0xAA),
SSTS, 7,
Offset (0xAB),
Offset (0xB0),
Offset (0xB2),
PMES, 1,
PMEP, 1,
Offset (0xB4)
}
Method (ATID, 0, NotSerialized)
{
Return (And (SCTL, 0x03))
}
Method (PWID, 0, NotSerialized)
{
Return (ShiftRight (And (SCTL, 0x0C), 0x02))
}
Method (PWCC, 0, NotSerialized)
{
Return (ShiftRight (And (SCTL, 0x10), 0x04))
}
Method (ABPS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, One, SSTS)
}
Return (And (SSTS, One))
}
Method (PFDS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x02, SSTS)
}
Return (ShiftRight (And (SSTS, 0x02), One))
}
Method (MSCS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x04, SSTS)
}
Return (ShiftRight (And (SSTS, 0x04), 0x02))
}
Method (PDCS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x08, SSTS)
}
Return (ShiftRight (And (SSTS, 0x08), 0x03))
}
Method (CMCS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x10, SSTS)
}
Return (ShiftRight (And (SSTS, 0x10), 0x04))
}
Method (MSSC, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x20, SSTS)
}
Return (ShiftRight (And (SSTS, 0x20), 0x05))
}
Method (PRDS, 1, NotSerialized)
{
If (LEqual (Arg0, One))
{
Or (SSTS, 0x40, SSTS)
}
Return (ShiftRight (And (SSTS, 0x40), 0x06))
}
Method (OSHP, 0, NotSerialized)
{
Store (SSTS, SSTS)
Store (Zero, HGPE)
}
Method (HPCC, 1, NotSerialized)
{
Store (SCTL, Local0)
Store (Zero, Local1)
If (LNotEqual (Arg0, Local0))
{
Store (Arg0, SCTL)
While (LAnd (LNot (CMCS (Zero)), LNotEqual (0x64, Local1)))
{
Store (0xFB, IO80)
Sleep (0x02)
Add (Local1, 0x02, Local1)
}
CMCS (One)
}
}
Method (ATCM, 1, NotSerialized)
{
Store (SCTL, Local0)
And (Local0, ALMK, Local0)
If (LEqual (Arg0, One))
{
Or (Local0, ALON, Local0)
}
If (LEqual (Arg0, 0x02))
{
Or (Local0, ALBL, Local0)
}
If (LEqual (Arg0, 0x03))
{
Or (Local0, ALOF, Local0)
}
HPCC (Local0)
}
Method (PWCM, 1, NotSerialized)
{
Store (SCTL, Local0)
And (Local0, PLMK, Local0)
If (LEqual (Arg0, One))
{
Or (Local0, PLON, Local0)
}
If (LEqual (Arg0, 0x02))
{
Or (Local0, PLBL, Local0)
}
If (LEqual (Arg0, 0x03))
{
Or (Local0, PLOF, Local0)
}
HPCC (Local0)
}
Method (PWSL, 1, NotSerialized)
{
Store (SCTL, Local0)
If (Arg0)
{
And (Local0, SPON, Local0)
}
Else
{
Or (Local0, SPOF, Local0)
}
HPCC (Local0)
}
Method (_OST, 3, Serialized) // _OST: OSPM Status Indication
{
Switch (And (Arg0, 0xFF))
{
Case (0x03)
{
Switch (ToInteger (Arg1))
{
Case (Package (0x04)
{
0x80,
0x81,
0x82,
0x83
}
)
{
If (LNot (PWCC ()))
{
PWCM (One)
Store (One, ABIE)
}
}
}
}
}
}
Method (EJ0L, 0, NotSerialized)
{
Store (0xFF, IO80)
Store (SCTL, Local0)
If (LNotEqual (ATID (), One))
{
And (Local0, ALMK, Local0)
Or (Local0, ALBL, Local0)
}
HPCC (Local0)
Store (SCTL, Local0)
Or (Local0, SPOF, Local0)
HPCC (Local0)
Store (SCTL, Local0)
Or (Local0, PLOF, Local0)
HPCC (Local0)
Store (SCTL, Local0)
Or (Local0, ALOF, Local0)
HPCC (Local0)
}
Method (PMEH, 1, NotSerialized)
{
If (And (HPEV, SSTS))
{
If (ABPS (Zero))
{
Store (Arg0, IO80)
ABPS (One)
Sleep (0xC8)
}
}
Return (0xFF)
}
Method (HPEH, 1, NotSerialized)
{
Store (0xFE, IO80)
Sleep (0x64)
Store (Zero, CCIE)
If (And (HPEV, SSTS))
{
Store (0xFD, IO80)
Sleep (0x0A)
Store (Arg0, IO80)
Sleep (0x0A)
Store (PPXH (), Local0)
Return (Local0)
}
Else
{
Return (0xFF)
}
Store (0xFC, IO80)
Sleep (0x0A)
}
Method (PPXH, 0, NotSerialized)
{
Sleep (0xC8)
If (ABPS (Zero))
{
If (LNot (PRDS (Zero)))
{
Store (One, LDIS)
PWSL (Zero)
PWCM (0x03)
If (LEqual (MSSC (Zero), MRLS))
{
ATCM (0x02)
}
Else
{
ATCM (0x03)
}
Store (Zero, ABIE)
ABPS (One)
Sleep (0xC8)
Return (0xFF)
}
Store (Zero, ABIE)
ABPS (One)
Sleep (0xC8)
If (PWCC ())
{
PWCM (0x03)
ATCM (0x02)
Return (0xFF)
}
Else
{
PWCM (0x02)
Sleep (0x0258)
Store (0x0258, Local0)
ABPS (One)
Sleep (0xC8)
While (LNot (ABPS (Zero)))
{
Sleep (0xC8)
Add (Local0, 0xC8, Local0)
If (LEqual (0x1388, Local0))
{
ABPS (One)
Sleep (0xC8)
Return (0x03)
}
}
PWCM (One)
ABPS (One)
Sleep (0xC8)
Store (One, ABIE)
Return (0xFF)
}
}
If (PFDS (Zero))
{
PFDS (One)
PWSL (Zero)
PWCM (0x03)
ATCM (One)
Store (One, LDIS)
Return (0x03)
}
If (MSCS (Zero))
{
MSCS (One)
If (LEqual (MSSC (Zero), MRLS))
{
If (PRDS (Zero))
{
ATCM (0x03)
PWCM (0x02)
Sleep (0x0258)
Store (0x0258, Local0)
ABPS (One)
While (LNot (ABPS (Zero)))
{
Sleep (0xC8)
Add (Local0, 0xC8, Local0)
If (LEqual (0x1388, Local0))
{
Store (One, ABIE)
ATCM (0x03)
Store (Zero, LDIS)
PWSL (One)
Sleep (0x01F4)
If (LNot (PFDS (Zero)))
{
PWCM (One)
Store (Zero, Local1)
Store (One, ABIE)
}
Else
{
PWSL (Zero)
PWCM (0x03)
ATCM (One)
Store (One, LDIS)
Store (0x03, Local1)
}
ABPS (One)
Sleep (0xC8)
Return (Local1)
}
}
ABPS (One)
Sleep (0xC8)
PWSL (Zero)
PWCM (0x03)
ATCM (0x02)
Store (One, LDIS)
Return (0xFF)
}
PWSL (Zero)
PWCM (0x03)
ATCM (0x02)
Store (One, LDIS)
Return (0xFF)
}
Else
{
If (PRDS (Zero))
{
ATCM (0x02)
If (LNot (PWCC ()))
{
PWSL (Zero)
PWCM (0x03)
Store (One, LDIS)
Return (0x03)
}
Else
{
Return (0xFF)
}
}
ATCM (0x03)
Return (0xFF)
}
}
If (PDCS (Zero))
{
PDCS (One)
If (LNot (PRDS (Zero)))
{
PWSL (Zero)
PWCM (0x03)
If (LEqual (MSSC (Zero), MRLS))
{
ATCM (0x02)
}
Else
{
ATCM (0x03)
}
Store (One, LDIS)
Return (0xFF)
}
Else
{
Store (Zero, LDIS)
PWSL (One)
Sleep (0x01F4)
If (LNot (PFDS (Zero)))
{
PWCM (One)
Store (Zero, Local1)
Store (One, ABIE)
ATCM (0x03)
}
Else
{
PWSL (Zero)
PWCM (0x03)
ATCM (One)
Store (One, LDIS)
Store (0x03, Local1)
}
ABPS (One)
Sleep (0xC8)
Return (Local1)
}
}
Return (0xFF)
}
Method (SNUM, 0, Serialized)
{
Store (PSNM, Local0)
Return (Local0)
}
Method (_SUN, 0, NotSerialized) // _SUN: Slot User Number
{
Return (SNUM ())
}
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (Package (0x02)
{
0x69,
0x04
})
}
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
If (PICM)
{
Return (AG12)
}
Return (PG12)
}
Method (_L69, 0, NotSerialized) // _Lxx: Level-Triggered GPE
{
If (LNotEqual (\_SB.PC01.BR1A.VDID (), Ones))
{
\_SB.PC01.BR1A.HPME ()
Notify (\_SB.PC01.BR1A.UPSB, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB0, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB0.NHI0, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB1, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB2, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB2.XHC5, 0x02)
Notify (\_SB.PC01.BR1A.UPSB.DSB4, 0x02)
}
}
IF DSB0,DSB1,DSB2,DSB3,DSB4@nmano
can you explain me why you use in the TB-SSDT the DSDT ACPI implementation for RPXX in case of DSB2
Code:DSDT-Code: Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (LTR3, LTRZ) Store (PML3, LMSL) Store (PNL3, LNSL) Store (OBF3, OBFZ) } OperationRegion (PXCS, PCI_Config, Zero, 0x0480) Field (PXCS, AnyAcc, NoLock, Preserve) { VDID, 32, Offset (0x50), L0SE, 1, , 3, LDIS, 1, Offset (0x51), Offset (0x52), , 13, LASX, 1, Offset (0x5A), ABPX, 1, , 2, PDCX, 1, , 2, PDSX, 1, Offset (0x5B), Offset (0x60), Offset (0x62), PSPX, 1, Offset (0xA4), D3HT, 2, Offset (0xD8), , 30, HPEX, 1, PMEX, 1, Offset (0xE2), , 2, L23E, 1, L23R, 1, Offset (0x324), , 3, LEDM, 1, Offset (0x420), , 30, DPGE, 1 } Field (PXCS, AnyAcc, NoLock, WriteAsZeros) { Offset (0xDC), , 30, HPSX, 1, PMSX, 1 } Name (LTRV, Package (0x04) { Zero, Zero, Zero, Zero }) Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method { If (LEqual (Arg0, ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */)) { Switch (ToInteger (Arg2)) { Case (Zero) { Name (OPTS, Buffer (0x02) { 0x00, 0x00 }) CreateBitField (OPTS, Zero, FUN0) CreateBitField (OPTS, 0x04, FUN4) CreateBitField (OPTS, 0x06, FUN6) CreateBitField (OPTS, 0x08, FUN8) CreateBitField (OPTS, 0x09, FUN9) If (LGreaterEqual (Arg1, 0x02)) { Store (One, FUN0) If (LTRE) { Store (One, FUN6) } If (OBFF) { Store (One, FUN4) } If (LEqual (ECR1, One)) { If (LGreaterEqual (Arg1, 0x03)) { Store (One, FUN8) Store (One, FUN9) } } } Return (OPTS) } Case (0x04) { If (LGreaterEqual (Arg1, 0x02)) { If (OBFZ) { Return (Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00 }) } Else { Return (Buffer (0x10) { /* 0000 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) } } } Case (0x06) { If (LGreaterEqual (Arg1, 0x02)) { If (LTRZ) { If (LOr (LEqual (LMSL, Zero), LEqual (LNSL, Zero))) { If (LEqual (PCHS, SPTH)) { Store (0x0846, LMSL) Store (0x0846, LNSL) } ElseIf (LEqual (PCHS, SPTL)) { Store (0x1003, LMSL) Store (0x1003, LNSL) } } Store (And (ShiftRight (LMSL, 0x0A), 0x07), Index (LTRV, Zero)) Store (And (LMSL, 0x03FF), Index (LTRV, One)) Store (And (ShiftRight (LNSL, 0x0A), 0x07), Index (LTRV, 0x02)) Store (And (LNSL, 0x03FF), Index (LTRV, 0x03)) Return (LTRV) } Else { Return (Zero) } } } Case (0x08) { If (LEqual (ECR1, One)) { If (LGreaterEqual (Arg1, 0x03)) { Return (One) } } } Case (0x09) { If (LEqual (ECR1, One)) { If (LGreaterEqual (Arg1, 0x03)) { Return (Package (0x05) { 0xC350, Ones, Ones, 0xC350, Ones }) } } } } } Return (Buffer (One) { 0x00 }) } Device (PXSX) { Name (_ADR, Zero) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x35, 0x04)) } } Method (HPME, 0, Serialized) { If (LAnd (LNotEqual (VDID, 0xFFFFFFFF), LEqual (PMSX, One))) { Notify (PXSX, 0x02) Store (One, PMSX) Store (One, PSPX) } } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x35, 0x04)) } }
but the one of BRXX for USPB, DSB0, DSB1 and DSB4?
Code:DSDT-Code: OperationRegion (MCTL, SystemMemory, 0x60000188, 0x04) Field (MCTL, ByteAcc, NoLock, Preserve) { , 3, HGPE, 1, , 7, , 8, , 8 } Method (_INI, 0, NotSerialized) // _INI: Initialize { Store (One, HGPE) } Name (_HPP, Package (0x04) // _HPP: Hot Plug Parameters { 0x08, 0x40, One, Zero }) Name (SHPC, 0x40) Name (SPDS, 0x40) Name (MRLS, Zero) Name (CCOM, 0x10) Name (SPDC, 0x08) Name (MRLC, 0x04) Name (SPFD, 0x02) Name (SABP, One) Name (SPOF, 0x10) Name (SPON, 0x0F) Name (ALMK, 0x1C) Name (ALON, One) Name (ALBL, 0x02) Name (ALOF, 0x03) Name (PLMK, 0x13) Name (PLON, 0x04) Name (PLBL, 0x08) Name (PLOF, 0x0C) Name (HPEV, 0x0F) OperationRegion (PPA4, PCI_Config, Zero, 0x0100) Field (PPA4, ByteAcc, NoLock, Preserve) { Offset (0xA0), , 4, LDIS, 1, Offset (0xA2), Offset (0xA4), ATBP, 1, , 1, MRSP, 1, ATIP, 1, PWIP, 1, , 14, PSNM, 13, ABIE, 1, PFIE, 1, MSIE, 1, PDIE, 1, CCIE, 1, HPIE, 1, SCTL, 5, Offset (0xAA), SSTS, 7, Offset (0xAB), Offset (0xB0), Offset (0xB2), PMES, 1, PMEP, 1, Offset (0xB4) } Method (ATID, 0, NotSerialized) { Return (And (SCTL, 0x03)) } Method (PWID, 0, NotSerialized) { Return (ShiftRight (And (SCTL, 0x0C), 0x02)) } Method (PWCC, 0, NotSerialized) { Return (ShiftRight (And (SCTL, 0x10), 0x04)) } Method (ABPS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, One, SSTS) } Return (And (SSTS, One)) } Method (PFDS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x02, SSTS) } Return (ShiftRight (And (SSTS, 0x02), One)) } Method (MSCS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x04, SSTS) } Return (ShiftRight (And (SSTS, 0x04), 0x02)) } Method (PDCS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x08, SSTS) } Return (ShiftRight (And (SSTS, 0x08), 0x03)) } Method (CMCS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x10, SSTS) } Return (ShiftRight (And (SSTS, 0x10), 0x04)) } Method (MSSC, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x20, SSTS) } Return (ShiftRight (And (SSTS, 0x20), 0x05)) } Method (PRDS, 1, NotSerialized) { If (LEqual (Arg0, One)) { Or (SSTS, 0x40, SSTS) } Return (ShiftRight (And (SSTS, 0x40), 0x06)) } Method (OSHP, 0, NotSerialized) { Store (SSTS, SSTS) Store (Zero, HGPE) } Method (HPCC, 1, NotSerialized) { Store (SCTL, Local0) Store (Zero, Local1) If (LNotEqual (Arg0, Local0)) { Store (Arg0, SCTL) While (LAnd (LNot (CMCS (Zero)), LNotEqual (0x64, Local1))) { Store (0xFB, IO80) Sleep (0x02) Add (Local1, 0x02, Local1) } CMCS (One) } } Method (ATCM, 1, NotSerialized) { Store (SCTL, Local0) And (Local0, ALMK, Local0) If (LEqual (Arg0, One)) { Or (Local0, ALON, Local0) } If (LEqual (Arg0, 0x02)) { Or (Local0, ALBL, Local0) } If (LEqual (Arg0, 0x03)) { Or (Local0, ALOF, Local0) } HPCC (Local0) } Method (PWCM, 1, NotSerialized) { Store (SCTL, Local0) And (Local0, PLMK, Local0) If (LEqual (Arg0, One)) { Or (Local0, PLON, Local0) } If (LEqual (Arg0, 0x02)) { Or (Local0, PLBL, Local0) } If (LEqual (Arg0, 0x03)) { Or (Local0, PLOF, Local0) } HPCC (Local0) } Method (PWSL, 1, NotSerialized) { Store (SCTL, Local0) If (Arg0) { And (Local0, SPON, Local0) } Else { Or (Local0, SPOF, Local0) } HPCC (Local0) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { Switch (And (Arg0, 0xFF)) { Case (0x03) { Switch (ToInteger (Arg1)) { Case (Package (0x04) { 0x80, 0x81, 0x82, 0x83 } ) { If (LNot (PWCC ())) { PWCM (One) Store (One, ABIE) } } } } } } Method (EJ0L, 0, NotSerialized) { Store (0xFF, IO80) Store (SCTL, Local0) If (LNotEqual (ATID (), One)) { And (Local0, ALMK, Local0) Or (Local0, ALBL, Local0) } HPCC (Local0) Store (SCTL, Local0) Or (Local0, SPOF, Local0) HPCC (Local0) Store (SCTL, Local0) Or (Local0, PLOF, Local0) HPCC (Local0) Store (SCTL, Local0) Or (Local0, ALOF, Local0) HPCC (Local0) } Method (PMEH, 1, NotSerialized) { If (And (HPEV, SSTS)) { If (ABPS (Zero)) { Store (Arg0, IO80) ABPS (One) Sleep (0xC8) } } Return (0xFF) } Method (HPEH, 1, NotSerialized) { Store (0xFE, IO80) Sleep (0x64) Store (Zero, CCIE) If (And (HPEV, SSTS)) { Store (0xFD, IO80) Sleep (0x0A) Store (Arg0, IO80) Sleep (0x0A) Store (PPXH (), Local0) Return (Local0) } Else { Return (0xFF) } Store (0xFC, IO80) Sleep (0x0A) } Method (PPXH, 0, NotSerialized) { Sleep (0xC8) If (ABPS (Zero)) { If (LNot (PRDS (Zero))) { Store (One, LDIS) PWSL (Zero) PWCM (0x03) If (LEqual (MSSC (Zero), MRLS)) { ATCM (0x02) } Else { ATCM (0x03) } Store (Zero, ABIE) ABPS (One) Sleep (0xC8) Return (0xFF) } Store (Zero, ABIE) ABPS (One) Sleep (0xC8) If (PWCC ()) { PWCM (0x03) ATCM (0x02) Return (0xFF) } Else { PWCM (0x02) Sleep (0x0258) Store (0x0258, Local0) ABPS (One) Sleep (0xC8) While (LNot (ABPS (Zero))) { Sleep (0xC8) Add (Local0, 0xC8, Local0) If (LEqual (0x1388, Local0)) { ABPS (One) Sleep (0xC8) Return (0x03) } } PWCM (One) ABPS (One) Sleep (0xC8) Store (One, ABIE) Return (0xFF) } } If (PFDS (Zero)) { PFDS (One) PWSL (Zero) PWCM (0x03) ATCM (One) Store (One, LDIS) Return (0x03) } If (MSCS (Zero)) { MSCS (One) If (LEqual (MSSC (Zero), MRLS)) { If (PRDS (Zero)) { ATCM (0x03) PWCM (0x02) Sleep (0x0258) Store (0x0258, Local0) ABPS (One) While (LNot (ABPS (Zero))) { Sleep (0xC8) Add (Local0, 0xC8, Local0) If (LEqual (0x1388, Local0)) { Store (One, ABIE) ATCM (0x03) Store (Zero, LDIS) PWSL (One) Sleep (0x01F4) If (LNot (PFDS (Zero))) { PWCM (One) Store (Zero, Local1) Store (One, ABIE) } Else { PWSL (Zero) PWCM (0x03) ATCM (One) Store (One, LDIS) Store (0x03, Local1) } ABPS (One) Sleep (0xC8) Return (Local1) } } ABPS (One) Sleep (0xC8) PWSL (Zero) PWCM (0x03) ATCM (0x02) Store (One, LDIS) Return (0xFF) } PWSL (Zero) PWCM (0x03) ATCM (0x02) Store (One, LDIS) Return (0xFF) } Else { If (PRDS (Zero)) { ATCM (0x02) If (LNot (PWCC ())) { PWSL (Zero) PWCM (0x03) Store (One, LDIS) Return (0x03) } Else { Return (0xFF) } } ATCM (0x03) Return (0xFF) } } If (PDCS (Zero)) { PDCS (One) If (LNot (PRDS (Zero))) { PWSL (Zero) PWCM (0x03) If (LEqual (MSSC (Zero), MRLS)) { ATCM (0x02) } Else { ATCM (0x03) } Store (One, LDIS) Return (0xFF) } Else { Store (Zero, LDIS) PWSL (One) Sleep (0x01F4) If (LNot (PFDS (Zero))) { PWCM (One) Store (Zero, Local1) Store (One, ABIE) ATCM (0x03) } Else { PWSL (Zero) PWCM (0x03) ATCM (One) Store (One, LDIS) Store (0x03, Local1) } ABPS (One) Sleep (0xC8) Return (Local1) } } Return (0xFF) } Method (SNUM, 0, Serialized) { Store (PSNM, Local0) Return (Local0) } Method (_SUN, 0, NotSerialized) // _SUN: Slot User Number { Return (SNUM ()) } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (Package (0x02) { 0x69, 0x04 }) } Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { If (PICM) { Return (AG12) } Return (PG12) }
While there are no ACPI errors during boot for DSB2, there are errors when initialising USPB, DSB0, DSB1 and DSB4 when using...
Code:Method (_L69, 0, NotSerialized) // _Lxx: Level-Triggered GPE { If (LNotEqual (\_SB.PC01.BR1A.VDID (), Ones)) { \_SB.PC01.BR1A.HPME () Notify (\_SB.PC01.BR1A.UPSB, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB0, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB0.NHI0, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB1, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB2, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB2.XHC5, 0x02) Notify (\_SB.PC01.BR1A.UPSB.DSB4, 0x02) } }