Jump to content
piter2619

dsdt patching in order to enable sleep

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...