/* SPDX-License-Identifier: GPL-2.0-or-later */ External(\_SB.MS0X, MethodObj) External(\_SB.PCI0.LPCB.EC0.S0IX, MethodObj) External(\_SB.PCI0.EGPM, MethodObj) External(\_SB.PCI0.RGPM, MethodObj) scope(\_SB) { Device(LPID) { Name(_ADR, 0x00000000) Name(_CID, EISAID("PNP0D80")) Name(UUID, ToUUID("c4eb40a0-6cd2-11e2-bcfd-0800200c9a66")) Method(_DSM, 4) { If(Arg0 == ^UUID) { /* * Enum functions */ If(Arg2 == Zero) { Return(Buffer(One) { 0x60} ) } /* * Function 1 - Get Device Constraints */ If(Arg2 == 1) { Return(Package(5) { 0, Ones, Ones, Ones, Ones} ) } /* * Function 2 - Get Crash Dump Device */ If(Arg2 == 2) { Return(Buffer(One) { 0x0} ) } /* * Function 3 - Display Off Notification */ If(Arg2 == 3) { } /* * Function 4 - Display On Notification */ If(Arg2 == 4) { } /* * Function 5 - Low Power S0 Entry Notification */ If(Arg2 == 5) { /* Inform the EC */ If (CondRefOf (\_SB.PCI0.LPCB.EC0.S0IX)) { \_SB.PCI0.LPCB.EC0.S0IX(1) } /* provide board level s0ix hook */ If (CondRefOf (\_SB.MS0X)) { \_SB.MS0X(1) } /* * Save the current PM bits then * enable GPIO PM with MISCCFG_ENABLE_GPIO_PM_CONFIG */ If (CondRefOf (\_SB.PCI0.EGPM)) { \_SB.PCI0.EGPM () } } /* * Function 6 - Low Power S0 Exit Notification */ If(Arg2 == 6) { /* Inform the EC */ If (CondRefOf (\_SB.PCI0.LPCB.EC0.S0IX)) { \_SB.PCI0.LPCB.EC0.S0IX(0) } /* provide board level s0ix hook */ If (CondRefOf (\_SB.MS0X)) { \_SB.MS0X(0) } /* Restore GPIO all Community PM */ If (CondRefOf (\_SB.PCI0.RGPM)) { \_SB.PCI0.RGPM () } } } Return(Buffer(One) {0x00}) } // Method(_DSM) } // device (LPID) } // End Scope(\_SB)