chris7519 Posted September 2, 2009 Share Posted September 2, 2009 Well after doing some searching around, it looks as though patching my DSDT for GFX (9600M GT), audio (Intel IDT 111D76B2), and sleep support is the way to go. However, it seems that trying to find DSDT information as it pertains to my system it quite difficult. I figured I would try to start small and fix the warnings I get when running DSDT patcher and then tackling supporting my hardware once I have a grasp on what I'm doing. When running DSDT, I encounter 31 warnings: Intel ACPI Component Architecture ASL Optimizing Compiler version 20080926 [Oct 4 2008] Copyright © 2000 - 2008 Intel Corporation Supports ACPI Specification Revision 3.0a ./dsdt_fixed.txt 1341: Method (_HOT, 0, Serialized) Warning 1087 - ^ Not all control paths return a value (_HOT) ./dsdt_fixed.txt 1341: Method (_HOT, 0, Serialized) Warning 1080 - ^ Reserved method must return a value (_HOT) ./dsdt_fixed.txt 1364: Method (_CRT, 0, Serialized) Warning 1087 - ^ Not all control paths return a value (_CRT) ./dsdt_fixed.txt 1364: Method (_CRT, 0, Serialized) Warning 1080 - ^ Reserved method must return a value (_CRT) ./dsdt_fixed.txt 1417: Method (_PSV, 0, NotSerialized) Warning 1087 - ^ Not all control paths return a value (_PSV) ./dsdt_fixed.txt 1417: Method (_PSV, 0, NotSerialized) Warning 1080 - ^ Reserved method must return a value (_PSV) ./dsdt_fixed.txt 7886: Method (_GTM, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTM) ./dsdt_fixed.txt 7886: Method (_GTM, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTM) ./dsdt_fixed.txt 8046: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8046: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8114: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8114: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8187: Method (_GTM, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTM) ./dsdt_fixed.txt 8187: Method (_GTM, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTM) ./dsdt_fixed.txt 8347: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8347: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8415: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8415: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8520: Method (_GTM, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTM) ./dsdt_fixed.txt 8520: Method (_GTM, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTM) ./dsdt_fixed.txt 8680: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8680: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8748: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8748: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 8821: Method (_GTM, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTM) ./dsdt_fixed.txt 8821: Method (_GTM, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTM) ./dsdt_fixed.txt 8981: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 8981: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 9049: Method (_GTF, 0, NotSerialized) Warning 1087 - Not all control paths return a value ^ (_GTF) ./dsdt_fixed.txt 9049: Method (_GTF, 0, NotSerialized) Warning 1080 - Reserved method must return a value ^ (_GTF) ./dsdt_fixed.txt 9937: Store (Package (0x02) Warning 1099 - Statement is unreachable ^ ASL Input: ./dsdt_fixed.txt - 11379 lines, 401564 bytes, 5477 keywords AML Output: ././dsdt.aml - 46711 bytes, 975 named objects, 4502 executable opcodes Compilation complete. 0 Errors, 31 Warnings, 0 Remarks, 40 Optimizations Starting at the beginning, it looks as through the Method (_HOT, 0, Serialized) If (LGreaterEqual (OSYS, 0x07D6)) should be returning a value, but it's not. ThermalZone (TZ01) { Method (_HOT, 0, Serialized) { If (LGreaterEqual (OSYS, 0x07D6)) { If (LEqual (\_SB.PCI0.LPC.EC0.QUAD, One)) { Return (0x0E94) } Else { If (LEqual (TJMX, 0x64)) { Return (0x0EC6) } } If (LEqual (TJMX, 0x55)) { Return (0x0E30) } } } At this point, I find myself looking at random numerous solutions, but I'm not sure what will work for my system, and how I'm able to tell if a particular fix would do more damage than good. For example, I found this webpage and it shows what I believe to be a possible solution. So I replace the original Method with: Method (_HOT, 0, Serialized) { If (LEqual (OSYS, 0x07D6)) { If (LEqual (\_SB.TJ85, Zero)) { Return (Add (0x0AAC, Multiply (TPC, 0x0A))) } Else { Return (Add (0x0AAC, Multiply (TP85, 0x0A))) } } } Afterwards I receive 82 errors, so obviously that's not correct! Any help with general warning corrections... or if you're up to patching my GFX card, audio, and sleep issues ... would be very much appreciated!!! I'm just looking for someone to point me in the right direction... Link to comment Share on other sites More sharing options...
chris7519 Posted September 4, 2009 Author Share Posted September 4, 2009 Well due to the nice folks over at EvOsx86 releasing DSDTSE, I'm moving on to attempting to get my GFX working. I have NVDarwin and a patched DSDT.aml (via DSDT Patcher GUI) and my 9600M GT currently runs fine on 10.5.8. However, with my noob skills, I wasn't able to enable graphics support even with the laid out Hacks provided with DSDTSE. It simply seemed like a matter of copy and paste into the right section, but I encounter total blackness after the splash screen. The suggested hack is as follows: Nvidia Laptop. Locate the graphic section of your DSDT (laptop/mobile) Example: (PEGP), it could also be AGP or IGP or something similar. (Use the ACPI search feature to locte the section, or "Registry Info" from the menu). Device (PEGP) { Name (_ADR, 0x00010000) Method (_PRT, 0, NotSerialized) { If (GPIC) { Return (Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, ......... the code continues............... We place the hack just below of the following: Device (PEGP) { Name (_ADR, 0x00010000) Device (GFX0) /* <-------------------------- Hack Begins */ { 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) { /* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, /* 0008 */ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "NVPM", Buffer (0x20) { /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0018 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x20 /*<----------- Ram Amount: 0x40 = 1024mb, 0x20= 512mb, 0x10= 256mb */ }, "device_type", Buffer (0x0D) { "NVDA,GeForce" }, "model", Buffer () { "Nvidia GeForce 8600M GS 256 MB" }, "rom-revision", Buffer (0x20) { "DSDT ROM v.1a #irc.osx86.es ©" }, "reg", Buffer (0x78) { /* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02, /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02, /* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, /* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02, /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Here we can change the name: Buffer () { "Nvidia GeForce 8600M GS 256 MB" }, Here the NVCAP: "NVPM", Buffer (0x20) { /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0018 */ 0x00, 0x00, 0x00, 0x00 }, Here the Ram amount of the card. "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x20 /*<----------- Ram Amount: 0x40 = 1024mb, 0x20= 512mb, 0x10= 256mb */ }, I inserted the hack in the same location but no dice. I'm looking for suggestions of either what I did wrong or maybe pointed in the direction of a thread which includes someone patching their DSDT successfully for graphics support and showing how they found the needed information and where. dsdt.nvidia.zip dsdt.original.zip Link to comment Share on other sites More sharing options...
Recommended Posts