Date: Sat, 10 Jan 2009 12:40:50 +0200 From: Alexander Motin <mav@FreeBSD.org> To: Torfinn Ingolfsen <torfinn.ingolfsen@broadpark.no> Cc: freebsd-multimedia@freebsd.org Subject: Re: snd_hda and nVidia GeForce 8200 (MCP78S) Message-ID: <49687B32.6030907@FreeBSD.org> In-Reply-To: <1231554198.00058315.1231543202@10.7.7.3> References: <1230344595.00052843.1230334202@10.7.7.3> <1231554198.00058315.1231543202@10.7.7.3>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------040507030107080605080404 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Torfinn Ingolfsen wrote: > FWIW, the machine is now updated to latest 7.1-stable: > root@kg-v2# uname -a > FreeBSD kg-v2.kg4.no 7.1-STABLE FreeBSD 7.1-STABLE #3: Fri Jan 9 22:14:31 CET 2009 root@kg-v2.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64 > > And sound now works. > As usual, more info (including verbose dmesgs) can be found on the FreeBSD page for this machine[1]. > > References: > 1) http://tingox.googlepages.com/asus_v2-m3n8200_freebsd Thanks for feedback. I have found one old bug with help of your dmesg. On some codecs inter-channel signal leakage was possible. It is not so visible now as we have no real multichannel support, but it may affect sound quality. Problem is here: pcm0: nid=28 [pin: Line-out (Jack)] pcm0: | pcm0: + <- nid=22 [audio mixer] [src: pcm] pcm0: | pcm0: + <- nid=16 [audio output] [src: pcm] pcm0: + <- nid=37 [audio output] [src: pcm] pcm0: pcm0: nid=29 [pin: Headphones (Jack)] pcm0: | pcm0: + <- nid=22 [audio mixer] [src: pcm] pcm0: | pcm0: + <- nid=16 [audio output] [src: pcm] pcm0: + <- nid=37 [audio output] [src: pcm] Signals from nids 16 and 37 should not be mixed. Could you please test attached patch to check how does it help? It works fine on my test setup and I just want to be sure. -- Alexander Motin --------------040507030107080605080404 Content-Type: text/plain; name="hdac.c.crossch.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hdac.c.crossch.patch" --- hdac.c.prev 2009-01-08 21:26:32.000000000 +0200 +++ hdac.c 2009-01-10 12:25:50.000000000 +0200 @@ -83,7 +83,7 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20081226_0122" +#define HDA_DRV_TEST_REV "20090110_0123" SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.85 2008/12/27 11:00:20 mav Exp $"); @@ -5479,7 +5479,7 @@ hdac_audio_disable_crossas(struct hdac_d struct hdac_audio_ctl *ctl; int i, j; - /* Disable crossassociatement connections. */ + /* Disable crossassociatement and unwanted crosschannel connections. */ /* ... using selectors */ for (i = devinfo->startnode; i < devinfo->endnode; i++) { w = hdac_widget_get(devinfo, i); @@ -5497,7 +5497,10 @@ hdac_audio_disable_crossas(struct hdac_d cw = hdac_widget_get(devinfo, w->conns[j]); if (cw == NULL || w->enable == 0) continue; - if (w->bindas == cw->bindas || cw->bindas == -2) + if (cw->bindas == -2) + continue; + if (w->bindas == cw->bindas && + (w->bindseqmask & cw->bindseqmask) != 0) continue; w->connsenable[j] = 0; HDA_BOOTHVERBOSE( @@ -5516,7 +5519,8 @@ hdac_audio_disable_crossas(struct hdac_d if (ctl->widget->bindas == -2 || ctl->childwidget->bindas == -2) continue; - if (ctl->widget->bindas != ctl->childwidget->bindas) { + if (ctl->widget->bindas != ctl->childwidget->bindas || + (ctl->widget->bindseqmask & ctl->childwidget->bindseqmask) == 0) { ctl->forcemute = 1; ctl->muted = HDA_AMP_MUTE_ALL; ctl->left = 0; --------------040507030107080605080404--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49687B32.6030907>
