Jump to content

ACPI (DSDT) Patcher for BIOS and AML


koalala
 Share

845 posts in this topic

Recommended Posts

Your video card device id is 9589, it isn't in the plist of ATIRadeonX2000.kext

there are several things you can do about that:

1.edit the plist and add your device id

2.use plist only kext which will add your device id to the kext (better choice than 1)

3.flash your bios to 2600xt with device id 9588 (better imho but more dangerous)

 

Choice 2 :wacko: : Use this Legacy kext (put it in your Extra/Extension folder) and you won't need to change anything in ATI Vanilla Kexts for QE/CI (No need to flash bios!)

LegacyATIRadeonX2000.kext.zip

Link to comment
Share on other sites

Hello, i have two PC, one with asus motherboard that works with DSDT flasher using the localizations found in IOACPIPlane, and another one from Gigabyte, (EP35-DS4 1.1) that gives me the same problem that you have... There is no reference to any video card in the IOACPIPlane, and in IOService it is on PCI-bridge0

 

 

Plase, if you found any solution to finding the id of your NVIDIA card, plase tell it to me... I think that the missing ID can be related with the double beep issue

Link to comment
Share on other sites

Hello, i have two PC, one with asus motherboard that works with DSDT flasher using the localizations found in IOACPIPlane, and another one from Gigabyte, (EP35-DS4 1.1) that gives me the same problem that you have... There is no reference to any video card in the IOACPIPlane, and in IOService it is on PCI-bridge0

Plase, if you found any solution to finding the id of your NVIDIA card, plase tell it to me... I think that the missing ID can be related with the double beep issue

 

I just noticed the same thing in my ioresitryexplorer. Also I noticed that my system scored 20 points higher in xbench by removing appleintelcpupowermanagment.kext

Link to comment
Share on other sites

Just saw this thread:

http://www.insanelymac.com/forum/index.php?showtopic=161950

looks very interesting

this should be bundled into the patcher so we don't need legacy kext's for audio

in the meantime, I will try to adjust it to my alc889a

 

;)

Didn't managed to adjust it to my chip

so i just copied the HDEF part from the link into my own dsdt

i've got output with no kext's/legacy kext's (the only kext on the system is appledecrypt)

although i got few sound assertion upon boot...

maybe someone with better understanding of dsdt could make it better

Link to comment
Share on other sites

-_-

Didn't managed to adjust it to my chip

so i just copied the HDEF part from the link into my own dsdt

i've got output with no kext's/legacy kext's (the only kext on the system is appledecrypt)

although i got few sound assertion upon boot...

maybe someone with better understanding of dsdt could make it better

 

You need to adjust the values of "ConfigData" according to your codec verbs. You can obtain codec verbs from linux codec dump.

 

kizwan

Link to comment
Share on other sites

This is my HDEF part before using modification (right after using the tool described on this thread)

 

Device (HDEF)
			{
				Name (_ADR, 0x001B0000)
				Method (_PRW, 0, NotSerialized)
				{
					Return (Package (0x02)
					{
						0x0D, 
						0x05
					})
				}

				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"codec-id", 
							Buffer (0x04)
							{
								0x89, 0x08, 0xEC, 0x10
							}, 

							"layout-id", 
							Buffer (0x04)
							{
								0x79, 0x03, 0x00, 0x00
							}, 

							"device-type", 
							Buffer (0x10)
							{
								"Realtek ALC889a"
							}, 

							"PinConfigurations", 
							Buffer (0x18)
							{
								/* 0000 */	0x10, 0x44, 0x11, 0x01, 0x20, 0x14, 0x01, 0x01, 
								/* 0008 */	0x40, 0x4C, 0x21, 0x02, 0x50, 0x34, 0x81, 0x01, 
								/* 0010 */	0x60, 0x9C, 0xA1, 0x02, 0xF0, 0x61, 0x4B, 0x01
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

 

When using with the attached legacy kext's it's works flawlessly

i'm also attaching IOREG output with the correct pin configuration

can you show me what need to be changed in order to work "kext free" ? :)

Archive.zip

omri_s_iMac.zip

Link to comment
Share on other sites

This is my HDEF part before using modification (right after using the tool described on this thread)

....................

When using with the attached legacy kext's it's works flawlessly

i'm also attaching IOREG output with the correct pin configuration

can you show me what need to be changed in order to work "kext free" ? :P

Sorry. I was referring to sound assertion error during boot up. :)

B)

Didn't managed to adjust it to my chip

so i just copied the HDEF part from the link into my own dsdt

i've got output with no kext's/legacy kext's (the only kext on the system is appledecrypt)

although i got few sound assertion upon boot...

maybe someone with better understanding of dsdt could make it better

Just for clarification, can you post your DSDT code for HDEF after modification?

 

kizwan

Link to comment
Share on other sites

When I use HDEF from the post i've mentioned I get sound without any kext's

			Device (HDEF)
		  {
			  Name (_ADR, 0x001B0000)
			  Method (_PRW, 0, NotSerialized)
			  {
				  Return (Package (0x02)
				  {
					  0x0D,
					  0x05
				  })
			  }

			  Method (_DSM, 4, NotSerialized)
			  {
				  Store (Package (0x0C)
					  {
						  "built-in",
						  Buffer (One)
						  {
							  0x00
						  },

						  "codec-id",
						  Buffer (0x04)
						  {
							  0x85, 0x08, 0xEC, 0x10
						  },

						  "ConfigData",
						  Buffer (0xA0)
						  {
							  /* 0000 */	0x01, 0x47, 0x1c, 0x10, 0x01, 0x47, 0x1d, 0x40,
							  /* 0008 */	0x01, 0x47, 0x1e, 0x01, 0x01, 0x47, 0x1f, 0x01,
							  /* 0010 */	0x01, 0x57, 0x1c, 0x12, 0x01, 0x57, 0x1d, 0x10,
							  /* 0018 */	0x01, 0x57, 0x1e, 0x01, 0x01, 0x57, 0x1f, 0x01,
							  /* 0020 */	0x01, 0x67, 0x1c, 0x11, 0x01, 0x67, 0x1d, 0x60,
							  /* 0028 */	0x01, 0x67, 0x1e, 0x01, 0x01, 0x67, 0x1f, 0x01,
							  /* 0030 */	0x01, 0x77, 0x1c, 0x14, 0x01, 0x77, 0x1d, 0x20,
							  /* 0038 */	0x01, 0x77, 0x1e, 0x01, 0x01, 0x77, 0x1f, 0x01,
							  /* 0040 */	0x01, 0x87, 0x1c, 0x40, 0x01, 0x87, 0x1d, 0x98,
							  /* 0048 */	0x01, 0x87, 0x1e, 0xa1, 0x01, 0x87, 0x1f, 0x01,
							  /* 0050 */	0x01, 0x97, 0x1c, 0x50, 0x01, 0x97, 0x1d, 0x9c,
							  /* 0058 */	0x01, 0x97, 0x1e, 0xa1, 0x01, 0x97, 0x1f, 0x02,
							  /* 0060 */	0x01, 0xa7, 0x1c, 0x4f, 0x01, 0xa7, 0x1d, 0x30,
							  /* 0068 */	0x01, 0xa7, 0x1e, 0x81, 0x01, 0xa7, 0x1f, 0x01,
							  /* 0070 */	0x01, 0xb7, 0x1c, 0x20, 0x01, 0xb7, 0x1d, 0x4c,
							  /* 0078 */	0x01, 0xb7, 0x1e, 0x21, 0x01, 0xb7, 0x1f, 0x02,
							  /* 0080 */	0x01, 0xe7, 0x1c, 0x70, 0x01, 0xe7, 0x1d, 0x71,
							  /* 0088 */	0x01, 0xe7, 0x1e, 0x44, 0x01, 0xe7, 0x1f, 0x01,
							  /* 0090 */	0x01, 0xf7, 0x1c, 0x80, 0x01, 0xf7, 0x1d, 0x51,
							  /* 0098 */	0x01, 0xf7, 0x1e, 0xc4, 0x01, 0xf7, 0x1f, 0x01
						  },

						  "layout-id",
						  Buffer (0x04)
						  {
							  0x3f, 0x00, 0x00, 0x00
						  },

						  "device-type",
						  Buffer (0x10)
						  {
							  "Realtek ALC889a"
						  },

						  "PinConfigurations",
						  Buffer (One)
						  {
							  0x00
						  }
					  }, Local0)
				  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				  Return (Local0)
			  }
		  }

but my system profiler show this:

picture2aqr.th.png

and the sound on system preferences look like this:

picture1zgx.th.png

picture3fco.th.png

 

I'm also attaching my ioreg with that HDEF

as i said, I've got sound (stereo only but that's all I need) without any kext

and i get this error on boot

Apr 17 00:45:00 omris-imac kernel[0]: Sound assertion "0 == fMikeyDriver" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 1063 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDAWidget.cpp" at line 2508 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDACodecGeneric.cpp" at line 850 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDAWidget.cpp" at line 2508 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDACodecGeneric.cpp" at line 850 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDAWidget.cpp" at line 2508 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDACodecGeneric.cpp" at line 850 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDAWidget.cpp" at line 2508 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDACodecGeneric.cpp" at line 850 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != result" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDAWidget.cpp" at line 2508 goto handler
Apr 17 00:45:01 omris-imac kernel[0]: Sound assertion "0 != widget->setUnsolicited ( true )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDACodecGeneric.cpp" at line 850 goto handler

 

after some "Mix and Match"

this is my HDEF

Device (HDEF)
		  {
			  Name (_ADR, 0x001B0000)
			  Method (_PRW, 0, NotSerialized)
			  {
				  Return (Package (0x02)
				  {
					  0x0D,
					  0x05
				  })
			  }

			  Method (_DSM, 4, NotSerialized)
			  {
				  Store (Package (0x0C)
					  {
						  "built-in",
						  Buffer (One)
						  {
							  0x00
						  },

						  "codec-id",
						  Buffer (0x04)
						  {
							  0x85, 0x08, 0xEC, 0x10
						  },

						  "ConfigData",
						  Buffer (0xA0)
						  {
							  /* 0000 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0008 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0010 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0018 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0020 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0028 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0030 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0038 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0040 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0048 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0050 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0058 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0060 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0068 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0070 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0078 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0080 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0088 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0090 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0098 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01
						  },

						  "layout-id",
						  Buffer (0x04)
						  {
							  0x3f, 0x00, 0x00, 0x00
						  },

						  "device-type",
						  Buffer (0x10)
						  {
							  "Realtek ALC889a"
						  },

							 "PinConfigurations",
							 Buffer (0x28)
							 {
								 /* 0000 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0008 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0010 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0018 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0020 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0028 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0030 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0038 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0040 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0048 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0050 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0058 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0060 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0068 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0070 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01,
							  /* 0078 */	0x10, 0x90, 0xa0, 0x90, 0x20, 0x90, 0xa1, 0x02,
							  /* 0080 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
							  /* 0088 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
							  /* 0090 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
							  /* 0098 */	0x70, 0x61, 0x4b, 0x01, 0xa0, 0x01, 0xcb, 0x01
							 }
					  }, Local0)
				  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				  Return (Local0)
			  }
		  }

 

system profiler show all connections

picture1pdj.th.png

 

system preferences and assertion errors remain the same...

need a little more tweaking

omri_s_iMac.zip

Link to comment
Share on other sites

Hi WinstonAce,

 

("ConfigData" & "PinConfigurations" - with quote - referring to content of DSDT code for HDEF)

 

Your "ConfigData" after modification does not reflect to your ConfigData taken from your LegacyHDAController.kext & it is the same with "PinConfigurations" value. Did you construct/edit the legacy kexts your self? This is your ConfigData that I extracted from your LegacyHDAController.kext (Info.plist file).

21871C10 21871D90 21871EA0 21871F90 
21971C20 21971D90 21971EA1 21971F02 
21A71C80 21A71D30 21A71E81 21A71F01 
21B71C90 21B71D40 21B71E21 21B71F02 
21471C30 21471D40 21471E11 21471F01 
21571C40 21571D10 21571E01 21571F01 
21671C50 21671D60 21671E01 21671F01 
21771C60 21771D20 21771E01 21771F01 
21E71C70 21E71D61 21E71E4B 21E71F01 
21F71CA0 21F71D01 21F71ECB 21F71F01 

So, the first line in your "ConfigData" should look like this:-

/* 0000 */	0x21, 0x87, 0x1c, 0x10, 0x21, 0x87, 0x1d, 0x90,

Though that sound assertion error is not critical & I don't think it will prevent your audio from working, it can be fix with correct "ConfigData". That is what my previous post means.

 

I just tried to add HDEF to DSDT (I did not do it before because it did not give any advantages to me) & I found out I still need legacy kext. The only kext I can remove is HDAEnabler.kext. If I remove the legacy kext I got a couple of sound assertion error with no output or input in the Sound control panel. But my input & output devices displayed correctly in System Profiler.

Sound assertion "0 == pathMap_aDriverInstance" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 1327 goto Exit
  Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 127 goto Exit
  Sound assertion "0 == pathMap_aDriverInstance" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 1327 goto Exit
  Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 127 goto Exit

This is my DSDT code looks like:-

            Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Name (HDWA, Zero)
               Name (_PRW, Package (0x02)
               {
                   0x05, 
                   0x03
               })
               Method (_PS0, 0, Serialized)
               {
                   If (LEqual (HDWA, Zero))
                   {
                       Store (One, HDWA)
                       HKEY (0x8F)
                   }
               }

               Method (_PS3, 0, Serialized)
               {
                   Store (Zero, HDWA)
               }

               [b]Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0C)
                   {
                       "built-in",
                       Buffer (One)
                       {
                           0x00
                       },

                       "codec-id",
                       Buffer (0x04)
                       {
                           0x83, 0x08, 0xEC, 0x10
                       },

                       "ConfigData",
                       Buffer (0x40)
                       {
                           /* 0000 */    0x01, 0x47, 0x1C, 0x30, 0x01, 0x47, 0x1D, 0x11,
                           /* 0008 */    0x01, 0x47, 0x1E, 0x0B, 0x01, 0x47, 0x1F, 0x01,
                           /* 0010 */    0x01, 0x87, 0x1C, 0x10, 0x01, 0x87, 0x1D, 0x91,
                           /* 0018 */    0x01, 0x87, 0x1E, 0xAB, 0x01, 0x87, 0x1F, 0x01,
                           /* 0020 */    0x01, 0xA7, 0x1C, 0x20, 0x01, 0xA7, 0x1D, 0x31,
                           /* 0028 */    0x01, 0xA7, 0x1E, 0x81, 0x01, 0xA7, 0x1F, 0x01,
                           /* 0030 */    0x01, 0xE7, 0x1C, 0x40, 0x01, 0xE7, 0x1D, 0xE1,
                           /* 0038 */    0x01, 0xE7, 0x1E, 0x45, 0x01, 0xE7, 0x1F, 0x01
                       },

                       "layout-id",
                       Buffer (0x04)
                       {
                           0x0C, 0x00, 0x00, 0x00
                       },

                       "device-type",
                       Buffer (0x11)
                       {
                           "Mobile ALC883 S/T"
                       },

                       "PinConfigurations",
                       Buffer (0x10)
                       {
                           /* 0000 */    0x30, 0x11, 0x0B, 0x01, 0x10, 0x91, 0xAB, 0x01,
                           /* 0008 */    0x20, 0x31, 0x81, 0x01, 0x40, 0xE1, 0x45, 0x01
                       }
                   }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }[/b]
           }

I bolded the code I add in the HDEF section.

 

BTW, I'm a little bit confused, did you means if you apply the modification without "Mix and Match" you got output working with no legacy/pacthed kext right? But after you do "Mix and Match" you need to use the legacy kext. Is that what you mean?

 

kizwan

Link to comment
Share on other sites

Thanks Kizwan , I will try this config data later and report.

What i meant regarding the "Mix and Match" is that I took the HDEF from the 885 and added my pinconfig and it's working without any kext.

By the way, when I change the layout-id to mine it doesn't work

i'll bet that if you try "my" HDEF" you will have (basic) output without any kext too

Link to comment
Share on other sites

Thanks Kizwan , I will try this config data later and report.

What i meant regarding the "Mix and Match" is that I took the HDEF from the 885 and added my pinconfig and it's working without any kext.

By the way, when I change the layout-id to mine it doesn't work

i'll bet that if you try "my" HDEF" you will have (basic) output without any kext too

 

So you did not change the layout-id. I will try that later. That (maybe) make sense since I did change MuteGPIO value in the legacy kext (layouts section).

 

kizwan

Link to comment
Share on other sites

I'm almost there :)

this is my new HDEF

 

			Device (HDEF)
		 {
			 Name (_ADR, 0x001B0000)
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (Package (0x02)
				 {
					 0x0D,
					 0x05
				 })
			 }

			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x0C)
					 {
						 "built-in",
						 Buffer (One)
						 {
							 0x00
						 },

						 "codec-id",
						 Buffer (0x04)
						 {
							 0x85, 0x08, 0xEC, 0x10
						 },

						 "ConfigData",
						 Buffer (0xc0)
						 {
							 /* 0000 */	0x01, 0x47, 0x1c, 0x10, 0x01, 0x47, 0x1d, 0x44, 
							 /* 0008 */	0x01, 0x47, 0x1e, 0x01, 0x01, 0x47, 0x1f, 0x01, 
							 /* 0010 */	0x01, 0x57, 0x1c, 0x12, 0x01, 0x57, 0x1d, 0x14, 
							 /* 0018 */	0x01, 0x57, 0x1e, 0x01, 0x01, 0x57, 0x1f, 0x01, 
							 /* 0020 */	0x01, 0x67, 0x1c, 0x11, 0x01, 0x67, 0x1d, 0x64, 
							 /* 0028 */	0x01, 0x67, 0x1e, 0x01, 0x01, 0x67, 0x1f, 0x01, 
							 /* 0030 */	0x01, 0x77, 0x1c, 0x14, 0x01, 0x77, 0x1d, 0x24, 
							 /* 0038 */	0x01, 0x77, 0x1e, 0x01, 0x01, 0x77, 0x1f, 0x01, 
							 /* 0040 */	0x01, 0x87, 0x1c, 0x40, 0x01, 0x87, 0x1d, 0x9c,
							 /* 0048 */	0x01, 0x87, 0x1e, 0xa1, 0x01, 0x87, 0x1f, 0x01, 
							 /* 0050 */	0x01, 0x97, 0x1c, 0x50, 0x01, 0x97, 0x1d, 0x9c,
							 /* 0058 */	0x01, 0x97, 0x1e, 0xa1, 0x01, 0x97, 0x1f, 0x02,
							 /* 0060 */	0x01, 0xa7, 0x1c, 0x4f, 0x01, 0xa7, 0x1d, 0x34, 
							 /* 0068 */	0x01, 0xa7, 0x1e, 0x81, 0x01, 0xa7, 0x1f, 0x01, 
							 /* 0070 */	0x01, 0xb7, 0x1c, 0x20, 0x01, 0xb7, 0x1d, 0x4c,
							 /* 0078 */	0x01, 0xb7, 0x1e, 0x21, 0x01, 0xb7, 0x1f, 0x02,
							 /* 0080 */	0x01, 0xc7, 0x1c, 0xf0, 0x01, 0xc7, 0x1d, 0x01,
							 /* 0088 */	0x01, 0xc7, 0x1e, 0x33, 0x01, 0xc7, 0x1f, 0x59, 
							 /* 0090 */	0x01, 0xd7, 0x1c, 0x01, 0x01, 0xd7, 0x1d, 0xe6,
							 /* 0098 */	0x01, 0xd7, 0x1e, 0x05, 0x01, 0xd7, 0x1f, 0x40, 
			 /* 0100 */	0x01, 0xe7, 0x1c, 0x30, 0x01, 0xe7, 0x1d, 0x61,
			 /* 0108 */	0x01, 0xe7, 0x1e, 0x4b, 0x01, 0xe7, 0x1f, 0x01,
			  /* 0110 */	0x01, 0xf7, 0x1c, 0x60, 0x01, 0xf7, 0x1d, 0x71, 
			 /* 0118 */	0x01, 0xf7, 0x1e, 0xcb, 0x01, 0xf7, 0x1f, 0x01

						 },

						 "layout-id",
						 Buffer (0x04)
						 {
							 0x00, 0x00, 0x00, 0x00
						 },

						 "device-type",
						 Buffer (0x10)
						 {
							 "Realtek ALC889a"
						 },

							"PinConfigurations",
							Buffer (0x30)
							{
							 /* 0000 */	0x10, 0x44, 0x01, 0x01, 0x12, 0x14, 0x01, 0x01,
							 /* 0008 */	0x11, 0x64, 0x01, 0x01, 0x14, 0x24, 0x01, 0x01,
							 /* 0010 */	0x40, 0x9c, 0xa1, 0x01, 0x50, 0x9c, 0xa1, 0x02,
							 /* 0018 */	0x4f, 0x34, 0x81, 0x01, 0x20, 0x4c, 0x21, 0x02,
							 /* 0020 */	0xf0, 0x01, 0x33, 0x59, 0x01, 0xe6, 0x05, 0x40,
							 /* 0028 */	0x30, 0x61, 0x4b, 0x01, 0x60, 0x71, 0xcb, 0x01

 

I used the configdata and pinconfiguration from "Windows 7" (64bit edition)

I have sound (kext free) and I don't get sound assertion errors anymore

but i had to plug my speakers to line out (blue) instead of speakers (green)

just a little more tweaking...

picture1j.th.png

picture2ykl.th.png

picture3e.th.png

Link to comment
Share on other sites

Well, I give up

i've got sound without any kext

the system profiler and system preferences show every input/output I've got/use

and I don't get error upon boot

good enough for me (until one of the pro's will take control ^_^)

 

I revert back to the original alc889a configdata and removed the unnecessary pinconfig

anyone with ALC889a is invited to try this

 

			Device (HDEF)
		 {
			 Name (_ADR, 0x001B0000)
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (Package (0x02)
				 {
					 0x0D,
					 0x05
				 })
			 }

			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x0C)
					 {
						 "built-in",
						 Buffer (One)
						 {
							 0x00
						 },

						 "codec-id",
						 Buffer (0x04)
						 {
							 0x85, 0x08, 0xEC, 0x10
						 },

						 "ConfigData",
						 Buffer (0xA0)
						 {
							 /* 0000 */	0x21, 0x87, 0x1c, 0x10, 0x21, 0x87, 0x1d, 0x90,
							 /* 0008 */	0x21, 0x87, 0x1e, 0xa0, 0x21, 0x87, 0x1f, 0x90,
							 /* 0010 */	0x21, 0x97, 0x1c, 0x20, 0x21, 0x97, 0x1d, 0x90,
							 /* 0018 */	0x21, 0x97, 0x1e, 0xa1, 0x21, 0x97, 0x1f, 0x02,
							 /* 0020 */	0x21, 0xa7, 0x1c, 0x80, 0x21, 0xa7, 0x1d, 0x30,
							 /* 0028 */	0x21, 0xa7, 0x1e, 0x81, 0x21, 0xa7, 0x1f, 0x01,
							 /* 0030 */	0x21, 0xb7, 0x1c, 0x90, 0x21, 0xb7, 0x1d, 0x40,
							 /* 0038 */	0x21, 0xb7, 0x1e, 0x21, 0x21, 0xb7, 0x1f, 0x02,
							 /* 0040 */	0x21, 0x47, 0x1c, 0x30, 0x21, 0x47, 0x1d, 0x40,
							 /* 0048 */	0x21, 0x47, 0x1e, 0x11, 0x21, 0x47, 0x1f, 0x01,
							 /* 0050 */	0x21, 0x57, 0x1c, 0x40, 0x21, 0x57, 0x1d, 0x10,
							 /* 0058 */	0x21, 0x57, 0x1e, 0x01, 0x21, 0x57, 0x1f, 0x01,
							 /* 0060 */	0x21, 0x67, 0x1c, 0x50, 0x21, 0x67, 0x1d, 0x60,
							 /* 0068 */	0x21, 0x67, 0x1e, 0x01, 0x21, 0x67, 0x1f, 0x01,
							 /* 0070 */	0x21, 0x77, 0x1c, 0x60, 0x21, 0x77, 0x1d, 0x20,
							 /* 0078 */	0x21, 0x77, 0x1e, 0x01, 0x21, 0x77, 0x1f, 0x01,
							 /* 0080 */	0x21, 0xe7, 0x1c, 0x70, 0x21, 0xe7, 0x1d, 0x61,
							 /* 0088 */	0x21, 0xe7, 0x1e, 0x4b, 0x21, 0xe7, 0x1f, 0x01,
							 /* 0090 */	0x21, 0xf7, 0x1c, 0xa0, 0x21, 0xf7, 0x1d, 0x01,
							 /* 0098 */	0x21, 0xf7, 0x1e, 0xcb, 0x21, 0xf7, 0x1f, 0x01
						 },

						 "layout-id",
						 Buffer (0x04)
						 {
							 0x00, 0x00, 0x00, 0x00
						 },

						 "device-type",
						 Buffer (0x10)
						 {
							 "Realtek ALC889a"
						 },

						 "PinConfigurations",
						 Buffer (One)
						 {
							 0x00
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }
		 }

Link to comment
Share on other sites

There are several Layout-id's in original APPLEHDA which are connected to codec-id 0x85, 0x08, 0xEC, 0x10 (283904133)

I've tried all of them

(00/0c/24/3f/40)

 

Where i have to look for these layout-ids?

Link to comment
Share on other sites

I have just ditched this program altogether. I came across OpenDSDT.kext. I reflashed my bios to an unpatched state after installing the kext. Sleep works perfectly now. No patching, no dsdt.aml generating.

 

This is interesting does this kext give you GFX, Audio etc without EFI strings?

 

Can it load from Extra/Extensions or does it have to live in S/L/E?

Link to comment
Share on other sites

WinstonAce,

 

Just got back from long vacation...

First of all great research.. tried on my ALC889A.. works exactly as you described.

 

Great finding! Works without any kexts... Really great! :D

 

Its all about PinConfigurations now... Ill try to fix it tomorrow.

 

btw, my codec looks like this and works without any errors in log:

 

Device (HDEF)
		 {
			 Name (_ADR, 0x001B0000)
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (Package (0x02)
				 {
					 0x0D,
					 0x05
				 })
			 }

			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x0C)
					 {
						 "built-in",
						 Buffer (One)
						 {
							 0x00
						 },

						 "codec-id",
						 Buffer (0x04)
						 {
							 0x85, 0x08, 0xEC, 0x10
						 },

						 "ConfigData",
						 Buffer (0xA0)
						 {
							 /* 0000 */	0x21, 0x87, 0x1c, 0x40, 0x21, 0x87, 0x1d, 0x9c,
							 /* 0008 */	0x21, 0x87, 0x1e, 0xa1, 0x21, 0x87, 0x1f, 0x01,
							 /* 0010 */	0x21, 0x97, 0x1c, 0x50, 0x21, 0x97, 0x1d, 0x9c,
							 /* 0018 */	0x21, 0x97, 0x1e, 0xa1, 0x21, 0x97, 0x1f, 0x02,
							 /* 0020 */	0x21, 0xa7, 0x1c, 0x4f, 0x21, 0xa7, 0x1d, 0x34,
							 /* 0028 */	0x21, 0xa7, 0x1e, 0x81, 0x21, 0xa7, 0x1f, 0x01,
							 /* 0030 */	0x21, 0xb7, 0x1c, 0x20, 0x21, 0xb7, 0x1d, 0x4c,
							 /* 0038 */	0x21, 0xb7, 0x1e, 0x21, 0x21, 0xb7, 0x1f, 0x02,
							 /* 0040 */	0x21, 0xc7, 0x1c, 0xf0, 0x21, 0xc7, 0x1d, 0x01,
							 /* 0048 */	0x21, 0xc7, 0x1e, 0x33, 0x21, 0xc7, 0x1f, 0x59,
							 /* 0050 */	0x21, 0xd7, 0x1c, 0x01, 0x21, 0xd7, 0x1d, 0xe6,
							 /* 0058 */	0x21, 0xd7, 0x1e, 0x05, 0x21, 0xd7, 0x1f, 0x40,
							 /* 0060 */	0x21, 0x47, 0x1c, 0x10, 0x21, 0x47, 0x1d, 0x44,
							 /* 0068 */	0x21, 0x47, 0x1e, 0x01, 0x21, 0x47, 0x1f, 0x01,
							 /* 0070 */	0x21, 0x57, 0x1c, 0x12, 0x21, 0x57, 0x1d, 0x14,
							 /* 0078 */	0x21, 0x57, 0x1e, 0x01, 0x21, 0x57, 0x1f, 0x01,
							 /* 0080 */	0x21, 0x67, 0x1c, 0x11, 0x21, 0x67, 0x1d, 0x64,
							 /* 0088 */	0x21, 0x67, 0x1e, 0x01, 0x21, 0x67, 0x1f, 0x01,
							 /* 0090 */	0x21, 0x77, 0x1c, 0x14, 0x21, 0x77, 0x1d, 0x24,
							 /* 0098 */	0x21, 0x77, 0x1e, 0x01, 0x21, 0x77, 0x1f, 0x01,
							 /* 0100 */	0x21, 0xe7, 0x1c, 0x30, 0x21, 0xe7, 0x1d, 0x61,
							 /* 0108 */	0x21, 0xe7, 0x1e, 0x4b, 0x21, 0xe7, 0x1f, 0x01,
							 /* 0110 */	0x21, 0xf7, 0x1c, 0x60, 0x21, 0xf7, 0x1d, 0x71,
							 /* 0118 */	0x21, 0xf7, 0x1e, 0xcb, 0x21, 0xf7, 0x1f, 0x01
						 },

						 "layout-id",
						 Buffer (0x04)
						 {
							 0x00, 0x00, 0x00, 0x00
						 },

						 "device-type",
						 Buffer (0x10)
						 {
							 "Realtek ALC889a"
						 },

						 "PinConfigurations",
						 Buffer (One)
						 {
							 0x00
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }
		 }

Link to comment
Share on other sites

 Share

×
×
  • Create New...