    //
    // For ACPI Patch:
    // _Q22 to XQ22:
    // Find:    5f51 3232
    // Replace: 5851 3232
    //
    // _Q24 to XQ24:
    // Find:    5f51 3234
    // Replace: 5851 3234
    //
    // _Q25 to XQ25:
    // Find:    5f51 3235
    // Replace: 5851 3235
    //
    // _Q4A to XQ4A:
    // Find:    5f51 3441
    // Replace: 5851 3441
    //
    // _Q4B to XQ4B:
    // Find:    5f51 3442
    // Replace: 5851 3442
    //
    // _Q4C to XQ4C:
    // Find:    5f51 3443
    // Replace: 5851 3443
    //
    // _Q4D to XQ4D:
    // Find:    5f51 3444
    // Replace: 5851 3444
    //
    // BATW to XATW:
    // Find:    4241 545701
    // Replace: 5841 545701
    //
    // BFCC to XFCC:
    // Find:    42464343 00
    // Replace: 58464343 00
    //
    DefinitionBlock ("", "SSDT", 2, "OCLT", "NTFY", 0)
    {
        External (\_SB.PCI0.LPCB.EC, DeviceObj)
        External (\_SB.PCI0.LPCB.EC.BATC, DeviceObj)
        //
        External (\_SB.PCI0.LPCB.EC.BAT1.XB1S, IntObj)
        External (\_SB.PCI0.LPCB.EC.BAT1.SBLI, IntObj)
        External (\_SB.PCI0.LPCB.EC.BAT0.B0ST, IntObj)
        External (\_SB.PCI0.LPCB.EC.BAT1.B1ST, IntObj)
        //
        External (\_SB.PCI0.LPCB.EC.CLPM, MethodObj)
        External (\_SB.PCI0.LPCB.EC.HKEY.MHKQ, MethodObj)
        //
        External (\BT2T, FieldUnitObj)
        External (\_SB.PCI0.LPCB.EC.SLUL, FieldUnitObj)
        External (\_SB.PCI0.LPCB.EC.HB0A, FieldUnitObj)
        External (\_SB.PCI0.LPCB.EC.HB1A, FieldUnitObj)
        //
        External (\_SB.PCI0.LPCB.EC.XQ22, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ24, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ25, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ4A, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ4B, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ4C, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XQ4D, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XATW, MethodObj)
        External (\_SB.PCI0.LPCB.EC.XFCC, MethodObj)

        Scope (\_SB.PCI0.LPCB.EC)
        {
            Method (_Q22, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    CLPM ()
                    If (HB0A)
                    {
                        Notify (BATC, 0x80) // Status Change
                    }

                    If (HB1A)
                    {
                        Notify (BATC, 0x80) // Status Change
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ22 ()
                }
            }

            Method (_Q24, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    CLPM ()
                    Notify (BATC, 0x80) // Status Change
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ24 ()
                }
            }

            Method (_Q25, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    If ((^BAT1.B1ST & ^BAT1.XB1S))
                    {
                        CLPM ()
                        Notify (BATC, 0x80) // Status Change
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ25 ()
                }
            }

            Method (_Q4A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    CLPM ()
                    Notify (BATC, 0x81) // Information Change
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ4A ()
                }
            }

            Method (_Q4B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    CLPM ()
                    Notify (BATC, 0x80) // Status Change
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ4B ()
                }
            }

            Method (_Q4C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    \_SB.PCI0.LPCB.EC.CLPM ()
                    If (\_SB.PCI0.LPCB.EC.HB1A)
                    {
                        \_SB.PCI0.LPCB.EC.HKEY.MHKQ (0x4010)
                        Notify (\_SB.PCI0.LPCB.EC.BATC, 0x01) // Device Check
                    }
                    Else
                    {
                        \_SB.PCI0.LPCB.EC.HKEY.MHKQ (0x4011)
                        If (\_SB.PCI0.LPCB.EC.BAT1.XB1S)
                        {
                            Notify (\_SB.PCI0.LPCB.EC.BATC, 0x03) // Eject Request
                        }
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ4C ()
                }
            }

            Method (_Q4D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                If (_OSI ("Darwin"))
                {
                    CLPM ()
                    If (\BT2T)
                    {
                        If ((^BAT1.SBLI == 0x01))
                        {
                            Sleep (0x0A)
                            If ((HB1A && (SLUL == 0x00)))
                            {
                                ^BAT1.XB1S = 0x01
                                Notify (\_SB.PCI0.LPCB.EC.BATC, 0x01) // Device Check
                            }
                        }
                        ElseIf ((SLUL == 0x01))
                        {
                            ^BAT1.XB1S = 0x00
                            Notify (\_SB.PCI0.LPCB.EC.BATC, 0x03) // Eject Request
                        }
                    }

                    If ((^BAT1.B1ST & ^BAT1.XB1S))
                    {
                        Notify (BATC, 0x80) // Status Change
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XQ4D ()
                }
            }

            Method (BATW, 1, NotSerialized)
            {
                If (_OSI ("Darwin"))
                {
                    If (\BT2T)
                    {
                        Local0 = \_SB.PCI0.LPCB.EC.BAT1.XB1S
                        If ((HB1A && !SLUL))
                        {
                            Local1 = 0x01
                        }
                        Else
                        {
                            Local1 = 0x00
                        }

                        If ((Local0 ^ Local1))
                        {
                            \_SB.PCI0.LPCB.EC.BAT1.XB1S = Local1
                            Notify (\_SB.PCI0.LPCB.EC.BATC, 0x01) // Device Check
                        }
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XATW (Arg0)
                }
            }

            Method (BFCC, 0, NotSerialized)
            {
                If (_OSI ("Darwin"))
                {
                    If (\_SB.PCI0.LPCB.EC.BAT0.B0ST)
                    {
                        Notify (BATC, 0x81)
                    }

                    If (\_SB.PCI0.LPCB.EC.BAT1.B1ST)
                    {
                        Notify (BATC, 0x81)
                    }
                }
                Else
                {
                    \_SB.PCI0.LPCB.EC.XFCC ()
                }
            }
        }
    }

# results matching ""

# No results matching ""