Jump to content

[GUIDE] OS X Lion on ThinkPad W520


gothic860
 Share

107 posts in this topic

Recommended Posts

Finally I got working batery with this Voodoo batery kexts:http://min.us/msXfjaFvL

They don't work with iStats, but works fine with system indicator.

I have last issue - my usb devices don't work after sleep. I've tried USB fix in Chameleon, but it does not work.

 

Any way, gothic860 very big thanks for your guide, and if you have some ideas about next improvements fell free to ask, I can help you with search or programming stuff.

Link to comment
Share on other sites

Hey Gothic back to bother you some more. I bought the wireless card and downloaded the bios file which is 8buji12us.exe. At this poin i'm confused as of how to add the whitelist fix file .FL1. I even tried going to the DE lenovo site just to make sure the file i'm getting is the same and it appears it is. I have got the hex editor and changing the lines after adding the .FL1 shouldn't be a problem but I am puzzled as of where you've got the 64 bit and 32 bit folders when all i get as bios update is an exe file. Please help upload the fixed bios or send it to me via skype or something. I love having lion on my TP W520 but if i can't get the wireless working it's kind of a deal breaker. Another thing is whatever i tried I can not get my battery to be recognized and show percentage or hours remaining. Cheers, Daniel.

Link to comment
Share on other sites

Hey Gothic back to bother you some more. I bought the wireless card and downloaded the bios file which is 8buji12us.exe. At this poin i'm confused as of how to add the whitelist fix file .FL1. I even tried going to the DE lenovo site just to make sure the file i'm getting is the same and it appears it is. I have got the hex editor and changing the lines after adding the .FL1 shouldn't be a problem but I am puzzled as of where you've got the 64 bit and 32 bit folders when all i get as bios update is an exe file. Please help upload the fixed bios or send it to me via skype or something. I love having lion on my TP W520 but if i can't get the wireless working it's kind of a deal breaker. Another thing is whatever i tried I can not get my battery to be recognized and show percentage or hours remaining. Cheers, Daniel.

 

After you've downloaded the exe, when you'll run it (in windows), it will "unzip" to C:\DRIVERS\FLASH\8buj12us Inside that folder is where you will find the environment.dll file Gothic is talking about. I've gotten a hex editor called HxD & opened environment.dll in there, however... no luck finding either

"

C4

83

14

89

45

E0

83

E0

7D

00

74 31"

or

"C4 83 14 89 45 E0 83 E0 EB 00 31 7D"

 

- Gothic, please elaborate on this!

Link to comment
Share on other sites

tnx neckcutta and yeh i can't find this string either pls help.

 

I will post some more pictures and steps later today.

 

btw tnx devfom for the battery fix :) finaly workin battery indicator!

 

Strange... VoodooBattery works ofc (not with iStats), but AppleSmartBatteryManager.kext was working OOB for me with iStats...

Link to comment
Share on other sites

so I just checked the Wifi card i receieved and as always lately the chineese brothers have send me the wrong product.... I've gotten a AR5B91 instead any idea if I could make this one work ? I already wrote to the ebay seller and am hoping for a replacement but if i can get this to work would love to not have to wait another 3 weeks for another card.

Link to comment
Share on other sites

ok to anyone that's stuck on the part with the HEX editing of environment.dll you need to do a search for string E0 00 74 31

and you will find the right place to edit. Took awhile to figure but at least i did :) Thanks for all the help so far gothic and i will write again hopefully from OS X with wireless access!

Link to comment
Share on other sites

haha, you guys are gonna laugh....

everything went through perfectly smooth until i ran that WINUPTP.exe & got the "BIOS image file is same as BIOS ROM. An update is not necessary at this time" message. what happened was, I already flashed my BIOS to the latest version when I first got this laptop. FML.

 

any ideas?

Link to comment
Share on other sites

gothic860 thanks for your awesome guide! It really helped with my T510.

 

Have you had any luck with the battery related DSDT edits over here:

http://www.insanelymac.com/forum/index.php?showtopic=264597&st=0

 

I'm trying to get bettery battery support (currently just using Voodoo battery under 10.6.8, which isn't detected in iStats). It seems both the T510 and W510 have similar code in the DSDT relating to the battery.

 

Take a look at my DSDT, if you have time. I've tried converting some of the SBxx lines to 8 bit chunks, but haven't fully figured it out yet. Take care.

Link to comment
Share on other sites

Hey,

 

i "gave up" and sold my W520 to buy a Macbook Pro. Too many little stuff to solve and of course a lot of work to get it really 100% working.

I tied the battery stuff but like you i don't had luck with it.

Link to comment
Share on other sites

Gothic860, sorry to hear that you gave up your W520! I actually just bought one partially based on this guide because I wanted a good Thinkpad that can also run OSX Lion! In any case, thanks for your efforts, it has saved me a lot of time and research.

 

With a few tweaks to Gothic860's guide, I've got most things working. However one thing that's bugging me at the moment is the fact that my USB 2.0 ports no longer work after waking up from sleep. Has anyone else with a Thinkpad with the same Intel 6 Series/C200 Series Chipset had the same problems and managed to fix it?

 

USB controller PCI IDs are 8086:1c2d and 8086:1c26. I've already added the _DSM methods to both EHC1 and EHC2 with the correct "device-id"s and "AAPL,clock-id" 0x01 and 0x02 respectively. Sleep works properly, everything powers down and turns on again when the power button is pressed, but my USB 2.0 ports will not work after that. Interestingly the USB3.0 ports will work.

 

If you have a similar Thinkpad (T420, T520, W520) without this problem, please let me know so I can narrow down the differences. Thanks!

Link to comment
Share on other sites

Gothic860, sorry to hear that you gave up your W520! I actually just bought one partially based on this guide because I wanted a good Thinkpad that can also run OSX Lion! In any case, thanks for your efforts, it has saved me a lot of time and research.

 

With a few tweaks to Gothic860's guide, I've got most things working. However one thing that's bugging me at the moment is the fact that my USB 2.0 ports no longer work after waking up from sleep. Has anyone else with a Thinkpad with the same Intel 6 Series/C200 Series Chipset had the same problems and managed to fix it?

 

USB controller PCI IDs are 8086:1c2d and 8086:1c26. I've already added the _DSM methods to both EHC1 and EHC2 with the correct "device-id"s and "AAPL,clock-id" 0x01 and 0x02 respectively. Sleep works properly, everything powers down and turns on again when the power button is pressed, but my USB 2.0 ports will not work after that. Interestingly the USB3.0 ports will work.

 

If you have a similar Thinkpad (T420, T520, W520) without this problem, please let me know so I can narrow down the differences. Thanks!

 

Hello.

I've tested sleep on my W520 and it fully works - USB2.0 and USB3.0 are both work properly after wakeup.

Link to comment
Share on other sites

Alright folks, I’ve fixed up most of my issues and now I have a machine that’s worthy of being a great hackintosh.

 

In the interest of giving back to the community and helping my fellow W520 owners, I will detail a few things I’ve done.

 

My machine is a 4270-CTO with the nVidia Quadro 2000M and 2760QM i7.

 

Gothic860 has done a lot of the groundwork, so I’ll just list my deviations.

 

1)Used latest iAtkos L2 installer, when installing, click on customize at the beginning and add drivers like ApplePS2Controller to have working keyboard and trackpad after the initial install (no need for external usb keyboard)

 

2) Was getting KP 40% of the time when booting into Lion. I’m now quite sure this is due to soundcard initialization at boot. I have not seen any random KPs at boot since I inserted the following into the HDEF device section (after _PRW is fine). I think the important bit is the pin configurations.

 

	
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x12)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x6E, 0x50, 0xF1, 0x14
			   		 },
						"layout-id", // This may be wrong, need more research
						Buffer (0x04)
						{
							0x6E, 0x50, 0x00, 0x00
						},
						"built-in",
 					   Buffer (One)
						{
							0x00
						},
						"subsystem-id",
						Buffer (0x04)
						{
							0x11, 0xC0, 0x00, 0x00
						},
						"subsystem-vendor-id",
						Buffer (0x04)
						{
							0xAA, 0x17, 0x00, 0x00
						},
						"model",
						Buffer (0x11)
						{
							"Conexant Cx20590"
						},
						"device-type",
						Buffer (0x12)
						{
							"Conexant HD Audio"
						},
						"hda-gfx",
						Buffer (0x0A)
	 				   {
							"onboard-2"
						},
						"PinConfigurations",
						Buffer (0x28)
						{

//Modified again based on linux codec dump

							/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
							/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
							/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
							/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
							/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

 

3) I am using VoodooHDA 2.7.3 and was only getting HDMI devices in the prefpanes. After adding the HDEF section above and setting Vectorize to true and VoodooHDAEnableVolumeChangeFix to true in the VoodooHDA Info.plist, I had the correct 4 devices (Speaker, Headphones, Mic on jack, Mic on laptop)

 

4) Using a MacbookPro8,2 smbios generated by Chameleon Wizard, as it’s probably a closer match to the W520 specs. (Add power settings to the correct section of AppleGraphicsPowerManagement.kext).

 

5) The Fan speed reading and battery information problems are a result of a change in Lion’s new AppleACPIPlatform.kext (version 1.4) where they adhere more strictly to byte access of the Embedded Controller fields. I think the reason why some people don’t have a problem with this is purely because they are using an older SnowLeo version of the kext (version 1.3.5). I have modified my DSDT to use byte access so I am able to get correct battery and fan readings in iStats using AppleSmartBatteryManager.kext with the new AppleACPIPlatform.kext. However, I had to revert to the old ACPI kext because of another problem (detailed below).

 

6) Also upgraded the fan ramp up because it was getting hotter than I preferred. Heat is the enemy of lifespan of components, and I would rather tolerate a bit of noise (not that it’s too bad anyway). According to the documentation, “disengaged mode” may not be good for fan longevity, so the only time I use it is when things are in panic meltdown. I also took advantage of all levels of fan control to have finer temperature gradation. Replace the TCPU method given by Gothic860.

 

					Method (TCPU, 0, NotSerialized)
					{
						Store (\_SB.PCI0.LPC.EC.TMP0, Local0)
						If (LLessEqual (Local0, 0x31)) // CPU temp is <50C =
		 			   {
						   Store (0x01, \_SB.PCI0.LPC.EC.HFSP) // Set FAN to lowest
						}
						ElseIf (LGreaterEqual (Local0, 0x55)) // CPU temp is >= 85C
						{
  							Store (0x40, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode Disengaged - Total Maximum
						}
						ElseIf (LGreaterEqual (Local0, 0x4B)) // CPU temp is >= 75C
						{
						   Store (0x07, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 7 - Maximum Speed
						}
						ElseIf (LGreaterEqual (Local0, 0x46)) // CPU temp is >= 70C
						{
   						Store (0x06, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 6
						}
						ElseIf (LGreaterEqual (Local0, 0x41)) // CPU temp is >= 65C
						{
						   Store (0x05, \_SB.PCI0.LPC.EC.HFSP) // Set Fan Mode 5 Medium speed
						}
						ElseIf (LGreaterEqual (Local0, 0x3C)) // CPU temp is >= 60C
						{
						   Store (0x04, \_SB.PCI0.LPC.EC.HFSP) // set mode 4 FAN
						}
						ElseIf (LGreaterEqual (Local0, 0x37)) // CPU temp is >= 55 C
						{
						   Store (0x03, \_SB.PCI0.LPC.EC.HFSP) // set mode 3 FAN
						}
						Else // between 50 and 54C
						{
						Store (0x02, \_SB.PCI0.LPC.EC.HFSP) // set mode 2 FAN Low speed
						}
						Return (Local0)
				   }

 

Also changed Thinkvantage button to only set fan to 7, not disengaged (replace Gothic860’s version):

 

		 Method (_Q19, 0, NotSerialized)
		 {
				 // Changed Thinkpad key to toggle max fan
				 Name (FANS, One)
				 Store (HFSP, FANS)
				 XOr (FANS, 0x07, Local0)
				 If (Local0)
				 {
						 LED (0xFF, 0x80)
						 Store (0x07, HFSP)
				 }
				 Else
				 {
						 LED (0xFF, 0x80)
						 Store (0x80, HFSP)
				 }
		 }

 

7) Bought a Dell DW1510 (BRCM 4322) and it works right out of the box (with the whitelist BIOS installed), no DSDT changes required. Dual band AGN and 300 Mbps connection (9MBps real world transfer @ 5Ghz). (Make sure it is has the BRCM4322 chip. The later model DW1520 may not work.)

 

8) Switching between Optimus (Intel HDA 3000) and nVidia works. The key is to realize that a few address fields in the DSDT will change when you switch from Discrete graphics to Optimus. Therefore you need to have two different versions of the DSDT, one for when Discrete graphics is set in the bios and one for when Optimus is set.

 

For example, these are some differences in the DSDT:

 

OperationRegion (MNVS, SystemMemory, 0xBAF9D018, 0x1000) // optimus
OperationRegion (MNVS, SystemMemory, 0xBF79D018, 0x1000) // discrete

OperationRegion (GNVS, SystemMemory, 0xBAF3FE18, 0x01A6) // optimus
OperationRegion (GNVS, SystemMemory, 0xBF73FE18, 0x01A6)  // discrete

 

Also the _DSM method under Device (VID) changes too.

 

So if you want to switch between the two, you need two DSDTs which preserve the differences (but are patched with all the other stuff). You need to retrieve the DSDT once under nVidia settings and once under Optimus (boot with GraphicsEnabler=Yes and no DSDT, or retrieve the DSDT under Windows). Then make all other changes to both and save a copy of each in /Extra. You can then load the correct one during boot at Chameleon by using the “DSDT=<dsdt filename>” option, leaving "dsdt.aml" as the one most often used.

 

When running with Optimus, both the Intel HDA 3000 and the nVidia 2000M are recognized, but only the Intel is used. There is currently no way for OSX to utilize Optimus (that I know of, let me know if I’m wrong), so this is purely for the sake of heat and saving battery life at the moment. Cinebench gives me about 11 frames per second with HDA 3000 and 37 frames per second with nVidia (install Cuda drivers). For some reason my performance figures are a tiny bit faster under Win7, in fact the surprising thing is, Optimus in Win7 was fastest, beating out pure discrete mode… :blink:

 

9) P-States and Turbo Boost was not working for me following Gothic860’s guide. Basically all I had to do was DISABLE P-State and C-State generation in Chameleon and set DropSSDT to No. This meant that the bios SSDT was used, which contains all the P-State code (_PSS and all that stuff).

 

You can tell by using MSRDumper.

I was only getting 8 and 24 before, but now I’m getting:

MSRDumper PStatesReached: 8 16 22 23 27 28 29 30 31 32

(I think the numbers are the multipliers that the CPU is using. Base freq is 100, so 8 means 800Mhz, up to 3.2Ghz turbo boost. Max turbo is 3.5Ghz on my CPU I think but it depends on how hot the CPU already is)

 

Also Cinebench CPU figures have increased to 5.5 from 4.7. (Again tiny bit faster at 5.6 in Win7)

 

10) If you are like me, you hate using the trackpad and are constantly annoyed at how files will get moved accidentally etc. because of a stray thumb brushing against the trackpad when using the trackpoint. :hammer: Well, disable the trackpad! I set the trackpad to disabled in the bios, but the trackpoint will then not work. To get it working again, edit /System/Library/Extensions/ApplePS2Controller.kext/Contents/Plugins/ApplePS2Trackpad.kext/Contents/Info.plist and remove all other IOKitPersonalities except for Synaptics TouchPad. Or you can just remove the ApplePS2Trackpad.kext plugin altogether. The trackpoint will be recognized as a PS2 mouse. Only problem is, you lose the scrolling function of the middle button, but I never use that anyway.

 

Problems:

1) I’m still getting the problem where USB 2.0 ports don’t work after waking up from sleep, when using Lion’s AppleACPIPlatform.kext v1.4. (They just don't power up, whereas the USB 3.0 ports do) That is why I’m still using the SnowLeo 1.3.5 version despite the fact that fan speed and battery information are solved. I have tried changing a few more fields to 8-bit access in an attempt to solve it without success. Some of those fields are huge (256 bits +) so I’m not sure how to go about it, and besides, I don’t think they pertain to USB waking. If any Thinkpad *520 owners have USB ports that work after waking while using AppleACPIPlatform 1.4, please talk to me.

 

2) I was also getting a problem where the USB 3.0 ports would fail after a sustained file transfer. I have upgraded to PXHCD 1.0.8 recently, will see if that cures it.

 

3) The power source shows as "Battery" when I have no battery plugged in. (It's fine when there is one). Not really a big deal, it just means my power savings settings are wrong. I think this is probably a kext problem rather than a DSDT one, after all Macs don't have removable batteries... :wink2:

 

 

 

I've enclosed my dsdt.aml (Optimus version) for reference, but I highly recommend you extract your own and make modifications, in case the field addresses are wrong. As usual, I give no warranties, express or implied. :king:

 

No other problems that I know of, but I haven’t tested Firewire, card readers, and external displays.

 

** Latest AML file as of Jan 31 2012 with linux codec derived pin configuration (see post below)

w520_dsdt_optimus.aml.zip

  • Like 1
Link to comment
Share on other sites

Hello! I'm using T510i and I used a lot of dsdt info from gothic guide to fix my dsdt and one thing from his versions seems to work like in your problem 1. Powered usb port doesn't wake up sometimes and bluetooth lost until I boot live cd ubuntu

 

So I figured out a bit and changed my EHCI1/2 sections with different code. After that my powered usb port wakes all time and bluetooth module wakes too, but sometimes to wake BT I need to sleep it again for a few seconds and wake. And here it is bluetooth is on again)

 

 

See my dsdt in theme [GUIDE] OS X Lion on ThinkPad T510i all working OK! 2...

 

 

Problems:

1) I’m still getting the problem where USB 2.0 ports don’t work after waking up from sleep, when using Lion’s AppleACPIPlatform.kext v1.4. (They just don't power up, whereas the USB 3.0 ports do) That is why I’m still using the SnowLeo 1.3.5 version despite the fact that fan speed and battery information are solved. I have tried changing a few more fields to 8-bit access in an attempt to solve it without success. Some of those fields are huge (256 bits +) so I’m not sure how to go about it, and besides, I don’t think they pertain to USB waking. If any Thinkpad *520 owners have USB ports that work after waking while using AppleACPIPlatform 1.4, please talk to me.

Link to comment
Share on other sites

So I figured out a bit and changed my EHCI1/2 sections with different code. After that my powered usb port wakes all time and bluetooth module wakes too, but sometimes to wake BT I need to sleep it again for a few seconds and wake. And here it is bluetooth is on again)

 

See my dsdt in theme [GUIDE] OS X Lion on ThinkPad T510i all working OK! 2...

 

I tried out your HDEF changes and your AppleHDA.kext but unfortunately it would not load at all.

 

Jan 29 04:51:19 calvin kernel[0]: vendor:device: 0x8086:0x1502.
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "false == codecFound" failed in AppleHDADriver at line 1449 goto handler
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "0 == pathMap_aDriverInstance" failed in AppleHDADriver at line 2037 goto Exit
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "0 != createAudioEngines ( fPathMap_aDriverInstance )" failed in AppleHDADriver at line 207 goto Exit
Jan 29 04:51:20 calvin kernel[0]: Sound assertion "false == me->completeStart ()" failed in AppleHDADriver at line 996 goto Exit

 

I think I have a slightly different audio codec than you, mine is a 14F1:506E Conexant Cx20590.

 

On the plus side, I have managed to figure out the exact "PinConfiguration" for my Conexant audio. You can follow the steps at http://www.projectos...p?showtopic=465 to get it via windows. For reference mine is:

 

**Edit: I have subsequently found a different set of PinConfigurations based on a linux dump, see subsequent post.

 

 

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x40, 0x10, 0x21, 0x04, 0x50, 0x90, 0xA1, 0x61,
							/* 0008 */	0x60, 0x10, 0xa1, 0x04, 0x80, 0x40, 0x21, 0x61,
							/* 0010 */	0xf0, 0x01, 0xf0, 0x40, 0xf0, 0x01, 0xf0, 0x40,
							/* 0018 */	0x10, 0x01, 0x17, 0x90, 0xF0, 0x01, 0xf0, 0x40,
							/* 0020 */	0xF0, 0x01, 0xf0, 0x40, 0x70, 0x01, 0xa6, 0x90							  
						}

 

The other USB waking problem is also not solved. Based on your DSDT, I suspect that you are actually running the older version of the AppleACPIPlatform.kext (the one that was included with VoodooHDA; even though you have now substituted VoodooHDA with AppleHDA you probably did not revert AppleACPIPlatform.) You can check by doing "kextstat | grep ACPIPlatform", if it is version 1.3.5 it's the old one. 1.3.5 works for me also, the problem is getting it to work with Lion's 1.4 version.

Link to comment
Share on other sites

You have to patch you apple hda with following command

 

sudo perl -pi -e 's|\x84\x19\xd4\x11|\x6E\x50\xf1\x14|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

 

And yes I use older ACPI Platform to get working battery detection

 

Last - your pin configuration from windows may not be working solution at all, mine config from win 7 wasn't right and I changed it a lot to get speakers and mic working

 

If you have linux codec dumps or voodoohda dumps we can try to make applehda config for cx20590 together

 

ps. T510/510i has cx20585 codec

Link to comment
Share on other sites

You have to patch you apple hda with following command

 

sudo perl -pi -e 's|\x84\x19\xd4\x11|\x6E\x50\xf1\x14|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

 

And yes I use older ACPI Platform to get working battery detection

 

Last - your pin configuration from windows may not be working solution at all, mine config from win 7 wasn't right and I changed it a lot to get speakers and mic working

 

If you have linux codec dumps or voodoohda dumps we can try to make applehda config for cx20590 together

 

ps. T510/510i has cx20585 codec

 

I noticed that the AppleHDA.kext I got from you was already patched to your 14F1:5069 codec, so I searched and replaced that instead. However, i STILL get the same "Sound assertion "false == codecFound" failed in AppleHDADriver" message. In fact I was getting corruption on the screen and a subsequent KP soon after, so that was bad.

 

However I have managed to get a linux codec dump and was able to use the verbit script to produce another pinConfiguration. It doesn't seem to affect VoodooHDA though, so maybe VoodooHDA doesn't use it.

 

My new PinConfiguration:

 

// W520 Linux codec dump derived PinConfiguration for Cx20590						  
							/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
							/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
							/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
							/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
							/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

 

As for battery detection, I have made changes to my DSDT to use 8-bit access for fan speed and battery information, and it will work properly with AppleSmartBatteryManager.kext and version 1.4 of AppleACPIPlatform.kext (readings show up in iStat menus). However, like I said before, my USB does not work after sleep with that ACPIPlatform, which is why I don't use it yet.

 

If you want to see the changes for 8-bit access, just search for all parts of my AML that are using the B1B2, B1B4 and L1L4 functions. I just followed instructions from Zprood in http://www.insanelym...howtopic=272459.

W520_codec_dump.txt.zip

Verbit_output.zip

Link to comment
Share on other sites

Thanks for dumps, I'll try to check it as soon as possible to make cx20590 working with applehda

 

Battery part is also interesting, check it too and give a result

 

I noticed that the AppleHDA.kext I got from you was already patched to your 14F1:5069 codec, so I searched and replaced that instead. However, i STILL get the same "Sound assertion "false == codecFound" failed in AppleHDADriver" message. In fact I was getting corruption on the screen and a subsequent KP soon after, so that was bad.

 

However I have managed to get a linux codec dump and was able to use the verbit script to produce another pinConfiguration. It doesn't seem to affect VoodooHDA though, so maybe VoodooHDA doesn't use it.

 

My new PinConfiguration:

 

// W520 Linux codec dump derived PinConfiguration for Cx20590						  
							/* 0000 */	0x40, 0x10, 0x21, 0x00, 0x50, 0x90, 0xA1, 0x61,
							/* 0008 */	0x60, 0x10, 0xa1, 0x00, 0x10, 0x40, 0x21, 0x61,
							/* 0010 */	0xf0, 0x00, 0xf0, 0x40, 0x20, 0x00, 0xf0, 0x40,
							/* 0018 */	0x30, 0x00, 0x17, 0x90, 0x80, 0x00, 0xf0, 0x40,
							/* 0020 */	0x90, 0x00, 0xf0, 0x40, 0x70, 0x00, 0xa6, 0x90,

 

As for battery detection, I have made changes to my DSDT to use 8-bit access for fan speed and battery information, and it will work properly with AppleSmartBatteryManager.kext and version 1.4 of AppleACPIPlatform.kext (readings show up in iStat menus). However, like I said before, my USB does not work after sleep with that ACPIPlatform, which is why I don't use it yet.

 

If you want to see the changes for 8-bit access, just search for all parts of my AML that are using the B1B2, B1B4 and L1L4 functions. I just followed instructions from Zprood in http://www.insanelym...howtopic=272459.

Link to comment
Share on other sites

Ok I've patched applehda for you cx20590

 

to get it working install next, removing voodoo is necessary

 

AppleHDA.kext-cx20590.zip

 

and modify your HDEF section to correct one

 


Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0E)
{
"AAPL,slot-name",
Buffer (0x09)
{
			"Built in"
},
"device-id",
Buffer (0x04)
{
			0x6e, 0x50, 0xF1, 0x14
},
"layout-id",
Buffer (0x04)
{
			0x0C, 0x00, 0x00, 0x00
},
"model",
Buffer (0x1A)
{
			"HD Audio Conexant Cx20590"
},
"name",
Buffer (0x11)
{
			"Conexant Cx20590"
},
"device_type",
Buffer (0x11)
{
			"Audio Controller"
},
"PinConfigurations",
Buffer (One)
{
			0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Link to comment
Share on other sites

Hey Josh, it works! The audio will also automatically switch to headphones when plugged in. Some minor problems are that the internal microphone is always on and very sensitive and does not switch to the side jack even when i plug in a microphone headset.

 

Can I ask what changes you did to make it work or a link to instructions? Thanks! I also didn't put in my pin configuration this time, I just left it zero like in your post. I wonder if that made a difference.

Link to comment
Share on other sites

Hello!

 

Can you help me to fix dsdt for appleacpi 1.4.0? I add some global code to the end of file but don't know what to do next

 

dsdt-v1.48-raw-noerrors-01 10.dsl.zip

 

See if this works. I have left in original code commented out so you can see what changes I have made.

This DSDT should allow you to see battery and fan speed in iStats Menu when you use AppleACPIPlatform 1.4.0 but I'd be interested to see if you get the same problem with USB not waking up after sleep. Please let me know.

dsdt-v1.48-converted_8_bit_access.dsl.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...