Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Jul 2000 00:11:52 -0500
From:      Russell Cattelan <cattelan@thebarn.com>
To:        Ollivier Robert <roberto@keltia.freenix.fr>
Cc:        freebsd-current@FreeBSD.ORG, culverk@wam.umd.edu
Subject:   Re: could someone with committer access commit this?
Message-ID:  <39656697.B358306A@thebarn.com>
References:  <Pine.GSO.4.21.0007021005290.6097-100000@rac4.wam.umd.edu> <20000702161721.A97851@keltia.freenix.fr>

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

Ollivier Robert wrote:

> According to Kenneth Wayne Culver:
> > This is the patch to make my soundcard, a Creative Ensoniq AudioPCI (an
> > es1371 chip, device id 0x58801274 rev 0x02). Can someone commit it please?
>
> Done.

There is a problem with that patch.
I'm not sure if there are older 1371 rev 2 boards out there, but they would
be incorrectly inited.
Test this patch first, but it should be more definitive.



--------------CE9C01862C6B0E6A6E54B1FB
Content-Type: text/plain; charset=us-ascii;
 name="patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch"

Index: es137x.c
===================================================================
RCS file: /usr/FreeBSD-CVS/src/sys/dev/sound/pci/es137x.c,v
retrieving revision 1.21
diff -u -r1.21 es137x.c
--- es137x.c	2000/07/03 20:52:26	1.21
+++ es137x.c	2000/07/07 05:05:48
@@ -107,7 +107,7 @@
 static void	es1371_src_write(struct es_info *, u_short, unsigned short);
 static u_int	es1371_adc_rate(struct es_info *, u_int, int);
 static u_int	es1371_dac_rate(struct es_info *, u_int, int);
-static int	es1371_init(struct es_info *es, int);
+static int	es1371_init(struct es_info *es, device_t);
 static int      es1370_init(struct es_info *);
 static int      es1370_wrcodec(struct es_info *, u_char, u_char);
 
@@ -484,9 +484,11 @@
 
 /* ES1371 specific */
 int
-es1371_init(struct es_info *es, int rev)
+es1371_init(struct es_info *es, device_t dev)
 {
 	int idx;
+	int devid =  pci_get_devid(dev);
+	int rev  = pci_get_revid(dev);
 
 	if (debug > 0) printf("es_init\n");
 
@@ -494,7 +496,7 @@
 	es->ctrl = 0;
 	es->sctrl = 0;
 	/* initialize the chips */
-	if (rev == 7 || rev >= 9 || rev == 2) {
+	if (rev == 7 || rev >= 9 || (devid == ES1371_PCI_ID3 && rev == 2)) {
 #define ES1371_BINTSUMM_OFF 0x07
 		bus_space_write_4(es->st, es->sh, ES1371_BINTSUMM_OFF, 0x20);
 		if (debug > 0) printf("es_init rev == 7 || rev >= 9\n");
@@ -793,7 +795,7 @@
 	if (pci_get_devid(dev) == ES1371_PCI_ID ||
 	    pci_get_devid(dev) == ES1371_PCI_ID2 || 
 	    pci_get_devid(dev) == ES1371_PCI_ID3) {
-		if(-1 == es1371_init(es, pci_get_revid(dev))) {
+		if(-1 == es1371_init(es, dev)) {
 			device_printf(dev, "unable to initialize the card\n");
 			goto bad;
 		}

--------------CE9C01862C6B0E6A6E54B1FB--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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