New snd_hda driver came in.

Alexander Motin mav at
Sun Sep 28 09:12:49 UTC 2008

Ian FREISLICH wrote:
> Alexander Motin wrote:
>> Ian FREISLICH wrote:
>>> I just noticed that my speakers still play (very softly) when my
>>> headphone jack is inserted.
>> May be your codec has no muter on speaker pin and driver uses it's 
>> volume control instead.
> It used to work.

As I can see, Speaker pin has neither muter nor volume control. In such 
case driver usually tries to disable pin OUT control to silent it. 
Previous driver does it same way, because of quirks. New driver should 
do it automatically, but it doesn't because of broken codec 
configuration (see below).

Did I understand right that on headphone connection speaker volume is 
decreasing? May be hardware itself just disables power amplifier on jack 
connection, but it does not disconnects it completely, neither the 
driver does.

>>> Also, when playing back, the optical port is activated.
>> Is it good or bad? :) I have no optical ports, but my copper one seems 
>> to be enabled only when data stream present there. At least by receiver 
>> displays so.
> Neither good nor bad.  Also, the built in mic has never worked, but
> it looks promising from this boot message.

Your BIOS writes completely broken configuration into the codec. You 
should update it or use device hints to fix the situation.

>>> My hardware is a MacBook Pro.  Let me know what to do to extract
>>> the information you need to debug this.
>> Verbose kernel boot messages would be good.
> hdac0: 3 associations found:
> hdac0: Association 0 (1) in:
> hdac0:  Pin nid=11 seq=2

mic alone, no problem, let it be.

> hdac0: Association 1 (2) out:
> hdac0:  Pin nid=12 seq=1

Speaker, fine.

> hdac0:  Pin nid=10 seq=2

Line-out. It pretend to work as rear channel pair. If it should work as 
headphones with speaker auto mute it should have "Speaker" device type 
and seq=15.

> hdac0:  Pin nid=16 seq=3

SPDIF-out. It pretend to work as center/sub channels. That's why it 
activates when you playing audio. I would recommend you do move it to 
separate association to use it properly.

> hdac0: Association 2 (3) in:
> hdac0:  Pin nid=15 seq=1

Line-in. Strange that it is placed to the same association as SPDIF-in. 
UAA specification strictly denies it! I would move it to as=1, it will 
fix both.

> hdac0:  Pin nid=17 seq=2

SPDIF-in. Driver unable to use it now as it can;t be routed to the same 
DAC with Line-in.

> hdac0: Tracing association 0 (1)
> hdac0:  Pin 11 traced to ADC 6
> hdac0: Association 0 (1) trace succeded
> hdac0: Tracing association 1 (2)
> hdac0:  Pin 12 traced to DAC 3
> hdac0:  Pin 10 traced to DAC 2
> hdac0:  Pin 16 traced to DAC 8
> hdac0: Association 1 (2) trace succeded
> hdac0: Tracing association 2 (3)
> hdac0:  Pin 15 traced to ADC 7
> hdac0:  Unable to trace pin 17 to ADC 7, undo traces
> hdac0:  Unable to trace pin 15 to ADC 9, undo traces
> hdac0: Association 2 (3) trace failed

Here you can see how driver processed this situation.

Alexander Motin

More information about the freebsd-current mailing list