diff options
author | jkh <jkh@FreeBSD.org> | 1995-07-28 21:40:49 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1995-07-28 21:40:49 +0000 |
commit | 19112b8b1d7c4013411f77a8ee48332903ec93ab (patch) | |
tree | 81647a2f70826c19344d26635282f97d889294b9 /sys/i386/isa/sound/gus_card.c | |
parent | ccee31df86151913015fb2d5accc4c61a4a5f822 (diff) | |
download | FreeBSD-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.c | 21 |
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); |