Asus G60Vx : DSDT help needed
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 -…
- Primary Author
- @Stone-D Published 2010-04-01
- Collection
- OSx86 Core & 10.X
- Archival Footprint
- 3,643 historical reads · 0 curated field notes (from 3 dispatches) · 2010-04-01 – 2010-04-05
- Credited Voices (1)
- @Stone-D (3)
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.
Author Updates & Technical Revisions
Follow-up dispatches by @Stone-D
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)
}
}
Ne'er mind, I'm getting assistance at tonymacx86 ↗.
Sources & Contributor Provenance (1 credited usernames · Thread #5850)
| Username | Dossier Contribution | Dispatches | Active Window |
|---|---|---|---|
| @Stone-D | Primary Author | 3 | 2010-04-01 → 2010-04-05 |