Hda patch from this day

Alexander Motin mav at FreeBSD.org
Tue Aug 26 14:49:19 UTC 2008

Raoul_MИgИlas wrote:
> with your 20080825 patch:
> cat /dev/sndstat:
> FreeBSD Audio Driver (newpcm: 32bit 2007061600/i386)
> Installed devices:
> pcm0: <HDA codec Realtek ALC260 PCM #0> at hdac0 cad 0
> kld snd_hda [20080825_0100] [GIANT] (0p:0v/1r:1v channels default)

It said that you have only record channel, but not playback. Reason of
this could be descried with:

1. 2 associations found in default codec configuration made by BIOS:
> Aug 26 14:47:59 port kernel: hdac0: 2 associations found
> Aug 26 14:47:59 port kernel: hdac0: Association 0 (1) out:
> Aug 26 14:47:59 port kernel: hdac0:   Pin nid=15 seq=1
> Aug 26 14:47:59 port kernel: hdac0:   Pin nid=16 seq=2
> Aug 26 14:47:59 port kernel: hdac0: Association 1 (2) in:
> Aug 26 14:47:59 port kernel: hdac0:   Pin nid=18 seq=1
Association 0 is playback in this case, 1 - record.
Association 0 has two pins, but none of them has ID 15 and type
headphones. So there is no headphones redirection requested and driver
will try to configure those 2 pins as quadraphonic setup.

2. Your codec has only one DAC, so it is unable to play two independent
stereo streams.

3. Driver unable to setup quadro output with only one DAC present, so
whole association was disabled:
> Aug 26 14:47:59 port kernel: hdac0: Association 0 (1) trace failed

This situation may be fixed with setting such device hint to override
default codec configuration made by BIOS to reconfigure Line-out as
Headphones with redirection:
hint.hdac.0.cad0.nid16.config="seq=15 device=Headphones"

Also your BIOS tells that there is no jack detection support on
Line-out/Headphones connector. You cat test this using pin dump and if
it really works you can override it by setting:
hint.hdac.0.cad0.nid16.config="seq=15 device=Headphones misc=0"

If you don't need external out or headphones you can disable them by
setting one of:

> sysctl -a|grep hdac:
> dev.hdac.0.%desc: Intel 82801F High Definition Audio Controller
> dev.hdac.0.%driver: hdac
> dev.hdac.0.%location: slot=27 function=0 handle=\_SB_.PCI0.AZAL
> dev.hdac.0.%pnpinfo: vendor=0x8086 device=0x2668 subvendor=0x104d
> subdevice=0x81cc class=0x040300
> dev.hdac.0.%parent: pci0
> dev.hdac.0.polling: 0
> dev.hdac.0.polling_interval: 250
> dev.hdac.0.pindump: 0
> sysctl dev.hdac.0.pindump=1
> dev.hdac.0.pindump: 0 -> 0
> impossible to put it to 1! no dump.

It is correct. Look into you messages log or system console, dump should
be there.

PS: Tell me please if that helped. And if so tell me your notebook model
to make quirk for it in driver.

Alexander Motin

More information about the freebsd-multimedia mailing list