summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/sound/gus_card.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1995-07-28 21:40:49 +0000
committerjkh <jkh@FreeBSD.org>1995-07-28 21:40:49 +0000
commit19112b8b1d7c4013411f77a8ee48332903ec93ab (patch)
tree81647a2f70826c19344d26635282f97d889294b9 /sys/i386/isa/sound/gus_card.c
parentccee31df86151913015fb2d5accc4c61a4a5f822 (diff)
downloadFreeBSD-src-19112b8b1d7c4013411f77a8ee48332903ec93ab.zip
FreeBSD-src-19112b8b1d7c4013411f77a8ee48332903ec93ab.tar.gz
Update the sound driver to VOXWARE 3.05 with one GUS patch from
Amancio. There is some SoundSource support here that is primitive and probably doesn't work, but I'll let the two submitters let me know how my integration of that was since I don't have this card to test. I've only tested this on my GUS MAX since it's all I have. This all probably needs to be re-done anyway since we're widely variant from the original VOXWARE source in the current layout. Submitted by: Amancio Hasty and Jim Lowe Obtained from: Hannu Savolainen
Diffstat (limited to 'sys/i386/isa/sound/gus_card.c')
-rw-r--r--sys/i386/isa/sound/gus_card.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/sys/i386/isa/sound/gus_card.c b/sys/i386/isa/sound/gus_card.c
index 35311d2..4a07fd3 100644
--- a/sys/i386/isa/sound/gus_card.c
+++ b/sys/i386/isa/sound/gus_card.c
@@ -25,7 +25,6 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * gus_card.c,v 1.11 1994/10/14 09:04:19 jkh Exp
*/
#include "sound_config.h"
@@ -44,13 +43,14 @@ attach_gus_card (long mem_start, struct address_info *hw_config)
{
int io_addr;
- snd_set_irq_handler (hw_config->irq, gusintr);
+ snd_set_irq_handler (hw_config->irq, gusintr, "Gravis Ultrasound");
if (gus_wave_detect (hw_config->io_base)) /*
* Try first the default
*/
{
- mem_start = gus_wave_init (mem_start, hw_config->irq, hw_config->dma);
+ mem_start = gus_wave_init (mem_start, hw_config->irq, hw_config->dma,
+ hw_config->dma_read);
#ifndef EXCLUDE_MIDI
mem_start = gus_midi_init (mem_start);
#endif
@@ -73,7 +73,8 @@ attach_gus_card (long mem_start, struct address_info *hw_config)
if (gus_wave_detect (io_addr))
{
printk (" WARNING! GUS found at %x, config was %x ", io_addr, hw_config->io_base);
- mem_start = gus_wave_init (mem_start, hw_config->irq, hw_config->dma);
+ mem_start = gus_wave_init (mem_start, hw_config->irq, hw_config->dma,
+ hw_config->dma_read);
#ifndef EXCLUDE_MIDI
mem_start = gus_midi_init (mem_start);
#endif
@@ -117,7 +118,7 @@ probe_gus (struct address_info *hw_config)
}
void
-gusintr (int irq)
+gusintr (INT_HANDLER_PARMS (irq, dummy))
{
unsigned char src;
@@ -127,7 +128,11 @@ gusintr (int irq)
#ifndef EXCLUDE_GUSMAX
if (have_gus_max)
- adintr (irq);
+# if defined(__FreeBSD__)
+ ad1848_interrupt (INT_HANDLER_CALL (gus_irq));
+# else
+ ad1848_interrupt (INT_HANDLER_CALL (irq));
+# endif
#endif
while (1)
@@ -168,7 +173,7 @@ gusintr (int irq)
/*
* Some extra code for the 16 bit sampling option
*/
-#if defined(CONFIGURE_SOUNDCARD) && !defined(EXCLUDE_GUS16) && !defined(EXCLUDE_GUS)
+#if defined(CONFIGURE_SOUNDCARD) && !defined(EXCLUDE_GUS16)
int
probe_gus_db16 (struct address_info *hw_config)
@@ -182,7 +187,7 @@ attach_gus_db16 (long mem_start, struct address_info *hw_config)
gus_pcm_volume = 100;
gus_wave_volume = 90;
- ad1848_init ("gusxvi0: <GUS 16 bit sampling>", hw_config->io_base,
+ ad1848_init ("GUS 16 bit sampling", hw_config->io_base,
hw_config->irq,
hw_config->dma,
hw_config->dma);
OpenPOWER on IntegriCloud