Jump to content
Olarila Professional Hackintosh Services ×

dsdt patching in order to enable sleep


piter2619

Recommended Posts

do you know how to do that? this is my _WAK method

 

    Method (_WAK, 1, Serialized)
   {
       P8XH (One, 0xAB)
       Store (One, ECON)
       If (LNotEqual (\_SB.PCI0.LPCB.H_EC.ACEX, PWRS))
       {
           Store (\_SB.PCI0.LPCB.H_EC.ACEX, PWRS)
           If (LGreaterEqual (\_SB.OSYS, 0x07D1))
           {
               PNOT ()
           }
       }
       If (LNotEqual (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC))
       {
           Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x80)
           Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x81)
       }
       If (NEXP)
       {
           If (And (OSCC, 0x02))
           {
               \_SB.PCI0.NHPG ()
           }
           If (And (OSCC, 0x04))
           {
               \_SB.PCI0.NPME ()
           }
       }
       Else
       {
           \_SB.PCI0.CPME ()
       }
       If (LEqual (Arg0, 0x03))
       {
           If (LNotEqual (\_SB.PCI0.LPCB.H_EC.TIST, \_SB.TZON))
           {
               Store (\_SB.PCI0.LPCB.H_EC.TIST, \_SB.TZON)
               CPRN ()
           }
           Or (GL01, GBF0, GL01)
           Or (GL04, GBF1, GL04)
           Or (GL06, GBF2, GL06)
           If (LOr (GBF0, LOr (GBF1, GBF2)))
           {
               \_SB.SECS (0xB2)
           }
           If (LNotEqual (\_SB.HBAT, Zero))
           {
               Notify (\_SB.PWRB, 0x02)
           }
       }
       If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
       {
           Store (Arg0, \_SB.RTYP)
           If (LAnd (DTSE, LGreater (TCNT, One)))
           {
               TRAP (TRTD, 0x14)
           }
           If (LEqual (OSYS, 0x07D2))
           {
               If (And (CFGD, One))
               {
                   If (LGreater (\_PR.CPU0._PPC, Zero))
                   {
                       Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                       Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                   }
                   Else
                   {
                       Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                       Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                       PNOT ()
                   }
               }
           }
           If (LEqual (ECON, One))
           {
               If (LNotEqual (LIDS, \_SB.PCI0.LPCB.H_EC.LIDS))
               {
                   Store (\_SB.PCI0.LPCB.H_EC.LIDS, LIDS)
                   If (IGDS)
                   {
                       If (\_SB.PCI0.GFX0.GLID (LIDS))
                       {
                           Or (0x80000000, \_SB.PCI0.GFX0.CLID, \_SB.PCI0.GFX0.CLID)
                       }
                   }
                   Notify (\_SB.LID0, 0x80)
               }
           }
           If (LEqual (RP1D, Zero))
           {
               Notify (\_SB.PCI0.RP01, Zero)
           }
           If (LEqual (RP2D, Zero))
           {
               Notify (\_SB.PCI0.RP02, Zero)
           }
           If (LEqual (RP3D, Zero))
           {
               Notify (\_SB.PCI0.RP03, Zero)
           }
           If (LEqual (RP4D, Zero))
           {
               Notify (\_SB.PCI0.RP04, Zero)
           }
           If (LEqual (RP5D, Zero))
           {
               Notify (\_SB.PCI0.RP05, Zero)
           }
           If (LEqual (RP7D, Zero))
           {
               Notify (\_SB.PCI0.RP07, Zero)
           }
           If (LEqual (RP8D, Zero))
           {
               Notify (\_SB.PCI0.RP08, Zero)
           }
       }
       Return (Package (0x02)
       {
           Zero, 
           Zero
       })
   }

 

as you can see is very complex, while the _WAK method of a macbookpro is quite simple

 

    Method (_WAK, 1, NotSerialized)
   {
       P8XH (0x00, 0x00)
       Store (0x00, \_SB.PCI0.LPCB.EC.ECSS)
       If (OSDW ())
       {
           \_SB.PCI0.SBUS.ENAB ()
       }
       Store (\_SB.PCI0.LPCB.EC.LSTE, LIDS)
       Store (\_SB.PCI0.LPCB.EC.RPWR, PWRS)
       PNOT ()
       Return (Package (0x02)
       {
           0x00, 
           0x00
       })
   }

 

do you know for example which parts i can delete? maybe not every line is necessary


PS i already tried to make my _WAK method similar to the one from the macbookpro but if i do that then i obtain instant wake..also when waking up from sleep audio's not working anymore :(

Link to comment
Share on other sites

@piter2619 :


Yes. It is.


In DSDT we have two method (_WAK) and (WAK)


first Method(_WAK, ... ) looks likes this .. (for Asus)

 

Method (_WAK, 1, Serialized)

{

WAK (Arg0)

Return (Package (0x02)

{

0x00,

0x00

})

}

 

And the second Method(WAK, .. ) in the end of file.. looks like this one ..

 

Method (WAK, 1, NotSerialized)

{

\_SB.ATKD.GENW (Arg0)

\_SB.PCI0.GFX0.OWAK (Arg0)

\OEMW (Arg0)

}

 

Sorry bro, but i only knew this. For more helps please Contact 'Mald0n' or use patches. you can find on this site.


Good luck.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...