Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Oct 2008 16:11:42 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Tobias Kirschstein <lev@nupfel.de>,  Tobias Grosser <grosser@fim.uni-passau.de>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: again config problem with new snd_hda driver
Message-ID:  <4901C98E.80002@FreeBSD.org>
In-Reply-To: <20081024140228.29c25156@lain>
References:  <20081023203221.677be8aa@lain>	<4900CAF8.3010204@FreeBSD.org> <20081024140228.29c25156@lain>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------040107000002000106050602
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Tobias Kirschstein wrote:
>>> from dmesg:
>>> -----------
>>> hdac0: <Intel 82801G High Definition Audio Controller> mem
>>> 0xee240000-0xee243fff irq 17 at device 27.0 on pci0 hdac0: HDA
>>> Driver Revision: 20081013_0113 hdac0: [ITHREAD]
>>> hdac0: HDA Codec #0: Analog Devices AD1981HD
>>> hdac0: HDA Codec #1: Conexant (Unknown)
>>> pcm0: <HDA Analog Devices AD1981HD PCM #0> at cad 0 nid 1 on hdac0
>> To understand current driver behavior I need to see verbose kernel
>> boot messages. Read them yourself and send them to me.
> 
> rebooted now and here are the verbose boot messages for you :)

Try please attached patch. It disables several unsupported signal paths
inside the codec to help widget parser to manage it. There is actually
two options in a patch:
 1) To disable playback mixer so you will not hear what you are
recording. But this situation is predictable.
 2) To use that mixer for playback. You may get system beeper working,
but it is hard to predict what will happen to recording.

Test please and send me verbose logs from both cases if you can.

-- 
Alexander Motin

--------------040107000002000106050602
Content-Type: text/plain;
 name="hda.AD1981HD.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="hda.AD1981HD.patch"

diff -ruNp hda.HEAD/hdac.c hda/hdac.c
--- hda.HEAD/hdac.c	2008-10-23 21:30:06.000000000 +0300
+++ hda/hdac.c	2008-10-24 15:55:36.000000000 +0300
@@ -4510,6 +4510,36 @@ hdac_vendor_patch_parse(struct hdac_devi
 				    ~HDA_QUIRK_EAPDINV;
 		}
 		break;
+	case HDA_CODEC_AD1981HD:
+		/* Disable recording from mono mix. */
+		w = hdac_widget_get(devinfo, 21);
+		if (w != NULL)
+			w->connsenable[15] = 0;
+		/* Disable rear front mic mixer. */
+		w = hdac_widget_get(devinfo, 31);
+		if (w != NULL)
+			w->enable = 0;
+#if 1
+		/* Disable playback mixer, use bypass. */
+		w = hdac_widget_get(devinfo, 14);
+		if (w != NULL)
+			w->enable = 0;
+#else
+		/* Disable bypass, use playback mixer. */
+		w = hdac_widget_get(devinfo, 5);
+		if (w != NULL)
+			w->connsenable[0] = 0;
+		w = hdac_widget_get(devinfo, 6);
+		if (w != NULL)
+			w->connsenable[0] = 0;
+		w = hdac_widget_get(devinfo, 9);
+		if (w != NULL)
+			w->connsenable[0] = 0;
+		w = hdac_widget_get(devinfo, 24);
+		if (w != NULL)
+			w->connsenable[0] = 0;
+#endif
+		break;
 	}
 }
 

--------------040107000002000106050602--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4901C98E.80002>