Maybe you should write a guide on DSDT patching and reference all your material used.
The plan is to write a proper guide. I'm now trying last couple of things with video, trying to inject more vanilla parameters to see if it will make it better. Really wanted to try vanilla Wormy framebuffers, but think it's impossible without heavy code patching, which I'm too lazy to investigate.
How do you get around the PCI ID problem? Through the DSDT patching?
With HDA you simply need to remove HDEF device from DSDT. With video it's trickier. In general for any device you have about 50% chance to inject fake device ID from DSDT, it's relatively simple. When it doesn't work, you can put so called "legacy kext" into /Extra/Extensions. This kext will consist only of single Info.plist, which replaces any Info.plist from any kext in /S/L/E. Basically, it overrides original kext. It's not the 100% upgrade proof solution, but it's pretty good, since you don't mess with original kexts. You can also have multiple Info.plist overrides in a single Info.plist!
It's not 100% upgrade proof, because sometimes Apple decides to change the structure of Info.plist in any given kext, so your override wont' work. But the fix, of course, is simple.
I'm guessing you're going to say everything is DSDT patching so maybe I'll stop asking.....how did you accomplish this with the Vanilla power management? One other problem of course is the thinkpad security chip problem which occurs with Apple's LPC.
With CPU power management it's very complex fix, I've spent quite some time to polish it into perfection. I will write about it later in details, but what you looking into are the following steps:
1) You need to make some patched to DSDT.
2) You need to use proper Mac model or make your own - I've created my own - MacBookPro2,3. MacBook2,1 - is the one that is almost identical to my T60p (CPU and graphic wise).
3) You need make legacy kext (from above) patch Info.plist of ACPI_SMC_Platform.kext to include information about your fake model to enable P-states and C-states.
Again DSDT or other drivers? IOATAFamily I just replaced it with a recompiled version of the PIIXATA driver.
Brightness for me is still gradiented
Clamshell works IF you use the ATIInject, but with RadeonHD.kext it is hosed (for the reasons you already mentioned)
Can you avoid ATIinject and still get sleep to work?
IOATAFamily.kext - simple DSDT fix, makes it upgrade proof. I've read that current patched kexts rise Kernel Panics in 10.6.3.
Brightness slider doesn't fix the brightness itself (still bad with ATINDRV), but it allows you to adjust brightness in very fine steps, so you can go 15% down on brightness without any problems.
Restart fix is not DSDT fix per se, but close. You need to use patched Chameleon and then extract FADT.aml table (the same area as DSDT) and patch single bit there and put FADT.aml in /Extra next to DSDT. Once you done this, you're good.
Clamshell is simple DSDT fix to basically call SLPB button function on LID close. This code is not in our DSDTs, since on PCs you don't always go to sleep on LID close. Easy to add though, Clamshell.kext does the same thing on software level (if lid closed, call Sleep). The problem is, that it works only with ATIinject because ATIinject uses ATINDRV framebuffers, and they are the ones that can shut display off and allow T60p to go to sleep. Once you make DSDT fix, you don't need Clamshell fix in any case.
I can also switch fan rotation speed using any Fn+ hotkeys that are not used in OSX, but I'm looking to make a resident in DSDT to do the automatic check of temperatures (might be not possible at all).
Please do tell the secrets!
Will show the piece of code and how to put it in your DSDT, but it's not very useful at the moment. Although, there's a bug in DSDT or fan controller at the moment, which doesn't spin the fan in OSX at full speed when temperatures rise, so you can fry to CPU (little chance though). The bug is when you set fan control in BIOS to Automatic, it starts in the slowest speed, and it never changes in OSX. Once you go to sleep and then wake up, fan is shut off and then again set to Automatic (in the DSDT code), but after that it starts spinning at very fast speed.
MIC for me still does not work and I tried going through KingPins documentation. Something weird with ID 24 and 25 and the codec 2. I will need to investigate further. At the timebeing the latest VoodooHDA does give me sound but mic is still dead. It does appear that "CD" is the mic input.
I've discovered Mic working almost randomly. You need to use 0.2.35 version of VoodooHDA. Input will be marked as CD, but in reality it's Mic. Then you need to install VoodooHDA pref panel and then go to Input adjustments and move all enabled sliders right (but not all the way). Then you can go back to Sound settings to Input tab and you should see that Input level is present. After that you need to test Skype calls and adjust sliders in VoodooHDA preferences so that they are not very high.
Yep. I abandoned the RadeonHD because sleep to me is more important than proper dimming and resolution control. With my ATIInject and EDID hacking my screen operates in full openGL mode and I can do some level of resolution switching AND the sleep works with clamshell.kext. Please keep us posted on this as I like RadeonHD it is so much more elegant than EDID hacking.
ATIinject.kext by itself does nothing. What it does it injects some vanilla Mac ATI parameters during boot into ACPI. The real magic happens in ATINDRV.kext, which contains the framebuffer drivers. ATIinject can be abandoned all together if you inject the same info either directly to DSDT or in com.apple.Boot.plist in /Extra as EFI string.
Again, sorry for teasing you with all the DSDT patching, just want to make the full story in a single post. I promise, I will write it next week - no point of spending so much time and not share it with others.