PDA

View Full Version : Asus G60Vx : DSDT help needed


Stone-D
04-01-2010, 04:32 PM
Hi guys. First post here, but I've been lurking for quite some time now, browsing through the treasure trove of goodies you guys have put together here.

Last weekend I threw down a grand and got myself an Asus G60Vx "Republic of Gamers" laptop - C2D P8400, 4Gb RAM, GTX 360M 1Gb, 16" screen, etc. I bought this with the expectation of getting all the important bits working, with the exception of the WiFi (Intel 5100).

So far, so good. I've been editing the DSDT for a couple of days now, and its fairly stable. VoodooHDA still occasionally crashes at startup (was very frequent until I nuked AppleHDA.kext), but everything else is good.

What is NOT good, is that sleep doesn't work. Well, it does sleep, it just doesn't wake up! The power button works fine, USB devices are all recognized as internal, ditto with SATA.

At the moment, closing the lid merely shuts off the screen. The machine is still active... I've commented out that particular hack for the time being.

Anyway. If I activate sleep (whether via the apple menu or the powerbutton menu), the computer spins down as expected. If I then press the power button or any button on the keyboard, the lights come on, I hear the DVD drive activating... then nothing. No reaction from anything. Pressing the power button followed by S or R does nothing.

Can one of you gurus help me out? I'm at my still-newbie limit here, I haven't a clue how to proceed.

That's the priority. Beyond that, any assistance regarding speedstep (which I don't understand at all yet, but realize the importance of), proper power management, and injecting ALC663 or the ethernet would be much appreciated.

Plus, although it works fine with regards to QE/CI, I've a suspicion my gfx entry (VGA) is wrong, as this is a laptop with a panel, VGA and HDMI out, not a desktop with two DVI outs. Help in that area would be great, too.

Edit 2010/04/03 : I've gone through my DSDT commenting the changes to make it a bit easier for you, plus I've added the original, unmodified DSDT.

Stone-D
04-03-2010, 07:05 AM
I have separate device declarations for CRT, LCD, DVI and HDMI. Can something here along with an error in the VGA declaration be responsible?

Device (P0P1)
{
Name (_ADR, 0x00010000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}

Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR01)
}

Return (PR01)
}

Device (VGA)
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x1A)
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"NVCAP",
Buffer (0x18)
{
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
0x00, 0x00, 0x00, 0x00
},

"NVPM",
Buffer (0x20)
{
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
},

"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},

"device_type",
Buffer (0x0D)
{
"NVDA,GeForce"
},

"model",
Buffer (0x23)
{
"Nvidia GeForce GTX 260M 1GB (CUDA)"
},

"rom-revision",
Buffer ()
{
"nVidia OpenGL Engine"
},

"reg",
Buffer (0x78)
{
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

OperationRegion (VSID, PCI_Config, Zero, 0x04)
Field (VSID, ByteAcc, NoLock, Preserve)
{
REG0, 32
}

Method (PRST, 0, NotSerialized)
{
If (LEqual (REG0, Ones))
{
Return (Zero)
}
Else
{
Return (One)
}
}

Name (UPDN, One)
Name (NXTD, One)
Name (LCDM, One)
Name (CRTM, 0x02)
Name (TVOM, 0x04)
Name (HDMM, 0x08)
Name (DVIM, 0x10)
Name (DONE, Zero)
Name (DOSF, One)
Name (BRNC, Zero)
Method (_INI, 0, NotSerialized)
{
GETD ()
}

Method (_DOS, 1, NotSerialized)
{
And (Arg0, 0x03, DOSF)
Store (ShiftRight (Arg0, 0x02), BRNC)
And (BRNC, One, BRNC)
}

Name (DODP, Package (0x04)
{
0x00010100,
0x00010110,
0x0210,
0x0220
})
Method (_DOD, 0, NotSerialized)
{
If (LEqual (VGAF, 0x02)) {}
Else
{
Store (0x0120, Index (DODP, 0x02))
}

Return (DODP)
}

Device (CRTD)
{
Name (_ADR, 0x0100)
Method (_DCS, 0, NotSerialized)
{
Store (AVLD, Local0)
If (Local0)
{
If (And (Local0, CRTM))
{
Return (0x1F)
}
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
And (NXTD, CRTM, Local0)
If (Local0)
{
Return (One)
}

Return (Zero)
}

Method (_DSS, 1, NotSerialized)
{
If (And (Arg0, 0x40000000))
{
If (And (Arg0, 0x80000000))
{
Store (One, DONE)
}
}
}
}

Device (DVID)
{
Method (_ADR, 0, NotSerialized)
{
If (LEqual (VGAF, 0x02))
{
Return (0x0220)
}
Else
{
Return (0x0120)
}
}

Method (_DCS, 0, NotSerialized)
{
Store (AVLD, Local0)
If (Local0)
{
If (And (Local0, DVIM))
{
Return (0x1F)
}
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
And (NXTD, DVIM, Local0)
If (Local0)
{
Return (One)
}

Return (Zero)
}

Method (_DSS, 1, NotSerialized)
{
If (And (Arg0, 0x40000000))
{
If (And (Arg0, 0x80000000))
{
Store (One, DONE)
}
}
}
}

Device (HDMI)
{
Method (_ADR, 0, NotSerialized)
{
If (LEqual (VGAF, 0x02))
{
Return (0x0210)
}
Else
{
Return (0x0120)
}
}

Method (_DCS, 0, NotSerialized)
{
Store (AVLD, Local0)
If (Local0)
{
If (And (Local0, HDMM))
{
Return (0x1F)
}
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
And (NXTD, HDMM, Local0)
If (Local0)
{
Return (One)
}

Return (Zero)
}

Method (_DSS, 1, NotSerialized)
{
If (And (Arg0, 0x40000000))
{
If (And (Arg0, 0x80000000))
{
Store (One, DONE)
}
}
}
}

Device (LCDD)
{
Name (_ADR, 0x0110)
Method (_DCS, 0, NotSerialized)
{
Store (AVLD, Local0)
If (Local0)
{
If (And (Local0, LCDM))
{
Return (0x1F)
}
}

Return (0x1D)
}

Method (_DGS, 0, NotSerialized)
{
And (NXTD, LCDM, Local0)
If (Local0)
{
Return (One)
}

Return (Zero)
}

Method (_DSS, 1, NotSerialized)
{
If (And (Arg0, 0x40000000))
{
If (And (Arg0, 0x80000000))
{
Store (One, DONE)
}
}
}

Method (_BCL, 0, NotSerialized)
{
Return (Package (0x10)
{
0x0F,
0x0E,
0x0D,
0x0C,
0x0B,
0x0A,
0x09,
0x08,
0x07,
0x06,
0x05,
0x04,
0x03,
0x02,
One,
Zero
})
}

Name (BCBH, Zero)
Method (_BCM, 1, NotSerialized)
{
If (LGreaterEqual (OSFG, OSVT))
{
Store (Arg0, LBTN)
^^^^SBRG.EC0.STBR ()
If (ATKP)
{
If (LEqual (BCBH, One))
{
Notify (ATKD, Add (LBTN, 0x10))
}

If (LEqual (BCBH, 0x02))
{
Notify (ATKD, Add (LBTN, 0x20))
}
}

Store (Zero, BCBH)
}
}

Method (_BQC, 0, NotSerialized)
{
Return (LBTN)
}
}

Stone-D
04-05-2010, 11:23 AM
Ne'er mind, I'm getting assistance at tonymacx86 (http://www.tonymacx86.com/viewforum.php?f=14).