Jump to content

trying to get sleep working on e6520


bpedman

Recommended Posts

So, I have got my E6520 working pretty well. The one thing that is keeping me from really making it my main OS is sleep. It feels like I just need to modify a few lines in the DSDT to get it working but I am not sure what method to look at and play around with.

 

Here is what happens when I hit sleep:

- Screen goes black

- Wifi indicator light goes off (internal wifi isn't actually working, the light is just on and I notice it turns off)

- my USB wifi dongle turns off

- Hard drive is active for a few seconds and then it stops

 

So it seems like most everything is shut down properly but just doesn't go to sleep

- The keyboard backlight is still on

- The light on the power button is still on

- and the CPU starts getting extremely hot (maybe the fans are off too? or maybe just the speedstep?)

 

 

Now, here is the thing that makes me think this should be a fairly simple fix. I was doing my own DSDT editing/patching and I had most things working when I tested shutdown and shutdown had the EXACT same symptoms until I applied a very simple patch. My _PST method looked like this when it did not shutdown properly:

 

Method (_PTS, 1, NotSerialized)
   {
       If (LEqual (Arg0, 0x05))
       {
       }
       Else
       {
           APTS (Arg0)
           EV5 (Arg0, Zero)
       }
   }

 

There was no action in the if clause. I then modified it according to another DSDT I found and now it looks like this:

 

Method (_PTS, 1, NotSerialized)
   {
       If (LEqual (Arg0, 0x05))
       {
           Store (Zero, SLPE)
           Sleep (0x10)
       }
       Else
       {
           APTS (Arg0)
           EV5 (Arg0, Zero)
       }
   }

 

2 lines added to the if clause and shutdown now works properly....so my question is, where do I need to start looking to add something similar so sleep will work?

 

Thanks

Link to comment
Share on other sites

sleep is a very fussy thing, it is dependent of every thing in the laptop like usb ports , lan/wifi and hardware in dsdt, have you tried with null cpu and sleep enabler kext's?

 

No, that is kind of my last resort. I would like to be able to have it work without those (since currently I don't need null cpu)

Link to comment
Share on other sites

Just doing some research...thought I would update about what I am learning...I am starting to read through the ACPI specification (wish I understood it all) and I am realizing that there is another piece to this puzzle that makes the shutdown work properly and that is a little section I happened to have at the bottom of my DSDT that looks like this:

 

OperationRegion (PMRS, SystemIO, 0x0430, One)
Field (PMRS, ByteAcc, NoLock, Preserve)
{
       ,   4, 
   SLPE,   1
}

 

This is basically marking a register in the system with a name (SLPE). This register/bit is used in the _PTS method (prepare to sleep, which is called by shutdown as well apparently) and stores a value in this register (Zero)....I think I am going to attempt to store a One there and see what happens...hopefully it doesn't hose my machine :)

Link to comment
Share on other sites

Hi,

 

I am trying to get sleep working too...

but no luck for now!

 

Could you please share your DSDT?

 

Which is your configuration and relevant kexts?

 

Federico

 

I tried but could never get this working...then my laptop died and haven't gotten OSX back on it. I do have all my files I was working with though including a number of different DSDTs I tried out.

 

Attached is a folder I kept everything in. Take a look. I can't remember which DSDTs worked and which ones didn't, so use at your own risk.

OSX-Stuff.zip

Link to comment
Share on other sites

×
×
  • Create New...