[RFT] Major snd_hda rewrite

Gary Jennejohn gljennjohn at googlemail.com
Thu Jan 12 10:52:24 UTC 2012


On Wed, 11 Jan 2012 21:33:17 +0200
Alexander Motin <mav at FreeBSD.org> wrote:

> I would like request for testing of my work on further HDA sound driver 
> improvement.
> 

[big snip]

> That is how it may look now in dmesg:
> 
> hdac0: <Intel 5 Series/3400 Series HDA Controller> mem 
> 0xf7ef4000-0xf7ef7fff irq 22 at device 27.0 on pci0
> hdacc0: <VIA VT1708S_0 HDA CODEC> at cad 0 on hdac0
> hdaa0: <VIA VT1708S_0 HDA CODEC Audio Function Group> at nid 1 on hdacc0
> hdacc1: <Intel Ibex Peak HDA CODEC> at cad 3 on hdac0
> hdaa1: <Intel Ibex Peak HDA CODEC Audio Function Group> at nid 1 on hdacc1
> pcm0: <VIA VT1708S_0 HDA CODEC PCM (Analog)> at nid 28,29 and 26,30,27 
> on hdaa0
> pcm1: <VIA VT1708S_0 HDA CODEC PCM (Digital)> at nid 32 on hdaa0
> pcm2: <Intel Ibex Peak HDA CODEC PCM (DisplayPort 8ch)> at nid 6 on hdaa1
> 
> Patch can be found here:
> http://people.freebsd.org/~mav/hda.rewrite.patch
> 
> Patch was generated for 10-CURRENT, but should apply to fresh 9-STABLE 
> and 8-STABLE branches also.
> 

The patch doesn't apply cleanly to r230008; hdac.c.rej is 15661 bytes
in size (mostly the section which deletes all the manufacturer-specific
defines at the top of the file).

After fixing that per hand I was able to make a kernel with which sound
still works.  Here the relevant bits from dmesg:

hdac0: <NVidia (Unknown) HDA Controller> mem 0xfcffc000-0xfcffffff irq 18 at device 0.1 on pci1
hdac1: <ATI SB600 HDA Controller> mem 0xfe024000-0xfe027fff irq 16 at device 20.2 on pci0
hdacc0: <NVidia GT21x HDA CODEC> at cad 0 on hdac0
hdaa0: <NVidia GT21x HDA CODEC Audio Function Group> at nid 1 on hdacc0
pcm0: <NVidia GT21x HDA CODEC PCM (DisplayPort 8ch)> at nid 5 on hdaa0
hdacc1: <NVidia GT21x HDA CODEC> at cad 1 on hdac0
hdaa1: <NVidia GT21x HDA CODEC Audio Function Group> at nid 1 on hdacc1
pcm1: <NVidia GT21x HDA CODEC PCM (DisplayPort 8ch)> at nid 5 on hdaa1
hdacc2: <NVidia GT21x HDA CODEC> at cad 2 on hdac0
hdaa2: <NVidia GT21x HDA CODEC Audio Function Group> at nid 1 on hdacc2
pcm2: <NVidia GT21x HDA CODEC PCM (DisplayPort 8ch)> at nid 5 on hdaa2
hdacc3: <NVidia GT21x HDA CODEC> at cad 3 on hdac0
hdaa3: <NVidia GT21x HDA CODEC Audio Function Group> at nid 1 on hdacc3
pcm3: <NVidia GT21x HDA CODEC PCM (DisplayPort 8ch)> at nid 5 on hdaa3
hdacc4: <Realtek ALC889A HDA CODEC> at cad 0 on hdac1
hdaa4: <Realtek ALC889A HDA CODEC Audio Function Group> at nid 1 on hdacc4
pcm4: <Realtek ALC889A HDA CODEC PCM (Rear Analog 7.1/2.0)> at nid 20,22,21,23 and 24,26 on hdaa4
pcm5: <Realtek ALC889A HDA CODEC PCM (Front Analog)> at nid 27 and 25 on hdaa4
pcm6: <Realtek ALC889A HDA CODEC PCM (Rear Digital)> at nid 30 and 31 on hdaa4

I particularly like that the messages now show which jack corresponds to
which pcm - makes deciding which jack to use much simpler.

I'm using pcm4.

-- 
Gary Jennejohn (gj@)


More information about the freebsd-current mailing list