From owner-freebsd-multimedia@FreeBSD.ORG Sat Jan 10 10:40:47 2009 Return-Path: Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 34C431065677 for ; Sat, 10 Jan 2009 10:40:47 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id 8A6358FC19 for ; Sat, 10 Jan 2009 10:40:46 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 231300569; Sat, 10 Jan 2009 12:40:45 +0200 Message-ID: <49687B32.6030907@FreeBSD.org> Date: Sat, 10 Jan 2009 12:40:50 +0200 From: Alexander Motin User-Agent: Thunderbird 2.0.0.17 (X11/20081029) MIME-Version: 1.0 To: Torfinn Ingolfsen References: <1230344595.00052843.1230334202@10.7.7.3> <1231554198.00058315.1231543202@10.7.7.3> In-Reply-To: <1231554198.00058315.1231543202@10.7.7.3> Content-Type: multipart/mixed; boundary="------------040507030107080605080404" Cc: freebsd-multimedia@freebsd.org Subject: Re: snd_hda and nVidia GeForce 8200 (MCP78S) X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Jan 2009 10:40:47 -0000 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--