Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Dec 2006 04:24:34 +0900
From:      Hiroharu Tamaru <tamaru@myn.rcast.u-tokyo.ac.jp>
To:        "Andrew Pantyukhin" <infofarmer@FreeBSD.org>
Cc:        multimedia@freebsd.org, Ariff Abdullah <ariff@freebsd.org>
Subject:   Re: snd_hda: loud distorted sound with NVidia MCP51
Message-ID:  <sa6vek9uhvx.wl%tamaru@myn.rcast.u-tokyo.ac.jp>
In-Reply-To: <cb5206420612181050s71681a59tfc9d7a8b66d7d74a@mail.gmail.com>
References:  <sa6mz612cxq.wl%tamaru@myn.rcast.u-tokyo.ac.jp> <20061207010750.4f73bc15.ariff@FreeBSD.org> <sa6psawadmy.wl%tamaru@myn.rcast.u-tokyo.ac.jp> <sa6zm9umnrh.wl%tamaru@myn.rcast.u-tokyo.ac.jp> <20061212010805.3b1b3dff.ariff@FreeBSD.org> <sa6d56qjp8n.wl%tamaru@myn.rcast.u-tokyo.ac.jp> <20061212033104.051a7d0f.ariff@FreeBSD.org> <cb5206420612181050s71681a59tfc9d7a8b66d7d74a@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
At Mon, 18 Dec 2006 21:50:00 +0300,
Andrew Pantyukhin wrote:
> 
> On 12/11/06, Ariff Abdullah <ariff@freebsd.org> wrote:
> > Committed. You can grab the latest binary modules or
> > patch from the usual place.
> 
> Hi! Thanks for all the effort. It seems I have the
> very same problem with ATI SB460 built-in audio
> (recognized as SB450).
> 
> dmesg: http://people.freebsd.org/~sat/abc/hda1.dmesg
> (skip the non-verbose beginning)
> 
> What can I try?

Reading _very_ briefly through your dmesg, 
I think the only essential difference from mine is:
pcm0: PCI Subvendor: 0x10b81734
which, I have
pcm0: PCI Subvendor: 0x81cb1043

Ariff's diff that made mine work was:

--- hdac.c      Tue Dec 12 14:26:13 2006
+++ hdac_asus_alc861.c  Tue Dec 12 02:00:54 2006
@@ -3527,6 +3527,15 @@
                                w->enable = 0;
                }
                break;
+       case HDA_CODEC_ALC861:
+               if (subvendor == 0x81cb1043) {
+                       struct hdac_audio_ctl *ctl;
+
+                       ctl = hdac_audio_ctl_amp_get(devinfo, 28, 1, 1);
+                       if (ctl != NULL)
+                               ctl->muted = HDA_AMP_MUTE_ALL;
+               }
+               break;
        case HDA_CODEC_ALC880:
                for (i = devinfo->startnode; i < devinfo->endnode; i++) {
                        w = hdac_widget_get(devinfo, i);

This is already commited. So look for this line
              if (subvendor == 0x81cb1043) {
and replace it with 
              if (subvendor == 0x81cb1043 || subvendor == 0x10b81734) {
and have a try.
# I haven't tried compiling from the sources myself though; Ariff was
# so quick to provide me the binaries... ;-)

If it doesn't help, well, we should read your dmesg more carefully.
Hopefully, my long message the other day will help you go through
the dmesgs yourself as well.
-- 
Hiroharu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?sa6vek9uhvx.wl%tamaru>