Subject: Re: auich driver support of Intel 82801DB AC97 Audio
To: Alicia da Conceicao <alicia@engine.ca>
From: Steve Rumble <rumble@ephemeral.org>
List: port-i386
Date: 12/20/2003 13:13:48
--wRRV7LY7NUeQGEoC
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Fri, Dec 19, 2003 at 09:30:39AM -0500, Alicia da Conceicao wrote:
> Steve, do you have the Intel i82801DB audio chipset on your Thinkpad?

My thinkpad has an i82801CA.

> Anyways, your suggestion was greatly appreciated, since I am willing to
> try anything to be able enable audio on my sub-notebook and be able to
> play my MP3 songs under NetBSD without having to reboot to WinXP.

The auich.c driver has a special register mapping circumstance
for i82801DC and i82801EB chips. I googled a bit to see if
anybody had success with these chips and apparently somebody did
with 1.6.1 by just adding the new ID (not utilising the new
registers):

http://mail-index.netbsd.org/port-i386/2003/06/03/0015.html

The OpenBSD guys appear to do this as well as FreeBSD 4.7,
although FreeBSD explicitly enables a legacy mode and
OpenBSD has a codec ready state workaround for msi boards.
FreeBSD-current appears to do the same thing as netbsd-current.

Supplied is a patch against -current's auich.c that should map the
old ich3 registers. I don't know much about this device, but
it may be worth a shot.

Steve

--wRRV7LY7NUeQGEoC
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="auich.diff"

Index: auich.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/auich.c,v
retrieving revision 1.55
diff -u -r1.55 auich.c
--- auich.c	2003/11/22 08:49:41	1.55
+++ auich.c	2003/12/20 18:02:08
@@ -409,9 +409,9 @@
 
 	aprint_normal(": %s\n", d->name);
 
-	if ((d->vendor == PCI_VENDOR_INTEL
+	if (/*(d->vendor == PCI_VENDOR_INTEL
 	     && d->product == PCI_PRODUCT_INTEL_82801DB_AC)
-	    || (d->vendor == PCI_VENDOR_INTEL
+	    ||*/ (d->vendor == PCI_VENDOR_INTEL
 		&& d->product == PCI_PRODUCT_INTEL_82801EB_AC)) {
 		/*
 		 * Use native mode for ICH4/ICH5

--wRRV7LY7NUeQGEoC--