PDA

View Full Version : DSDT problem - very grateful if someone could help me with this one..


NebKiwi
05-06-2009, 10:43 PM
OK, to make a long story short..

Back in October I built my Hac (specs in sig) and the GMA950 GFX chip didn't work particularly well on leopard at all. It was latter determined that it was a DSDT issue. So, the solution was to hardcode the GMA950 address into the DSDT.aml file. Until someone created a patcher or released a tutorial on how to enter the code into your own DSDT.aml, someone provided a pre-made DSDT.aml they had made on their computer, was told it would probably only work on gigabyte boards.. which mine is. Anyway, with the DSDT.aml provided by the guy, I get perfect sleep and everything else, but I know it isn't good to use a DSDT file built on another computer. If I build a DSDT.aml on my computer using the Fassl tool and add the needed GMA950 code to make the graphics work, I don't get sleep. So, there is some code in the first DSDT.aml that has some sort of sleep fix. I myself am not big on DSDT fixes, so if someone could look at the attached files (including the first DSDT.aml and my own one, both with decompiled .dsl's) and give me a solution I would be very very grateful. Thank you! (the GMA950 fix thread is in my sig btw)

milanca
05-11-2009, 06:59 PM
Will you also start IORegExplorer and save the dump and send it to me, i would like to take a look there too besides dsdt. You can use PM to send ioreg dump. I will fix dsdt for you.

milanca
05-12-2009, 02:27 AM
Here it is,

http://www.mediafire.com/?mdirdm0nwbm

try it out and then let me know if it works fine for you.

NebKiwi
05-12-2009, 11:09 AM
Doesn't work :( The screen just goes black but the computer is still running... same as last time.. thanks anyway..

EDIT: Shutdown doesn't work either...

milanca
05-12-2009, 01:18 PM
Try it again with this one.

NebKiwi
05-12-2009, 04:29 PM
Ok, shutdown works, unlike the one you gave me before this one.. but still no sleep :(

uman
05-29-2009, 04:27 PM
I took a look at the differences between your files. If you have Xcode installed, use the FileMerge tool (called by the opendiff command line) to graphically see the differences.

$ opendiff My\ DSDT/without\ GFX\ fix/DSDT.dsl Not\ mine/DSDT.dsl

Doing so shows:

1. Some standard fixes when you use DSDT patcher (fixRTC, HPET etc)
2. the gma950 fixes
3. Some fixes I don't get (_S1 becoming SS1, and SS3 becoming _S3).

I would suggest using opendiff/filemerge to apply selected changes from 1 and 2 above until you get a minimal one that works.

As far as the compiling error, that's because the _WAK method has to return a package since it is declared as returning a value. The ACPI spec says it needs to return a:

Result Code (2 DWORD package):
Status Bit field of defined conditions that occurred during sleep.
0x00000000 Wake was signaled and was successful
0x00000001 Wake was signaled but failed due to lack of power.
0x00000002 Wake was signaled but failed due to thermal condition.

But you can shut it up by putting a:

Return(Package(0x02){0x00, 0x00})
} // final brace of _WAK methodAnd that should do the trick.