slimbootloader/Platform/MeteorlakeBoardPkg/AcpiTables/EcSsdt/HIDWakeDSM.asl

93 lines
2.4 KiB
Plaintext

/** @file
ACPI DSDT table
Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
External (\_SB.HIDD.HPEM, MethodObj)
External (\P8XH, MethodObj)
External (\_SB.SLPB, DeviceObj)
Method (HIDW, 4)
{
//--------------------------------------------
// Intel Proprietary Wake up Event solution
//
// Method (_DSM, 0x4, Serialized, 0, {IntObj, BuffObj}, {BuffObj, IntObj, IntObj, PkgObj})
//
//--------------------------------------------
// DSM UUID for Intel Proprietary Wake up Event solution. Do Not change.
If (LEqual (Arg0, ToUUID ("1730E71D-E5DD-4A34-BE57-4D76B6A2FE37")))
{
// Function 0 : Query Function
If (LEqual (Arg2, Zero))
{
// Revision 0
If (LEqual (Arg1, Zero)) // The current revision is 0
{
Return (Buffer (One) { 0x03 }) // There are 1 function defined other than Query.
}
Else
{
Return (0) // Revision mismatch
}
}
// Function 1 :
If (LEqual (Arg2, One))
{
Switch (ToInteger (DeRefOf (Index (Arg3, 0))))
{
Case (0) // Send HID Event/Wake Notification
{
If (CondRefOf (\_SB.HIDD.HPEM))
{
\_SB.HIDD.HPEM (27)
P8XH (0, 0x5C)
}
}
Case (1) // Send Sleep button Notification. Put the system to Sleep
{
If (CondRefOf (\_SB.SLPB))
{
Notify (\_SB.SLPB, 0x80)
P8XH (0, 0x5D)
}
}
Case (2) // Send Dock Event
{
If (CondRefOf (\_SB.PC00.LPCB.H_EC.UPBT))
{
\_SB.PC00.LPCB.H_EC.UPBT (0x80, One) // Arg0:Bit7 - Dock Indicator change request, Arg1:One - Set the target bit.
}
}
Case (3) // Send Undock Event
{
If (CondRefOf (\_SB.PC00.LPCB.H_EC.UPBT))
{
\_SB.PC00.LPCB.H_EC.UPBT (0x80, Zero) // Arg0:Bit7 - Dock Indicator change request, Arg1:Zero - Clear the target bit.
}
}
}
Return (0)
}
Else
{
Return (0) // Function number mismatch but normal return.
}
}
Else
{
Return (Buffer (One) { 0x00 }) // Guid mismatch
}
} // End Method (HIDW)
Method (HIWC, 1) // HID WAKE CHECK
{
If (LEqual (Arg0, ToUUID ("1730E71D-E5DD-4A34-BE57-4D76B6A2FE37")))
{
Return (1)
}
Return (0)
} // End Method (HIWC)