Jump to content

Recommended Posts

Posted (edited)

Hello


Finally I'm able to boot without the NullAppleIntelCPUPowerManagement !!! :D


I've extracted the SSDT tabe, put it in /Extra folder then unselected Generate P C States flags then selected DropSSDT flag and thats it


Now..The sleep is properly working, just the pc wakes up immediately


I wrote this command on terminal

syslog -k Sender kernel -k Message Req Wake

and Wake Reason is GLAN EHC1 EHC2


So I applyed EHCI patch and then sleep works, but in a very strange way: I have to press the power button several times and then i


have to press a key on the keyboard to enable the screen; also when i close the lid its not going to sleep..


What else can I try? Maybe I can just edit _PRW and _PSW methods from GLAN and EHC1 EHC2?


Thanks

Edited by Guest
Posted (edited)

hei. anyone can help me to fix and patch my own clean extracted dsdt file ?


RTC, HPET, Restart, Shutdown, Wake, Normal and High Performance CPU, and IDE/SATA fixed configuration... ?

Edited by Guest
Posted

edit: so applying ehci patch the system is going to sleep normally but when I want to wake it up I have to press the power button once then fan at max speed and computer waking up, then i have to press a second time the power button to enable the screen; if i press the power button just once the screen stays turned off.

Any ideas on how to patch the DSDT in a way such that i have to press the power button once to have also the screen ready? Besides the wake up time is a bit longer, like 10 seconds while in windows 1 2 seconds

Thanks

Posted
edit: so applying ehci patch the system is going to sleep normally but when I want to wake it up I have to press the power button once then fan at max speed and computer waking up, then i have to press a second time the power button to enable the screen; if i press the power button just once the screen stays turned off.

Any ideas on how to patch the DSDT in a way such that i have to press the power button once to have also the screen ready? Besides the wake up time is a bit longer, like 10 seconds while in windows 1 2 seconds

Thanks

 

hi. you need to fix _Wak and Wak method. and fix Processors HPET and another methods. _CRS , ..

Posted

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 :(

Posted

@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.

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...