Subject: port-i386/15260: emuxki change-request
To: None <gnats-bugs@gnats.netbsd.org>
From: None <glenn@squirrel-net.co.uk>
List: netbsd-bugs
Date: 01/16/2002 00:57:46
>Number:         15260
>Category:       port-i386
>Synopsis:       emuxki driver non-existent on NetBSD-1.5.x - patch included
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 15 16:58:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Glenn Richards
>Release:        NetBSD 1.5.1	<NetBSD-current source date>
>Organization:
Squirrel Solutions
	
>Environment:
	
NetBSD hannah 1.5.1 NetBSD 1.5.1 (HANNAH) #3: Wed Jan 16 00:24:44 GMT 2002     glenn@hannah:/usr/src/sys/arch/i386/compile/HANNAH i386

>Description:
	
emuxki driver (for Creative SB Live etc) is not present in 1.5.x (driver from netbsd-current).
>How-To-Repeat:
	
Not applicable
>Fix:
	
This patch will enable the driver from today's NetBSD-current (15 Jan 2002) to work under NetBSD 1.5.1.

--- emuxki.c.orig	Tue Jan 15 22:32:35 2002
+++ emuxki.c	Wed Jan 16 00:13:00 2002
@@ -38,7 +38,7 @@
 
 /*
  * Driver for Creative Labs SBLive! series and probably PCI512.
- * 
+ *
  * Known bugs:
  * - inversed stereo at ac97 codec level
  *   (XXX jdolecek - don't see the problem? maybe because auvia(4) has
@@ -210,7 +210,7 @@
 	emuxki_get_props,
 	emuxki_trigger_output,
 	emuxki_trigger_input,
-	NULL,			/* dev_ioctl */
+	// NULL,			/* dev_ioctl */
 };
 
 /*
@@ -269,7 +269,7 @@
 		return (NULL);
 	}
 
-	if (bus_dmamap_load(dmat, mem->map, mem->kaddr, 
+	if (bus_dmamap_load(dmat, mem->map, mem->kaddr,
 			    mem->size, NULL, bus_dma_flags)) {
 		bus_dmamap_destroy(dmat, mem->map);
 		bus_dmamem_unmap(dmat, mem->kaddr, mem->size);
@@ -381,7 +381,9 @@
 		pci_conf_read(pa->pa_pc, pa->pa_tag,
 		(PCI_COMMAND_STATUS_REG) | PCI_COMMAND_MASTER_ENABLE));
 
-	if (pci_intr_map(pa, &ih)) {
+	// if (pci_intr_map(pa, &ih))
+	if (pci_intr_map(pa->pa_pc, pa->pa_intrtag, pa->pa_intrpin,
+	    pa->pa_intrline, &ih))	{
 		printf("%s: couldn't map interrupt\n",
 			sc->sc_dev.dv_xname);
 		bus_space_unmap(sc->sc_iot, sc->sc_ioh, sc->sc_ios);
@@ -1320,7 +1322,7 @@
 			fxsend.b.level = fxsend.d.level = 0xc0;
 			emuxki_channel_set_fxsend(voice->dataloc.chan[1],
 						   &fxsend);
-		} /* No else : default is good for mono */	
+		} /* No else : default is good for mono */
 	}
 	return (0);
 }
@@ -1373,7 +1375,7 @@
 	       (voice->use & EMU_VOICE_USE_PLAY) ? "play" : "record",
 	       stereo ? "stereo" : "mono", (b16 + 1) * 8, srate);
 #endif
-	
+
 	if (voice->stereo != stereo) {
 		if ((error = emuxki_voice_set_stereo(voice, stereo)))
 			return (error);
>Release-Note:
>Audit-Trail:
>Unformatted: