Jump to content

Building a custom DSDT for C700 (C776CA)


3 posts in this topic

Recommended Posts

I have a C776 which is well supported by OSX, except for a few key details that are driving me crazy. Most important to me is sleep/wake... on wake, my fans stop working entirely, leading to a KP pretty quickly. Second, I'd like to be able to use native kexts for my audio device (right now I have custom kexts). Finally, the ability to use native kexts with my trackpad/keyboard would be nice (is that even possible with PS2 devices?).

 

 

When I try to compile my DSDT, here are the warnings and errors I get:

 

./dsdt_fixed.txt   541:			 Method (FRSP, 0, NotSerialized)
Warning  1087 -								^ Not all control paths return a value (FRSP)

./dsdt_fixed.txt  1910:					 Name (_T_0, Zero)
Remark   5110 -		Use of compiler reserved name ^  (_T_0)

./dsdt_fixed.txt  2598:			 Method (_OSC, 5, NotSerialized)
Warning  1076 -								^ Reserved method has too many arguments (_OSC requires 4)

./dsdt_fixed.txt  2609:					 CreateDWordField (BUF1, Local2, CAPB)
Error	4111 -		  Creating a named object in a While loop ^ 

./dsdt_fixed.txt  2614:							 And (CAPB, 0xFFFFFFFC)
Warning  1105 -  Result is not used, operator has no effect ^ 

./dsdt_fixed.txt  7178:					 Method (_GTM, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTM)

./dsdt_fixed.txt  7178:					 Method (_GTM, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTM)

./dsdt_fixed.txt  7338:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7338:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7406:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7406:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7479:					 Method (_GTM, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTM)

./dsdt_fixed.txt  7479:					 Method (_GTM, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTM)

./dsdt_fixed.txt  7652:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7652:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7720:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7720:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7827:					 Method (_GTF, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7827:					 Method (_GTF, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7873:					 Method (_GTF, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7873:					 Method (_GTF, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTF)

 

 

I figure the most important thing to fix is the Error:

./dsdt_fixed.txt  2609:					 CreateDWordField (BUF1, Local2, CAPB)
Error	4111 -		  Creating a named object in a While loop ^

 

Here's the offending code from/around line 2609:

Method (_OSC, 5, NotSerialized)
		{
			Store (Arg3, Local0)
			Multiply (Local0, 0x04, Local1)
			Name (BUF1, Buffer (Local1) {})
			Store (Arg4, BUF1)
			Store (Zero, Local1)
			Store (Zero, Local2)
			While (Local0)
			{
				Multiply (Local1, 0x04, Local2)
				CreateDWordField (BUF1, Local2, CAPB)
				If (Arg2)
				{
					If (LEqual (Local1, Zero))
					{
						And (CAPB, 0xFFFFFFFC)
					}
				}
				Else
				{
				}

				Increment (Local1)
				Decrement (Local0)
			}

			Return (BUF1)
		}

 

 

I understand the error - creating that new DWORD is illegal when you're in a loop. But I have no idea how to fix it! Ideas?

Link to comment
Share on other sites

  • 4 weeks later...

Well I've fixed a lot of it. Took care of the error at least, now I'm trying to fix the warnings. All I have lft is

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091112 [Nov 13 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7342:						 Method (_GTF, 0, NotSerialized)
Warning  1081 -																	   Reserved method must return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7405:						 Method (_GTF, 0, NotSerialized)
Warning  1088 -																	  Not all control paths return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7405:						 Method (_GTF, 0, NotSerialized)
Warning  1081 -																	   Reserved method must return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7477:					 Method (_GTM, 0, NotSerialized)
Warning  1088 -																  Not all control paths return a value ^  (_GTM)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7477:					 Method (_GTM, 0, NotSerialized)
Warning  1081 -																   Reserved method must return a value ^  (_GTM)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7650:						 Method (_GTF, 0, NotSerialized)
Warning  1088 -																	  Not all control paths return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7650:						 Method (_GTF, 0, NotSerialized)
Warning  1081 -																	   Reserved method must return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7718:						 Method (_GTF, 0, NotSerialized)
Warning  1088 -																	  Not all control paths return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7718:						 Method (_GTF, 0, NotSerialized)
Warning  1081 -																	   Reserved method must return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7825:					 Method (_GTF, 0, NotSerialized)
Warning  1088 -																  Not all control paths return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7825:					 Method (_GTF, 0, NotSerialized)
Warning  1081 -																   Reserved method must return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7871:					 Method (_GTF, 0, NotSerialized)
Warning  1088 -																  Not all control paths return a value ^  (_GTF)

/Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  7871:					 Method (_GTF, 0, NotSerialized)
Warning  1081 -																   Reserved method must return a value ^  (_GTF)

ASL Input:  /Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 7885 lines, 301109 bytes, 3352 keywords
AML Output: /Users/campbell/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/./dsdt.aml - 32813 bytes, 676 named objects, 2676 executable opcodes

Compilation complete. 0 Errors, 13 Warnings, 0 Remarks, 36 Optimizations

 

Seems like every time I get a "Reserved method must return a value" I also get a "Not all control paths return a value". I think these are redundant warnings.... but any help?

dsdt.zip

Link to comment
Share on other sites

  • 1 year later...
I have a C776 which is well supported by OSX, except for a few key details that are driving me crazy. Most important to me is sleep/wake... on wake, my fans stop working entirely, leading to a KP pretty quickly. Second, I'd like to be able to use native kexts for my audio device (right now I have custom kexts). Finally, the ability to use native kexts with my trackpad/keyboard would be nice (is that even possible with PS2 devices?).

 

 

When I try to compile my DSDT, here are the warnings and errors I get:

 

./dsdt_fixed.txt   541:			 Method (FRSP, 0, NotSerialized)
Warning  1087 -								^ Not all control paths return a value (FRSP)

./dsdt_fixed.txt  1910:					 Name (_T_0, Zero)
Remark   5110 -		Use of compiler reserved name ^  (_T_0)

./dsdt_fixed.txt  2598:			 Method (_OSC, 5, NotSerialized)
Warning  1076 -								^ Reserved method has too many arguments (_OSC requires 4)

./dsdt_fixed.txt  2609:					 CreateDWordField (BUF1, Local2, CAPB)
Error	4111 -		  Creating a named object in a While loop ^ 

./dsdt_fixed.txt  2614:							 And (CAPB, 0xFFFFFFFC)
Warning  1105 -  Result is not used, operator has no effect ^ 

./dsdt_fixed.txt  7178:					 Method (_GTM, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTM)

./dsdt_fixed.txt  7178:					 Method (_GTM, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTM)

./dsdt_fixed.txt  7338:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7338:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7406:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7406:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7479:					 Method (_GTM, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTM)

./dsdt_fixed.txt  7479:					 Method (_GTM, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTM)

./dsdt_fixed.txt  7652:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7652:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7720:						 Method (_GTF, 0, NotSerialized)
Warning  1087 -	   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7720:						 Method (_GTF, 0, NotSerialized)
Warning  1080 -		Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7827:					 Method (_GTF, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7827:					 Method (_GTF, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTF)

./dsdt_fixed.txt  7873:					 Method (_GTF, 0, NotSerialized)
Warning  1087 -   Not all control paths return a value ^  (_GTF)

./dsdt_fixed.txt  7873:					 Method (_GTF, 0, NotSerialized)
Warning  1080 -	Reserved method must return a value ^  (_GTF)

 

 

I figure the most important thing to fix is the Error:

./dsdt_fixed.txt  2609:					 CreateDWordField (BUF1, Local2, CAPB)
Error	4111 -		  Creating a named object in a While loop ^

 

Here's the offending code from/around line 2609:

Method (_OSC, 5, NotSerialized)
		{
			Store (Arg3, Local0)
			Multiply (Local0, 0x04, Local1)
			Name (BUF1, Buffer (Local1) {})
			Store (Arg4, BUF1)
			Store (Zero, Local1)
			Store (Zero, Local2)
			While (Local0)
			{
				Multiply (Local1, 0x04, Local2)
				CreateDWordField (BUF1, Local2, CAPB)
				If (Arg2)
				{
					If (LEqual (Local1, Zero))
					{
						And (CAPB, 0xFFFFFFFC)
					}
				}
				Else
				{
				}

				Increment (Local1)
				Decrement (Local0)
			}

			Return (BUF1)
		}

 

 

I understand the error - creating that new DWORD is illegal when you're in a loop. But I have no idea how to fix it! Ideas?

 

Is there any way you could PM your solution to this problem!? its driving me nuts. thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...