Subject: port-i386/14017: An old Gravis UltraSound card does not work
To: None <gnats-bugs@gnats.netbsd.org>
From: None <skalgo@cto.gda.pl>
List: netbsd-bugs
Date: 09/20/2001 01:08:17
>Number:         14017
>Category:       port-i386
>Synopsis:       An old Gravis UltraSound card does not work
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 20 01:09:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Igor Skalski
>Release:        1.5.1
>Organization:
Ship Design & Research Centre, Gdansk, Poland
>Environment:
NetBSD localhost 1.5.1 NetBSD 1.5.1 (DARK) #77: Wed Sep  5 21:33:03 CEST 2001
root@localhost:/usr/src/sys/arch/i386/compile/DARK i386
>Description:
My old Gravis UltraSound 256k sound card does not work.
Generic kernel does detect it byt crashes, and writes
something like:

  gus0 at isa0 port 0x220-0x22f irq 7 drq 1 drq2 1
  gus0: Gravis UltraSound, 256KB memory
  audio0 at gus0:half duplex, mmap
  uvm_fault(0xc0240fe0, 0x0, 0, 1) -> 1
  fatal page fault in supervisor mode
  trap type 6 code lip c01e2af7 cs8 eflags 10202 cr2 0 cpl ffffffff
  panic: trap

The card works ok on Linux OS.

I found that the fault appers in audio_alloc_ring.

I found that in gusattach and audioattach value of sc->sc_playdrq is 1
but in ad1848_isa_malloc drq is 14 and in _isa_malloc and in _isa_dmamem_alloc
value of chan is 14, which - in my opinion - is invallid.

>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted: