So here we go, thanks to iNDi who translated the original code for me, I was able to fix it in DSDT:
Test machine - ASUS M50SV ICH8-M notebook.
Docs used - Intel ICH8 IO Controller HUB, 15.1.26 LEG_EXT_CAP�USB EHCI Legacy Support Extended Capability Register (USB EHCI�D29:F7, D26:F7), page 597.
On each EHC1 and EHC2 add this code, or complete it if is already:
CODE
OperationRegion (EOWN, PCI_Config, 0x68, 0x04) // LEG_EXT_CAP�USB EHCI Legacy Support Extended
Field (EOWN, ByteAcc, NoLock, Preserve)
{
, 16,
HCBO, 1, // HC BIOS Owned Semaphore
, 7,
HCOO, 1, // HC OS Owned Semaphore
}
Field (EOWN, ByteAcc, NoLock, Preserve)
{
, 16,
HCBO, 1, // HC BIOS Owned Semaphore
, 7,
HCOO, 1, // HC OS Owned Semaphore
}
Now in our good PINI method(I explained in other topics/hacks how/where):
CODE
Method (PINI, 0, NotSerialized) // For PCI0/Wake INI
{
Store (Zero, \_SB.PCI0.EHC1.HCBO)
Store (One, \_SB.PCI0.EHC1.HCOO)
Store (Zero, \_SB.PCI0.EHC2.HCBO)
Store (One, \_SB.PCI0.EHC2.HCOO)
// ................. // If you have more stuff to add
}
{
Store (Zero, \_SB.PCI0.EHC1.HCBO)
Store (One, \_SB.PCI0.EHC1.HCOO)
Store (Zero, \_SB.PCI0.EHC2.HCBO)
Store (One, \_SB.PCI0.EHC2.HCOO)
// ................. // If you have more stuff to add
}
Do not forget the call of PINI in _WAK method and on PCI0 _INI method!
CODE
Method (_WAK, 1, NotSerialized)
{
PINI ()
// ....... // Rest of your stuff from _WAK method
}
{
PINI ()
// ....... // Rest of your stuff from _WAK method
}
CODE
Device (PCI0)
{
Method (_INI, 0, NotSerialized)
{
PINI ()
}
// ....... //
}
{
Method (_INI, 0, NotSerialized)
{
PINI ()
}
// ....... //
}
Enjoy!
L.E. Fixed the code to write only on required bits...
