Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,371 posts in this topic

Recommended Posts

Was a spot on. What I mean is that a mobo like mine have sub-ven:103c:1818. Each model with this mobo use the same codec id (287143648) with same node and same pinconfig. .....

Also because if a patch work for one pc, is not meant that will work for all.  often is surprising someone have a partial working solution with patches created for someone else. You do not believe it is right?

 

it is a very good idea for laptops, there are a lot of ALC269 with different input configuration (mic input can be 18, 24, 25 nodes etc) http://www.hardwaresecrets.com/datasheets/alc269.pdf

for desktop ALC888 all configs I have seen are the same (but it is possible that some rare MBs have some differences)

Link to comment
Share on other sites

not sure can be always the same

 

and I am not sure, I have seen maybe 10 motherboards not 100, but they were similar with the same codec

It is much more important for Laptops. But if this possibility will be added to project, it can be used with any platform type

  • Like 1
Link to comment
Share on other sites

Okay, so this patch partially works on ALC668 (Asus Q550LF, layout-id 3).

 

The devices are recognized and I get control over volume, but nothing is actually played anywhere (at least over speakers, haven't tested headphones/HDMI yet). However, the microphone does work.

 

Any ideas?

Link to comment
Share on other sites

Okay, so this patch partially works on ALC668 (Asus Q550LF, layout-id 3).

 

The devices are recognized and I get control over volume, but nothing is actually played anywhere (at least over speakers, haven't tested headphones/HDMI yet). However, the microphone does work.

 

Any ideas?

 

Try layout 20, 27 or 28. Custom versions for samsung and dell laptops. Please report working/not working.

Link to comment
Share on other sites

Controllers.plist could add support for HD4000 ig-platform-id 0x0166004?

 

At first, I want to do it myself, but i don't know what means about

<key>Platform</key> <integer>23461891</integer>

And I don't find a way to choice the number for my laptop. the following line was used in my Clover config.plist for patch AppleIntelFramebufferCapri

<dict> <key>Comment</key> <string>HDMI-video, 64MB BIOS, HD4000 0x01660004 #1 of 2</string> <key>Disabled</key> <false/> <key>Name</key> <string>AppleIntelFramebufferCapri</string> <key>Find</key> <data>BABmAQEDAQEAAAAC</data> <key>Replace</key> <data>BABmAQECBAIAAAAE</data> </dict> <dict> <key>Comment</key> <string>HDMI-video, 64MB BIOS, HD4000 0x01660004 #2 of 2</string> <key>Disabled</key> <false/> <key>Name</key> <string>AppleIntelFramebufferCapri</string> <key>Find</key> <data>MAIAAAAAAAABAAAAQAAAAAAAAAABAAAAQAAAAAAAAAABAAAAQAAAAAAAAAAAAAAA</data> <key>Replace</key> <data>MAIAAAIFAAAABAAABwQAAAMEAAAABAAAgQAAAAQGAAAABAAAgQAAAAAAAAAAAgAR</data> </dict>

Could add it to Controllers.plist?

Link to comment
Share on other sites

--+
MuteGPIO              | x       | x       | x       |
sleepGPIO             | -       | x       | -       |
DfetGPIO              | -       | -       | x       |
EarlyAmpMuteDelay     | x       | x       | -       |

.
.
.

I am studying Your resources )))...the first strange thing ...In the Layout.xml we use 

"Headphone"
"Mic"
"LineIn"
"LineOut"
"IntSpeaker"
and there are these words in resources
but
"SPDIF_Out"
"SPDIF_In"
are written as 
"SPDIFOut"
"SPDIFIn"

in the Layout file

 

more from Apple's layouts

 

<integer>1088421888</integer> <!—   +7.0dB 0x40E00000 —>

<integer>4294311936</integer> <!-- = 10.0 dB 0xFFF60000 —>

<integer>4293787648</integer> <!-- = 18.0 dB 0xFFEE0000 -->

<integer>4293722112</integer> <!-- = 19.0 dB 0xFFED0000 —>

<integer>4293689344</integer> <!-- = 19.5 dB 0xFFEC8000-->

<integer>4292870144</integer> <!-- = 32.0 dB 0xFFE00000 -->

how do they calculate this?

Link to comment
Share on other sites

My interest in AppleHDA began late last year and was ended up a month later brother :( you should ask to expert one, Im sorry. That was just an example, you may use MachOView / Hopper to discover more including what @vit9696 mentioned before. "SPDIF_Out" could be just variable / label on their source refer to real "SPDIFOut" prop, I dont know.

Link to comment
Share on other sites

My interest in AppleHDA began late last year and was ended up a month later brother

Thanks for Yor answer

its not a problem, maybe someone else can explain these values more exactly ))

i quote Your message because You were the 1st who answered...

more values:

"AmpPostDelay" -???

"AmpPreDelay" -???
and MuteGPIO = 0,1,2,3 ???
I know that MuteGPIO 0x50010018 is used to supply 0.5 of reference voltage for some types of microphones at pin 0x18, but what is 0 1 2 3 for Headphones and Speakers?
Link to comment
Share on other sites

Undoing the changes i made in controllers.plist, requires me to delete it also from kern_resources.cpp?

if i add something in controllers.plist, It automatically adds it to kern_resources.cpp after compilation, but it doesnt remove itself if i remove it from controllers.plist.

Link to comment
Share on other sites

Undoing the changes i made in controllers.plist, requires to delete it also from kern_resources.cpp?

when i add something in controllers.plist, It automatically adds it to kern_resources.cpp after compilation, but it doesnt remove itself when removing it from controllers.plist.

 

Just rebuild project after undoing changes. 

Link to comment
Share on other sites

im trying to change the hd4600 hdmi part of controllers.plist. Most of the dsdt fakes it with supported device id available in appllehdacontroller. While appplealc does the opposite. It patches applehdacontroller to match the unsupported id of hd4600, which causes conflict to my setup.

 

Thanks!

Link to comment
Share on other sites

It is.

controllers.plist, starts at line 36 under hd4600 controller. patching applehdacontroller's 0a0c to match hd4600's 0c0c unsupported id.

 

sorry, i cant copy/paste. Im on phone.

 

Im having black screen if i dont remove that n my hd4600 HDMI

 

Update: Correction... No sound if i dont remove that line.

Edited by luxinhaus
Link to comment
Share on other sites

if you dont fake it in clover or dsdt and leave applealc to its current state, no sound.

i must fake it to reverse what applealc has done to have sound.

 

Update: Also, it disables my onboard too if the current patch is present.

I now have sound after removing the said patch.

 

Have it verified first before you commit.

Edited by luxinhaus
Link to comment
Share on other sites

Did anyone here actually buy a Skylake laptop and manage to dump its audio codec in Linux successfully ? I was asked to support the Probook 440 G3, and I can't seem to dump its audio codec ( no output from Mirone's terminal command, can't find anything related to audio in Linux e.g Ubuntu and Parted Magic ). It is a new Conexant codec btw

Link to comment
Share on other sites

Did anyone here actually buy a Skylake laptop and manage to dump its audio codec in Linux successfully ? I was asked to support the Probook 440 G3, and I can't seem to dump its audio codec ( no output from Mirone's terminal command, can't find anything related to audio in Linux e.g Ubuntu and Parted Magic ). It is a new Conexant codec btw

What is the error generated when trying to extract the codec_dump?
Using Ubuntu 15.10, try replacing.
  • Like 1
Link to comment
Share on other sites

 

What is the error generated when trying to extract the codec_dump?
Using Ubuntu 15.10, try replacing.

 

I don't have the machine with me right now so can't say much, but DeviceID is 50F2 or something like that ( completely new, none of us have a patch yet ). No errors whatsoever, just nothing were found ( as in Linux doesn't find the audio codec )

 

Edit: Yup, that's the codec I want to find. I wonder why RM was able to dump it ?

Link to comment
Share on other sites

×
×
  • Create New...