sarim khan Posted March 8, 2013 Share Posted March 8, 2013 System info: Lenovo G480 (20156) BIOS VERSION: 62CN41WW CPU: i3-3110M So, using a patched AppleIntelCpuPowerManagement kext. When i try to sleep it, it sleeps , but immediately wakes up. see dmesg log http://pastebin.com/ENyAwRuq , these lines got my attention, Wake reason = GLAN EHC2 EHC1 The USB device HubDevice (Port 1 of Hub at 0x1a000000) may have caused a wake by issuing a remote wakeup (2) The USB device HubDevice (Port 1 of Hub at 0x1d000000) may have caused a wake by issuing a remote wakeup (2) [0xffffff80075cce00](0)/(5) Device not responding So after hours of googling i learned that these EHC2 EHC1 are usb hubs and not correctly recognized in osx so they are waking the system. i cheched the ioreg, EHC2 is the hub and webcam is under it. ECH1 is hub and sdcard reader is under it. So i learned that i need to edit DSDT to make these device not send Wake call. Need help regarding that. So far tried, removing _PRW method from both EHC2 EHC1. No help patched: added DTGP, EHC2 and EHC1 from this https://raw.github.c...2_DSDTPatch.txt didn't work, got KP. I think i need to add this _DSM method but need to match device ID's with my system's id. But no idea how to do this, no knowledge about this Any idea, hint would very helpful. Is there any option/setting/tweak/hack in OSX that can let me select which which devices to listen to for Wake call ? i can just remove GLAN EHC2 EHC1 from there. No need to listen to these device's wake call. Attached: my DSDT , removed _PRW from both EHC2 EHC1. dsdt-no-prw.dsl.zip Link to comment Share on other sites More sharing options...
k3nny Posted March 8, 2013 Share Posted March 8, 2013 Hi, I had a similar problem with an ASMedia USB3 chipset. It causes an automatic wake after sleep. The required DSDT edit was setting the "AAPL,clock-id" property. You might want to try creating a _DSM method for both EHC1 and EHC2 which just contains the "AAPL,clock-id" property. I do not know what its value actually stands for, though. Link to comment Share on other sites More sharing options...
Bungo Posted March 25, 2013 Share Posted March 25, 2013 Hi sarim khan, So, using a patched AppleIntelCpuPowerManagement kext. When i try to sleep it, it sleeps , but immediately wakes up. see dmesg log http://pastebin.com/ENyAwRuq , these lines got my attention, Wake reason = GLAN EHC2 EHC1 So i learned that i need to edit DSDT to make these device not send Wake call. Need help regarding that. So far tried, removing _PRW method from both EHC2 EHC1. No help patched: added DTGP, EHC2 and EHC1 from this https://raw.github.c...2_DSDTPatch.txt didn't work, got KP. I think i need to add this _DSM method but need to match device ID's with my system's id. But no idea how to do this, no knowledge about this Any idea, hint would very helpful. Is there any option/setting/tweak/hack in OSX that can let me select which which devices to listen to for Wake call ? i can just remove GLAN EHC2 EHC1 from there. No need to listen to these device's wake call. Attached: my DSDT , removed _PRW from both EHC2 EHC1. Wake reason: GLAN and EHC2 and EHC1, you modified only EHC1 and EHC2 and forgot about GLAN. Your GLAN: Device (GLAN) { Name (_ADR, 0x00190000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) } } _PRW above is related to Method (_L0D, 0, NotSerialized) by 0x0D. My GLAN: /********** Original device GLAN *********** Device (GLAN) { Name (_ADR, 0x00190000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) } } *************** Modified GLAN *************/ Device (GLAN) { Name (_ADR, 0x00190000) Name (_PRW, Package (0x02) { 0x09, // changed from 0x0D 0x04 }) } /*************** End of mod ***************/ My EHC1: Device (EHC1) { Name (_ADR, 0x001D0000) // . . . . rest of code here /********** Original _PRW *********** Method (_PRW, 0, NotSerialized) { If (USBW) { Return (GPRW (0x0D, 0x03)) // <-- this cause wake, } Else { Return (GPRW (0x0D, 0x00)) // <-- ...this not } } *************** Modified _PRW *************/ Name (_PRW, Package (0x02) { 0x0D, 0x00 // value >2 cause wake, you need to experiment or live 0x00 }) /*************** End of mod ***************/ // . . . . rest of code here } Link to comment Share on other sites More sharing options...
Recommended Posts