Jump to content

DSDT help for Lenovo G480 EHCI Wakeup

EHCI lenovo

  • Please log in to reply
2 replies to this topic

#1
sarim khan

sarim khan

    InsanelyMac Protégé

  • Members
  • Pip
  • 20 posts
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.

Attached Files



#2
k3nny

k3nny

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 540 posts
  • Gender:Male
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.

#3
Bungo

Bungo

    InsanelyMac Sage

  • Coders
  • 297 posts
  • Gender:Male
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

}






Also tagged with one or more of these keywords: EHCI, lenovo


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy