Jump to content
vit9696

AppleALC — dynamic AppleHDA patching

4,398 posts in this topic

Recommended Posts

Advertisement
12 hours ago, insanelyDeepak said:

thanks alot

it will be great to make Platforms.xml in the similar way from dump, not from VoodooHDA

is it possible?

Edited by Rodion2010

Share this post


Link to post
Share on other sites
1 hour ago, Rodion2010 said:

it will be great to make Platforms.xml in the similar way from dump, not from VoodooHDA

is it possible?

I've built a working version of Clover that will create a binary dump of the audio config by pressing F4 at the Clover menu. This data can then be parsed directly into Pin Configurator.

 

I'm currently looking at getting Pin Configurator to create a Platforms.xml like GetDumpXML based on the Clover dump.

Share this post


Link to post
Share on other sites
22 minutes ago, headkaze said:

I've built a working version of Clover that will create a binary dump of the audio config by pressing F4 at the Clover menu. This data can then be parsed directly into Pin Configurator.

I did it manually

fs0:
cd \EFI\Clover\Tools
load AudioDxe-64.efi //if not loaded by default
HdaCodecDump.efi > dump.txt

btw there was an error in dumper https://github.com/Goldfish64/AudioPkg/issues/10

fixed

and here is the dump

dump.txt.zip

 

PS F4 is for DSDT

Edited by Rodion2010

Share this post


Link to post
Share on other sites
18 minutes ago, headkaze said:

I've built a working version of Clover that will create a binary dump of the audio config by pressing F4 at the Clover menu.

 

F4 is occupied.

Share this post


Link to post
Share on other sites
11 hours ago, Rodion2010 said:

it will be great to make Platforms.xml in the similar way from dump, not from VoodooHDA

is it possible?

making Platforms from voodooDump is pretty easy , but from codec dump it's lengthy work e.g 

Pin Complex -> Audio Mixer -> Audio Output

for Input you have to do reverse  

but if you have more than 1 audio mixer nodes for particular node id could be issue most of IDT Codecs have this and they require all audio/mixer to enable audio 

 

 

if you implement how voodoo connects all nodes to each other then it could be better 

 

Share this post


Link to post
Share on other sites

I'd installed Mac OS Mojave on my Lenovo L560 everything works fine but the Audio i came across forums on internet to chnage the configuration via clover and tried the layout which are detected 11 ,28, 29 and placed the Applealc.kext and Lilu.kext in kext/ other folder but with no luck
please i need your help

debug_9148.zip

Share this post


Link to post
Share on other sites
7 hours ago, insanelyDeepak said:

making Platforms from voodooDump is pretty easy , but from codec dump it's lengthy work e.g 


Pin Complex -> Audio Mixer -> Audio Output

for Input you have to do reverse  

but if you have more than 1 audio mixer nodes for particular node id could be issue most of IDT Codecs have this and they require all audio/mixer to enable audio 

 

 

if you implement how voodoo connects all nodes to each other then it could be better 

 

i think i understand how to build outputs

 

if node is "PinConplex" and type is "Output"

read the default (first?) connection from connection list

it node is "Audio Output" then ready

else read next connected node

 

inputs are more complicated but similar

 

I have "more than one" too

Node 17 "Headphone Playback Switch" Node 34 [Audio Mixer] - Node 55 [Audio Selector] - Node 3 [Audio Output]

Node 8 [Audio Input] Node 12 [Audio Selector] - Node *60 [Audio Selector] - Node 23 [Jack] Mic at Ext Rear

 

Edited by Rodion2010

Share this post


Link to post
Share on other sites

dump

           nid: 17
           Name: pin: Headphones (Green Front)

     Widget cap: 0x0040018d
        ...
    connections: 1 enabled 1
          |
          + <- nid=34 [audio mixer]

 


nid: 34
           Name: audio mixer

     Widget cap: 0x00200103
    ...
    connections: 2 enabled 2
          |
          + <- nid=55 [audio selector]
          + <- nid=33 [audio selector]

 

nid: 55
           Name: audio selector

     Widget cap: 0x00300101
     ...
    connections: 3 enabled 1
          |
          + <- nid=3 [audio output] (selected)
          + [DISABLED] <- nid=4 [audio output]
          + [DISABLED] <- nid=6 [audio output]
 

nid: 3
           Name: audio output

Edited by Rodion2010

Share this post


Link to post
Share on other sites

and for input

 

          nid: 8
           Name: audio input

     Widget cap: 0x00100501
     ...
    connections: 1 enabled 1
          |
          + <- nid=12 [audio selector]

 

 

          nid: 12
           Name: audio selector
   
 Widget cap: 0x0030010d
     ...
    connections: 10 enabled 5
          |
          + [DISABLED] <- nid=56 [audio selector] [DISABLED]
          + <- nid=57 [audio selector] (selected)
          + <- nid=58 [audio selector]
          + [DISABLED] <- nid=59 [audio selector] [DISABLED]
          + <- nid=60 [audio selector]
          + <- nid=24 [pin: CD (ATAPI)]
          + [DISABLED] <- nid=36 [pin: Line-out (Orange Rear)]
          + [DISABLED] <- nid=37 [pin: Line-out (Grey Rear)]
          + [DISABLED] <- nid=61 [audio selector] [DISABLED]
          + <- nid=32 [audio mixer]

 

nid: 57
           Name: audio selector
     
Widget cap: 0x0030010d
   ...
    connections: 1 enabled 1
          |
          + <- nid=20 [pin: Microphone (Pink Front)]

 


 nid: 20
           Name: pin: Microphone (Pink Front)

     
 

Edited by Rodion2010

Share this post


Link to post
Share on other sites
On 2/16/2019 at 4:56 PM, Rodion2010 said:

i think i understand how to build outputs

 

if node is "PinConplex" and type is "Output"

read the default (first?) connection from connection list

it node is "Audio Output" then ready

else read next connected node

 

inputs are more complicated but similar

 

I have "more than one" too

Node 17 "Headphone Playback Switch" Node 34 [Audio Mixer] - Node 55 [Audio Selector] - Node 3 [Audio Output]

Node 8 [Audio Input] Node 12 [Audio Selector] - Node *60 [Audio Selector] - Node 23 [Jack] Mic at Ext Rear

 

only one Audio Mixer is enough don't need audio selector , so it will be 17 ->34 -> 3 , if you have multiple audio mixer for one nodes then you may require to use it too

 

if you read voodoodump it's pretty easy to do so like below 

Headphone  33 -> 3

+-------------------------------+
| DUMPING Playback/Record Paths |
+-------------------------------+

Playback:

    nid=33 [pin: Headphones (Black Front)]
      |
      + <- nid=3 [audio output] [src: pcm] bindSeq=00000001

 

Speakers : 20 -> 2

+-------------------------------+
| DUMPING Playback/Record Paths |
+-------------------------------+

Playback:

    nid=20 [pin: Speaker (Analog)]
      |
      + <- nid=2 [audio output] [src: pcm] bindSeq=00000001

 

Share this post


Link to post
Share on other sites
9 minutes ago, insanelyDeepak said:

only one Audio Mixer is enough don't need audio selector , so it will be 17 ->34 -> 3 , if you have multiple audio mixer for one nodes then you may require to use it too

 

 

it depends on Codec and Connection List of each node

Headphone - [Audio Mixer] -  [Audio Selector] -  [Audio Output]

Headphone - [Audio Mixer] -  [Audio Output]

Headphone -  [Audio Output]

 

there is no one answer what is needed and what is not needed

Look at          Name: pin: Headphones (Green Front)
     Widget cap: 0x0040018d
        ...
    connections: 1 enabled 1
          |
          + <- nid=34 [audio mixer]

 

and Voodoo shows exactly the same

Playback:

    nid=17 [pin: Headphones (Green Front)]
      |
      + <- nid=34 [audio mixer] bindSeq=00000001
             |
             + <- nid=55 [audio selector] [src: pcm] bindSeq=00000001

                    |
                    + <- nid=3 [audio output] [src: pcm] bindSeq=00000001

 

 

 

 

 

Share this post


Link to post
Share on other sites
11 minutes ago, insanelyDeepak said:

only one Audio Mixer is enough don't need audio selector , so it will be 17 ->34 -> 3 , if you have multiple audio mixer for one nodes then you may require to use it too

 

if you read voodoodump it's pretty easy to do so like below

Headphone 33 -> 3


+-------------------------------+
| DUMPING Playback/Record Paths |
+-------------------------------+

Playback:

    nid=33 [pin: Headphones (Black Front)]
      |
      + <- nid=3 [audio output] [src: pcm] bindSeq=00000001

 

Speakers : 20 -> 2


+-------------------------------+
| DUMPING Playback/Record Paths |
+-------------------------------+

Playback:

    nid=20 [pin: Speaker (Analog)]
      |
      + <- nid=2 [audio output] [src: pcm] bindSeq=00000001

 

Need Connection Select Control ( 701h)  to pinpoint the contact. This is not in HdaCodecDump.efi.

Share this post


Link to post
Share on other sites

for IDT codec

nid=11 [pin: Headphones (Green Front)]
      |
      + <- nid=19 [audio output] [src: pcm] bindSeq=00008001
 

nid: 11
           Name: pin: Headphones (Green Front)
     Widget cap: 0x00400581
                 PWR UNSOL STEREO
    Association: 0 (0x00008000)
        Pin cap: 0x0001001c
                 PDC HP OUT EAPD
     Pin config: 0x0221401f
    Pin control: 0x000000c0 HP OUT
           EAPD: 0x00000002
    connections: 3 enabled 1
          |
          + <- nid=19 [audio output] (selected)

 

HP is really connected to DAC directly
 

Share this post


Link to post
Share on other sites
9 minutes ago, tyufhl said:

Need Connection Select Control ( 701h)  to pinpoint the contact. This is not in HdaCodecDump.efi.

it is open source

we can add it if needed

or ask the author

 

but

Node 0x11 [Pin Complex] wcaps 0x40018D: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80 0x80]
  Pincap 0x0000373F: IN OUT HP Trigger Detect
  Pin Default 0x02214030: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Green
    DefAssociation = 0x3, Sequence = 0x0
Pin-ctls: 0x02:
  Connection: 1
     0x22

 

and it never will connected to node 0x3 directly, nothing to select here

 

you may select if multiple connections are available

Node 0x36 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 3
     0x03 0x04 0x06

 

 

Edited by Rodion2010

Share this post


Link to post
Share on other sites
4 minutes ago, Rodion2010 said:

it is open source

we can add it if needed

or ask the author

 

but

Node 0x11 [Pin Complex] wcaps 0x40018D: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x0000373F: IN OUT HP Trigger Detect
Pin Default 0x02214030: [Jack] HP Out at Ext Front
Conn = 1/8, Color = Green
DefAssociation = 0x3, Sequence = 0x0
Pin-ctls: 0x02:
  Connection: 1
0x22

 

and it never will connected to node 0x3 directly, nothing to select here

 

you may select if multiple connections are available

Node 0x36 [Audio Selector] wcaps 0x300101: Stereo
Connection: 3
0x03 0x04 0x06

 

 

Родион я тебе говорю что надо дампить верб 701 для точного определения контакта, когда этих контактов несколько.

Share this post


Link to post
Share on other sites
3 minutes ago, tyufhl said:

Родион я тебе говорю что надо дампить верб 701 для точного определения контакта, когда этих контактов несколько.

 

а я о чем? :)

nothing to select here

if multiple connections are available

 

maybe 

F01h ?

get connection select?

701 is set connection

Edited by Rodion2010

Share this post


Link to post
Share on other sites
45 minutes ago, tyufhl said:

Родион я тебе говорю что надо дампить верб 701 для точного определения контакта, когда этих контактов несколько.

another way is to try all possible connection and find the first matching PinComplex Out ...DAC, then the same for ADC ... PinComplex In

 

and ignore all Input monitoring etc

Edited by Rodion2010

Share this post


Link to post
Share on other sites
2 hours ago, Rodion2010 said:

 

а я о чем? :)

nothing to select here

if multiple connections are available

 

maybe 

F01h ?

get connection select?

701 is set connection

701 will not work. That's my fault.

Share this post


Link to post
Share on other sites
3 minutes ago, tyufhl said:

701 will not work. That's my fault.

is it possible to try all NIDs from 0 to ConnectinlListLength-1 until it will come to Audio Output, for example? 

 

I look at several dumps

for Output the 1st connection in the list is OK

for Input - no simple rule ((

Edited by Rodion2010

Share this post


Link to post
Share on other sites
On 2/15/2019 at 11:00 AM, tyufhl said:

Check. Layout 2.

AppleALC.kext.zip

 

Quote

Big Thanks bro :) I will try it, but this is intended for IDT Audio Codec, right??? 

 

Dear bro :( you didn't answer me :( Your file for which codec is intended??? I know the Creative Sound Blaster would not work. But is for HDMI (GTX 1060) or IDT onboard Codec???

 

Another question is: Is it necessary in Clover Configurator, go to ACPI and install his DSDT patch: Rename HDAS to HDEF/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×