Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,390 posts in this topic

Recommended Posts

1 hour ago, polyzargone said:

@Andres ZeroCross

 

Hello,

 

My specs:

 

Acer Aspire V3 772G

Realtek ALC282

Layouts tested : 3, 4, 13, 27, 28, 29, 76, 86, 127

Currently, 28 gives best results but not perfect

 

I don't know for sure but since I'm using 10.14.4 beta, I'm loosing audio after sleep. Everything worked fine before and I never had to use CodecCommander nor SSDT. So I tried using CodecCommander in L/E w/o success. I suspect something changed but I can't tell if it's the OS or AppleALC ALC282 resources.

 

Anyway, mic is not working well, there's noise when it's used. I don't use it often and that's why I didn't paid attention to it until now and this annoying sleep issue. Maybe there's something wrong…

 

Could you please have a look on this?

 

Thanks

 

Files

there is no such patch in your resources 73352071_2019-02-152_04_11.thumb.png.35e9e7f2afa84cc25659ace5d7cebb12.png

check kext. 

AppleALC.kext.zip

  • Like 1
Link to comment
Share on other sites

1 hour ago, tyufhl said:

Realtek ALC282

Layouts tested : 3, 4, 13, 27, 28, 29, 76, 86, 127

Currently, 28 gives best results but not perfect

 

I don't know for sure but since I'm using 10.14.4 beta, I'm loosing audio after sleep. Everything worked fine before and I never had to use CodecCommander nor SSDT.

 

Fixed in master.

  • Like 1
Link to comment
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.

  • Like 3
Link to comment
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
Link to comment
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 

 

Link to comment
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
Link to comment
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
Link to comment
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
Link to comment
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

 

Link to comment
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

 

 

 

 

 

Link to comment
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.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...